.NET светлое будующее или могила?

Просмотр 15 сообщений - с 31 по 45 (из 91 всего)
  • Автор
    Сообщения
  • #1923654
    Данилка
    Участник

    Любопытная деталь. Представленные мною программы поиска простых чисел написаны на языках VB и C#, алгоритм одинаковый.Вот только почему-то программа на VB делает свое дело за 7 секунд, а программа на C# – за 22 секунды. 🙂 Может проверит кто, да предположения выскажет?

    #1923659
    ArchiMage
    Участник

    Интересненько, а зачем тебе в такой проге COM interop?

    #1923661
    ArchiMage
    Участник

    Тем более, что второй пример неверен [smile cool]

    #1923663
    Священник
    Участник

    Мдяя… старая добрая тема НЕТ платформы. Даже название говорит за себя – НЕТ и точка! 🙂 . Эта тема для меня лично даво уже наболевшая. Вот не терплю я дот нет совершенно, потому как для моего рода задач она не просто не подходит… она несносна!!! Потому и приходится делать все на C++. Тем, кто его боится, скажу одно – сколько людей – столько и мнений. Так что не слушайте других, а попробуйте сами. Лично я не за нет технологию. Я не вижу просто как я смогу следить за всеми ресурсами приложения сам(это просто необходимо), как писать оптимизации под SSE, да и как черт возьми я могу посчитать там быстро кватернионы, если везде одни чертовы надстройки классовые!!!
    ну а поиск простых чисел, можно и на спп сделать:#include void main(){ bool s = false; for(int i = 3; i <= 100000; i++) { for(int j = 2; j < 8; j++) if( (i % j) == 0) s = true; if(s) printf("%i\n", i); }}
    ну чем не прелесть)))

    #1923668
    Данилка
    Участник

    2 ArchiMageИ первый, и второй примеры моей программы поиска простых чисел верны абсолютно, ибо проверены – откомпилированы и протестированы. Где ошибка и в чем она заключается? [smile doubt]
    2 ZeroMem
    for(int j = 2; j < 8; j++)
    А почему у вас проверка идет только до делителя 8? откуда вообще взялось это магическое число? Кстати, скопировал эту программу, создал приложение C++ .NET, вставил туда приведеный код – ругается…

    #1923679
    Данилка
    Участник

    Хм… Все-таки я нашел причину, почему программа на C# заканчивает свою работу аж за 22 секунды, в то время как программа на VB – за 7. После исправления недочета обе программы имеют одинаковую скорость (лишний раз подтверждая, что если уж пишешь на .NET, разницы в языках нет никакой).2 ZeroMemЕще раз просмотрев программу вашу, я убеждаюсь в ее [b]полной[/b] неработоспособности. Во-первых обменяли местами булевы значения – там где истина, оказалась ложь, и выводится число, которое простым не является. Это раз. Во-вторых, инициализация булевой переменной (присвоение ей начального значения) производится только один раз в начале программы, хотя делать это надо во внешнем цикле постоянно. И, наконец, никак не могу понять, откуда все-таки взято магическое число 8, почему делители проверяются только до числа 8?Народ, напишите кто-нибудь на классическом C++ программу поиска простых чисел нормально и откомпилируйте – сравним скорость работы классического C++ и коллег этого языка из .NET 😉

    #1923683
    ArchiMage
    Участник

    [quote name='Данилка']И первый, и второй примеры моей программы поиска простых чисел верны абсолютно, ибо проверены – откомпилированы и протестированы. Где ошибка и в чем она заключается? [smile doubt][/quote]Так ты расскажи, что за недочет был? Я надеюсь, это отсутствие оператора break в нужном месте?

    #1923684
    Дикий Билл
    Участник

    2 Данилка. Так чтоб сравнивать надо брать идентичные программы, отличающиеся только синтаксисом. У тебя же они разные.
    Попробовал накатать свой вариант и получилось вот так 🙂 (в pivot числа)
    select * from pivot awhere i>3 and i<10000and not exists(select 1 from pivot b where b.i between 2 and sqrt(a.i) and a.i%b.i=0)
    А твой вариант можно ускорить, если завести массив для простых чисел (сначала в нем только один элемент 2) по мере нахождения добавлять их в него. И делить именно на простые числа, а не на все подряд.

    #1923685
    ArchiMage
    Участник

    2 Данилка:А теперь убери команды работы с консолью и скажи нам время [smile doubt]

    #1923691
    Brain
    Участник

    [quote]#include #include
    void main(){
    int max = 100000; int i,g,flag;
    for (g=3;g<=max;g++) { flag=1; for(i=2;i<= sqrt(g);i++) if (g % i == 0) flag=0;
    if (flag) printf(“Simple = %d\n”,g); }
    exit(0);}[/quote]
    Ну и чем тебе этот код на С не устраивает?
    [quote]-rwxr-xr-x 1 brain users 3,1K 2006-03-22 10:29 simple[/quote]размер бинарника 3.1 К
    [quote]brain@book:~/project/simple$ time simple ………real 0m5.300suser 0m2.812ssys 0m0.116s[/quote]5,3 сикунды
    Если переправить в файл то 2 секунды.
    PS:К стати достаточно странно мерится временем не приводя параметры железа 🙂 .book 1.6M Ram 256

    #1923693
    Дикий Билл
    Участник

    [quote name='Brain'] К стати достаточно странно мерится временем не приводя параметры железа 🙂 .book 1.6M Ram 256 [/quote]Ты не совсем въехал 🙂 Он то мерил на одной и той же машине. И мерил c# и бейсик. Про с и с++ вообще разговора не было.

    #1923694
    Brain
    Участник

    [quote name='Дикий Билл']Ты не совсем въехал 🙂 Он то мерил на одной и той же машине. И мерил c# и бейсик. Про с и с++ вообще разговора не было. [/quote]Я то вьехал. А ты упустил [smile :))] [quote name='Данилка'] Народ, напишите кто-нибудь на классическом C++ программу поиска простых чисел нормально и откомпилируйте – сравним скорость работы классического C++ и коллег этого языка из .NET 😉 [/quote]
    Хотя я написал на С. А то что то неохото вводить классы и тп. для такой задачки [smile :)))].

    #1923697
    Brain
    Участник

    Во подправил немного добавил break;теперь в косоль:
    real 0m1.043suser 0m0.152ssys 0m0.012s
    А в файлreal 0m0.253suser 0m0.160ssys 0m0.008s
    как видем сама программа без вывода примено 0.155 с. (поле User)

    #1923701
    Дикий Билл
    Участник

    Ну я запустил у себя Данилкин вариант бейсиковский – тоже меньше секунды пашет.

    #1923709
    ArchiMage
    Участник

    Вы что паритесь с этим быстродействием?Если среда позволяет быстро делать сложные проги и страдает быстродействием, на которое конечный пользователь не обратит внимание, тогда чего к нему цепляться?Речь идет об удобстве разработки вроде как…

Просмотр 15 сообщений - с 31 по 45 (из 91 всего)
  • Для ответа в этой теме необходимо авторизоваться.