Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 | 2 | 3 | 4 | 5 | 6 |

 

  Вопрос: DLL из FreeBasic в Visual Basic6.0 Добавлено: 22.12.06 10:24  

Автор вопроса:  Сергей Юдин

Ответить

  Ответы Всего ответов: 77  

Номер ответа: 46
Автор ответа:
 User Unknown



Вечный Юзер!

ICQ: uu@jabber.cz 

Вопросов: 120
Ответов: 3302
 Профиль | | #46 Добавлено: 08.01.07 03:32
Это те у кого белки? :)))


Не знаю.. с этим вопросом к Шарпу:

------------
Я, например, сейчас занимаюсь скринингом лигандов к белкам
------------

Ответить

Номер ответа: 47
Автор ответа:
 Djon



Вопросов: 61
Ответов: 471
 Web-сайт: www.vk-book.ru
 Профиль | | #47
Добавлено: 08.01.07 03:33
В каждом районе будет разная статистика. И у разных слоёв населения. И по возростной категории тоже мого различий. Так что 10 человек из 48 млн. это очень моло.

Ответить

Номер ответа: 48
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #48
Добавлено: 08.01.07 13:51
...или ссылка, или указатель на указатель...

Ну, правильно, что бы ты не передавал, ты всегда знаешь, что передаешь. И нету никаких неявный конвертаций типов, никаких левых неконтролируемых преобразований и т.п.

И дело чаще не в количестве вычислений, а в правельности... Это ж как статистика, статистика (по статистике :) ) ошибается не больше чем на 2-4%... всмысле если выйти на улицу, взять 10 первых попавшихся людей, и спросить есть ли у них мобильный, то у 90% из этих 10 будет мобильный. А потом всю Украину опросить, и окажеться тоже самое, у 90% населения есть мобильный... Смысл опрашивать всех, когда можно 10 случайных? :)

Аж сам запутался? :)

Ответить

Номер ответа: 49
Автор ответа:
 Сергей Юдин



Вопросов: 8
Ответов: 81
 Профиль | | #49 Добавлено: 08.01.07 18:11
Сергей Юдин, ок, без проблем. Меня всегда можно найти в асе...


К сожалению не знаю, как и где Вас искать в асе по этому даю недокументированную ссылку на черновой вариант статьи здесь http://modsys.narod.ru/Ris/Vibor.zip а архивы с программами выложу немного попоздней.

С наилучшими пожеланиями Сергей Юдин

Ответить

Номер ответа: 50
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #50
Добавлено: 08.01.07 20:54
Отмечусь кратко

Код в статье - полная чушь, например, не происходит инициализации переменной L, так что вообще непонятно, что, собственно, замеряется.
#include <iostream.h>
#include "windows.h"
int A,L,K,C,start,finish,M[6];
void func() {C=C+1; return;}
void cicle() {K=K+L; A = K/2*3+4-5; func();
for(L=1;L<6;L++) {M[L]=A;} return;}
void main() {start = GetTickCount(); K=0; while (K<90000000) {cicle();}
finish = GetTickCount(); cout<<"start ="<<float(start)/1000<<"\n"; cout<<"finish ="<<float(finish)/1000<<"\n";
cout<<"TIME ="<<float(finish-start)/1000<<"\n"; cout<<"A="<<A<<"\n"; cout<<"K="<<K<<"\n";
cout<<"C="<<C<<"\n"; cout<<"Input 1\n"; cin>>K;}


Статья изобилует орфографическими и пунктуационными ошибками, особенно часто встречается "по этому" вместо "поэтому". Язык путаный, нет никакого смыслового деления.

Бенчмарк надуманый, в частности, на нем FreeBasic якобы в 8 раз обгоняет VC на якобы одной задаче. В то же время автор пишет, что не смог полностью так же переписать код, т.к. в C++ нет goto, что свидетельствует о незнании предмета и ненаучном подходе. Я провел небольшой бенчмарк на своем любимом Фиббоначчи-тесте, который показывает, сколько лишнего кода генерирует компилятор

FreeBasic 0.16 stable
#include once "windows.bi"
#include once "win/mmsystem.bi"

t1 = timeGetTime()

function fibo(n)
if n = 1 or n = 2 then
function = 1
else
function = fibo(n-1) + fibo(n-2)
end if
end function

print fibo(40)

t2 = timeGetTime()
print t2-t1; " ms"


MS Visual C++ 2005
#include <iostream>

#include <windows.h>

using namespace std;

#pragma comment(lib, "winmm.lib";)

int fibo(int n){
if(n == 1 || n == 2) return 1;
else return fibo(n-1) + fibo(n-2);
}

int main(){
DWORD t1 = timeGetTime();
cout << fibo(40) << endl;
DWORD t2 = timeGetTime();
cout << (t2-t1) << endl;
return 0;
}


Результаты:
Размер EXE-файла
FBC : 16384 байт
VC : 6144 байт

Бенчмарк (Cel-1700/768 MB):
FBC : 5133, 5133, 5152 мсек
VC : 1800, 1765, 1791 мсек

Что демонстрирует преимущество C++ почти в 3 раза. Короче, картина неверна даже приблизительно. Дальше в статье та же самая путаница, цифры, непонятно чему соответствующие, измышления автора по поводу эволюции языков программирования и т.п.

Мое резюме: статья практической и научной ценности не имеет.

Ответить

Номер ответа: 51
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #51 Добавлено: 08.01.07 21:39
мда... Без обид, Сергей Юдин, учите мат часть...
Можно было процитировать глупые моменты в статье, но их настолько много, статья настолько большая и безполезная, что просто лень тратить на это время. Вы невладеете неодним языком на котором проводили тесты. Нельзя спорить о том, в чём сам неуверен... Вы проводите тесты, сравнивая по скорости кофеварки с холодильниками, в которых побеждают утюги итп итд... Причём досовские компиляторы? Причём здесь Ваше имхо о языках, кто из них для кого удобнее... В статье всё размыто, обобщено, приведены неверные факты. Вообщем незачёт.

Ответить

Номер ответа: 52
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #52 Добавлено: 08.01.07 22:03
Чтобы необобщаять весь бейсик под одну крышу, почитайте хотябы
http://www.vbnet.ru/articles/Showarticle.aspx?id=220

Ответить

Номер ответа: 53
Автор ответа:
 Сергей Юдин



Вопросов: 8
Ответов: 81
 Профиль | | #53 Добавлено: 08.01.07 22:34
мда... Без обид, Сергей Юдин, учите мат часть...

Я конечно согласен, что краткость сестра таланта, но все же надеялся, что Вы хоть пару замечаний слелаете конкретных, а не "вообщем". Ну что же будем работать дальше. А если кто-то еще захочет высказаться более конкретно, то я на всякий случай дам ссылки на архивы программ использованных при написание статьи.
http://modsys.narod.ru/Prog/TestBench.zip
http://modsys.narod.ru/Prog/TestSpusk.zip
http://modsys.narod.ru/Prog/TestSpuskM.zip

С наилучшими пожеланиями Сергей Юдин.

Ответить

Номер ответа: 54
Автор ответа:
 Сергей Юдин



Вопросов: 8
Ответов: 81
 Профиль | | #54 Добавлено: 08.01.07 22:39
Извиняюсь, все архивы не zip а rar.

http://modsys.narod.ru/Prog/TestBench.rar
http://modsys.narod.ru/Prog/TestSpusk.rar
http://modsys.narod.ru/Prog/TestSpuskM.rar

С наилучшими пожеланиями Сергей Юдин.

Ответить

Номер ответа: 55
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #55
Добавлено: 09.01.07 00:30
Ну отпишитесь хотя бы по моим комментариям, а то прямо неприлично - я ведь все-таки время потратил, комментируя этот... труд (напрашивалось другое слово из 4 букв с д на конце)

Ответить

Номер ответа: 56
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4255
 Профиль | | #56 Добавлено: 09.01.07 00:33
Я долго наблюдал за Вашей дискуссией оставаясь в стороне, но все же решил взглянуть на ту часть, что относится к языку NET, как наиболее близкую мне на данный момент. Взглянул, и не смог промолчать. :-((
Я не берусь судить о научной ценности вашей статьи, но что касается кода(тут и далее я говорю исключительно о NET), то тут я бы вам советовал никому из программистов его не показывать по следующим причинам:
1. Код абсолютно нечитаем и плохо структурирован
2. Изобилует устаревшими операторами типа GOTO, ONERROR (вы что нибудь о Try...Catch...Finally слышали?)
3. Масса логических ошибок в проверках условий
4. Налицо незнание VBNET как такового. Например вместо проверки CheckState логичнее было бы проверить булевое свойство Checked.
5. Абсолютное незнание принципов работы с Graphics.
- Вместо того,чтобы рисовать прям на форме используя собыие Paint, вы рисуете на картинке после чего загоняете в PictureBox
- Вы утверждаете, что долгое время писали на VB6 и вместо того,чтобы для закрашивания 1(ОДНОГО) пиксела методом SetPixel вы используете ЗАЛИВКУ прямоугольника с длиной стороны в 1 пиксел!
            If i = 1 Then gg.FillRectangle(Brushes.Blue, XG, YG, 1, 1)
            If i = 2 Then gg.FillRectangle(Brushes.BlueViolet, XG, YG, 1, 1)
            If i = 3 Then gg.FillRectangle(Brushes.Brown, XG, YG, 1, 1)
            If i = 4 Then gg.FillRectangle(Brushes.Red, XG, YG, 1, 1)

Это по вашему нормально?
Кроме того, в НЕТ есть масса методов для рисования дуг,кривых,секторов на основе массива точек .. а вместо этого вы используете попиксельный вывод графики сначала на картинку,затем переносите ее в PictureBox
6. На первом же тесте, программа упала с OverflowException (Arithmetic operation resulted in an overflow.)

Из всего вышесказанного я могу сделать только один вывод, что Ваши навыки очень далеки от профессионализма, и Ваш код напоминает код человека, впервые увидевшего НЕТ (справедливости ради стоит заметить, что это типичные ошибки новичков от VB6 ), а посему судить о быстродействии того или иного языка (в частности NET), и тем более что-то рекомендовать несведующим людям без достаточных на то знаний и навыков, Вы не имеете никакого морального права.

Ответить

Номер ответа: 57
Автор ответа:
 Сергей Юдин



Вопросов: 8
Ответов: 81
 Профиль | | #57 Добавлено: 09.01.07 00:56
Бенчмарк (Cel-1700/768 MB):
FBC : 5133, 5133, 5152 мсек
VC : 1800, 1765, 1791 мсек

Что касается предложенного Вами бенчмака, то он конечно же такой же бестолковый, как и тот, что использовал я, но он мне помог найти ошибку. Я оказывается сделал Debug вместо Relase. Теперь данные по VisualC++ для моего бенчмака примерно такие же, как для C++ и FreeBasic, а конкретно 0,812 сек для 2-го варианта и 0,797 для 3-го.
А что касается Вашего бенчмака, то тут у меня данные несколько отличаются от Ваших.
FB=4,203 сек
VC=2,188 сек
Но для абстрактного бенчмака это вполне приемлемый результат.

С наилучшими пожеланиями Сергей Юдин.

Ответить

Номер ответа: 58
Автор ответа:
 Сергей Юдин



Вопросов: 8
Ответов: 81
 Профиль | | #58 Добавлено: 09.01.07 01:10
Из всего вышесказанного я могу сделать только один вывод, что Ваши навыки очень далеки от профессионализма, и Ваш код напоминает код человека, впервые увидевшего НЕТ (справедливости ради стоит заметить, что это типичные ошибки новичков от VB6 ), а посему судить о быстродействии того или иного языка (в частности NET), и тем более что-то рекомендовать несведующим людям без достаточных на то знаний и навыков, Вы не имеете никакого морального права.

Да это действительно моя первая программа на VB NET и еще несколько месяцев назад я в соседней теме на этом форуме просил подсказать мне, как вывести данные на картинку в VB NET. Так что я свои познания во всех существующих языках программирования и не скрываю, но только, те кто мог бы помочь в этом вопросе, заняты более важными делами и по этому приходиться все писать самому, хотя я себя вообще не считаю программистом, т.к. занимаюсь математическим моделированием систем и статью пишу точно для таких же специалистов далеких от программирования. А, если Вы хороший специалист по VB NET, то не могли бы подправить программу SpuskVBnetM, чтобы не было сомнений в показателях ее работы.

С наилучшими пожеланиями Сергей Юдин.

Ответить

Номер ответа: 59
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4255
 Профиль | | #59 Добавлено: 09.01.07 01:48
не могли бы подправить программу SpuskVBnetM

Подправить???
Уважаемый, да ее полностью переписывать надо!
Я могу прояснить для Вас отдельные моменты, но переписывать - увольте, своих забот полно.

Ответить

Номер ответа: 60
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #60
Добавлено: 09.01.07 13:41
Что касается предложенного Вами бенчмака, то он конечно же такой же бестолковый, как и тот, что использовал я

Он, по крайней мере, верный, и замеряет время исполнения одинакового кода с одинаковым количеством итераций.

А что касается Вашего бенчмака, то тут у меня данные несколько отличаются от Ваших.

Бенчмарк должен запускаться на чистой машине с объемом свободной физической оперативной памяти более 100 МБ, при постоянной загрузке процессора более 1 минуты менее 2%, из консоли Windows. Бенчмарк должен работать с приоритетом realtime, во время его работы никаких движений мыши, нажатий на клавиатуру, включенных микрофонов и веб-камер быть не должно. Это - бенчмарк, а остальное - фуфло.

Ответить

Страница: 1 | 2 | 3 | 4 | 5 | 6 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам