Здравствуйте, Sheridan, Вы писали:
S>Здравствуйте, OdinDoma, Вы писали:
OD>>Добрый день, уважаемые! OD>>Недавно для интереса решили проверить скорострельность C# по сравнению с С++. Результаты оказались вполне ожидаемые, а вот когда попробовали сравнить C# с Delphi, очень даже удивились . С# оказался значительно быстрее. OD>>Проверяли на простеньком примере вычислений с плавающей точкой. OD>>Что скажите?
S>Не вижу смысла сравнивать г... с д... S>Отупляют они. И хотя шарп еще вроде как держится (ассемблей еще ненаделали столько сколько компеонентов у делфей) то делфи отупляет сострашной силой.
Молодой человек, а Вы никгда не задумывались за что вам платят деньги, за С++ или все же за конечный продук, и заказчика не волнует на чем Вы его писали? У меня всегда второе, на чем писал конечно интересуются, но это на втором месте, на первом месте стоимость продукта. А по стоимости продукта (времени разработки, т.к. мне пофигу чем заниматься, час работы = ХХХ) дельфи явно рвет С++, и гдето на равных с С#. Со сременем С# сметет и Дельфи, это когда для него сбороко будет столько же, сколько для Дельфы.
ЗЫ. И, на всяки случай, не надо орать что дельфисты тупые и т.д., да писать свое там как правило не надо, все уже написали. Но те кому надо рисуют свои компоненты. Вопрос в смысле их рисования. И что такое ООП и с чем его едят они тоже знают как и "супер" сишники
wraithik wrote:
> Молодой человек, а Вы никгда не задумывались за что вам платят деньги, > за С++ или все же за конечный продук, и заказчика не волнует на чем Вы > его писали? У меня всегда второе, на чем писал конечно интересуются, > но это на втором месте, на первом месте стоимость продукта. А по > стоимости продукта (времени разработки, т.к. мне пофигу чем > заниматься, час работы = ХХХ) дельфи явно рвет С++
Это где это??? Дельфи упрощает создание формочек — но в нормальных
программах это лишь десятая часть функциональности.
> ЗЫ. И, на всяки случай, не надо орать что дельфисты тупые и т.д., да > писать свое там как правило не надо, все уже написали. Но те кому надо > рисуют свои компоненты. Вопрос в смысле их рисования. И что такое ООП > и с чем его едят они тоже знают как и "супер" сишники
>> стоимости продукта (времени разработки, т.к. мне пофигу чем >> заниматься, час работы = ХХХ) дельфи явно рвет С++
C>Это где это??? Дельфи упрощает создание формочек — но в нормальных C>программах это лишь десятая часть функциональности.
Учти, что среди всех разрабатываемых программ лишь десятая часть "нормальные".
Здравствуйте, OdinDoma, Вы писали:
OD>Последние цифры по твоему примеру (голые факты без эмоций ): OD>StrangeAttractr OD>С# — 3 сек OD>C++ — 1,2 сек (c полной оптимизацией) OD>Delphi — 4,73 сек
Уважаемый OdinDoma ну всем же известен оптимизатор C++, но к имено этим тестам он ни какого отношения не имеет.
В данном случае он просто раскрутил цикл, и обрезал вызова.
По C# в примере ошибка в Ctimer, Ну не очень у меня с C#.
Исправленный тест http://rsdn.ru/File/41945/floattest.rar
Статистика :
Каждый тест запускался по 10 раз, вычислялось среднее значение.
VC7 (без оптимизации)
FloatTest(1000000000) 15,96 сек.
StrangeAttractr(50000000) 4,12 сек.
Delphi (Prec=Extended)
FloatTest(1000000000) 18,15 сек.
StrangeAttractr(50000000) 4,75 сек.
Delphi (Prec=Double)
FloatTest(1000000000) 15,96 сек.
StrangeAttractr(50000000) 4,38 сек.
C#
FloatTest(1000000000) 16 сек.
StrangeAttractr(50000000) 4,03 сек.
Здравствуйте, Axc, Вы писали:
Axc>Здравствуйте, vlad_gri, Вы писали:
_>>Нашел интересную фишку. _>>У Microsoft в С++ и C# в 8087CW стоит PrecissionMode=DOUBLE а _>>у Borland в 8087CW стоит PrecissionMode=EXTENDED. _>>Попробуй протестировать Delphi с установленным PrecissionMode=DOUBLE, мне интересно ,что получиться.
Axc>Не должно влиять на скорость. AFAIK сопроцессор работает всегда с десятибайтовым представлением.
Еще как влияет.
Здравствуйте, Cyberax, Вы писали:
C>wraithik wrote:
>> Молодой человек, а Вы никгда не задумывались за что вам платят деньги, >> за С++ или все же за конечный продук, и заказчика не волнует на чем Вы >> его писали? У меня всегда второе, на чем писал конечно интересуются, >> но это на втором месте, на первом месте стоимость продукта. А по >> стоимости продукта (времени разработки, т.к. мне пофигу чем >> заниматься, час работы = ХХХ) дельфи явно рвет С++
C>Это где это??? Дельфи упрощает создание формочек — но в нормальных C>программах это лишь десятая часть функциональности.
Я сам БД програмиирую и могу сказать, что рисовать интерфейс не намного проще, чем создавать бизнес логику. Бизнес логику рисовать что в Дельфи, что в С++, что в С# почти одинакоко, субъективно С# лучше. А вот интерфейс рисовать в Дельфе однозначно проще чем в С++. А еще чаще его приходится во время разрабюотки ПО переделыывать по несколько раз, так что время затрачивоемое на разарботку интерфейса иногда превосходит время затрачивоемое на разаработку структуры БД + бизнес-ппроцессов.
Если ПО = какой-нить сложный расчет, то спору нет интефейс стоит на 2 месте, если же бух.программа, то на 1. Если не сделаете так, вас бухгалтера разорвут на части
>> ЗЫ. И, на всяки случай, не надо орать что дельфисты тупые и т.д., да >> писать свое там как правило не надо, все уже написали. Но те кому надо >> рисуют свои компоненты. Вопрос в смысле их рисования. И что такое ООП >> и с чем его едят они тоже знают как и "супер" сишники
C>Не похоже, так как считают VСL верхом творения.
Да. VCL — очень хорашая вещь. Если бы MFC хотя бы приблизилась к ней по свое мощи рисования интрефейсов, то на С++ тоже забыли про наследование визульных контролов, пропал бы смылс.
Единственное что мне нравится в с#/c++, так это их способ работы с БД, дельфи своим автоматизмом зачастую только мешает, подэтому C# я считаю более удобным языыком программирования чем Дельфи.
Здравствуйте, vlad_gri, Вы писали:
Axc>>Не должно влиять на скорость. AFAIK сопроцессор работает всегда с десятибайтовым представлением. _>Еще как влияет.
Та ой.
typedef float MYFLOAT;
//typedef long double MYFLOAT;
MYFLOAT d = 0.0;
MYFLOAT c100000 = 100000;
MYFLOAT c12 = 0.5;
DWORD t = GetTickCount();
__asm fldz
for (int i = 1; i <= 50000000; i++)
{
__asm
{
fild i
fsqrt
faddp ST(1),ST
fcom c100000
sahf
jne diviz
fld c12
fmulp ST(1),ST
diviz:
}
}
__asm fstp d
DWORD g = GetTickCount();
Результаты гуляют (в основном два значения 1218 и 1234, но бывает и 1260). Но когда MYFLOAT определен как long double — мат. ожидание времени выполнения скорее меньше.
Здравствуйте, Axc, Вы писали:
Axc>Здравствуйте, vlad_gri, Вы писали:
Axc>>>Не должно влиять на скорость. AFAIK сопроцессор работает всегда с десятибайтовым представлением. _>>Еще как влияет.
Axc>Та ой.
Попробуй так.
// Макрос для установки PRECISSIONMODE в EXTENDED #define SET_CW_PRECISSION_TO_EXTENDED \
__asm push 0000037FH \
__asm fldcw dword ptr [esp] \
__asm add esp,4
// Макрос для установки PRECISSIONMODE в DOUBLE #define SET_CW_PRECISSION_TO_MS_DEFAULT \
__asm push 0000027FH \
__asm fldcw dword ptr [esp] \
__asm add esp,4typedef float MYFLOAT;
//typedef long double MYFLOAT;
MYFLOAT d = 0.0;
MYFLOAT c100000 = 100000;
MYFLOAT c12 = 0.5;
DWORD t = GetTickCount();
SET_CW_PRECISSION_TO_EXTENDED__asm fldz
for (int i = 1; i <= 50000000; i++)
{
__asm
{
fild i
fsqrt
faddp ST(1),ST
fcom c100000
sahf
jne diviz
fld c12
fmulp ST(1),ST
diviz:
}
}
__asm fstp d
SET_CW_PRECISSION_TO_MS_DEFAULT
DWORD g = GetTickCount();
А на 1С всякую булгахтерско-складскую фигню делать еще быстрее => Делфи сакс, 1С рулез, так? Просто для каждого круга задач существует своя "серебряная пуля". Для клепания отчетов к какой-нить систиме "СуперСклад" годится Делфи (только не надо рассказывать про жутко навороченную бизнес-логику — сам в этом гуане ковыряюсь). Но стоит лишь задаче выйти за пределы "расчет зарплаты", как сразу появляются проблемы. Да и множество компонентов Делфи конечно (причем большая часть криатиффа написана кривыми ручонками). А насчет ГУЯ, так далеко не в каждой задаче ГУЙ является пупом земли. Делать ГУЙ на С++ не так уж и сложно/медленно — все зависит от привычки
ЗЫ: кстати, о булгахтерах: у меня сложилось впечатление, что им и ГУЙ и юзабилити глубоко пофигу... главное чтоб отчет, который руками 3 дня делать, на компе за 3 минуты проскочил (а сэкономленное время идет на распитие чаев/кофеев, болтовню и т.д.). Хотя может мне "правильные" булгахтера не попадались
Т.е. в макросе SET_CW_PRECISSION_TO_EXTENDED константа 0000007FH (кстати, а почему 7? по ссылке эти биты описаны как зарезервированные). Если поставить 0000007FH, то выполняется сильно быстрее! (735-750)
Здравствуйте, loki1000, Вы писали:
L>Здравствуйте, wraithik, Вы писали:
L>А на 1С всякую булгахтерско-складскую фигню делать еще быстрее => Делфи сакс, 1С рулез, так? Просто для каждого круга задач существует своя "серебряная пуля". Для клепания отчетов к какой-нить систиме "СуперСклад" годится Делфи (только не надо рассказывать про жутко навороченную бизнес-логику — сам в этом гуане ковыряюсь). Но стоит лишь задаче выйти за пределы "расчет зарплаты", как сразу появляются проблемы. Да и множество компонентов Делфи конечно (причем большая часть криатиффа написана кривыми ручонками). А насчет ГУЯ, так далеко не в каждой задаче ГУЙ является пупом земли. Делать ГУЙ на С++ не так уж и сложно/медленно — все зависит от привычки
Ты прав, я так и поступаю, где уджобно юзать 1С там ее и юзаю, если надо то C# (раньше Дельфи)
L>ЗЫ: кстати, о булгахтерах: у меня сложилось впечатление, что им и ГУЙ и юзабилити глубоко пофигу... главное чтоб отчет, который руками 3 дня делать, на компе за 3 минуты проскочил (а сэкономленное время идет на распитие чаев/кофеев, болтовню и т.д.). Хотя может мне "правильные" булгахтера не попадались
Правильные тебе попадались. Интефейсы бываю двух ыидов красивые и удобные, так вот некторым нужен красивый с ними и геморой.
Axc>Т.е. в макросе SET_CW_PRECISSION_TO_EXTENDED константа 0000007FH (кстати, а почему 7? по ссылке эти биты описаны >как зарезервированные). Если поставить 0000007FH, то выполняется сильно быстрее! (735-750)
0000007FH это PRECISSIONMODE=SINGLE и не удивительно что вычисления с таким PRECISSIONMODE гораздо
быстрее.При изменении от EXTENDED до SINGLE скорасть возрастает почти в двое, но теряется точность
вычислений.
loki1000 пишет: > А на 1С всякую булгахтерско-складскую фигню делать еще быстрее => Делфи > сакс, 1С рулез, так?
1С отстой по дефолту. Как только требуется что-нибудь сложнее зряплаты
как в стену головой бъешься.
> Просто для каждого круга задач существует своя > "серебряная пуля". Для клепания отчетов к какой-нить систиме > "СуперСклад" годится Делфи (только не надо рассказывать про жутко > навороченную бизнес-логику — сам в этом гуане ковыряюсь).
Для клепания отчетов, ИМХО, лучше годится Crystal Report/
> ЗЫ: кстати, о булгахтерах: у меня сложилось впечатление, что им и ГУЙ и > юзабилити глубоко пофигу... главное чтоб отчет, который руками 3 дня > делать, на компе за 3 минуты проскочил (а сэкономленное время идет на > распитие чаев/кофеев, болтовню и т.д.). Хотя может мне "правильные" > булгахтера не попадались
Правильные бухи тратят свободное время на lines.
А юзабилити им действительно пофигу. Зато не пофигу операторам и
дирекции, особенно когда товар по неделе не может попасть на прилавок
из-за того, что операторы его слишком долго ставят.
Posted via RSDN NNTP Server 1.9
Всё, что нас не убивает, ещё горько об этом пожалеет.
Здравствуйте, Axc, Вы писали:
Axc>Здравствуйте, vlad_gri, Вы писали:
_>>0000007FH это PRECISSIONMODE=SINGLE
Axc>Ссылку в студию.
_>> не удивительно что вычисления с таким PRECISSIONMODE гораздо быстрее
Axc>Меня это как-то тоже несколько смущает :-j
Здравствуйте, rbrunets, Вы писали:
R>loki1000 пишет: >> А на 1С всякую булгахтерско-складскую фигню делать еще быстрее => Делфи >> сакс, 1С рулез, так?
R>1С отстой по дефолту. Как только требуется что-нибудь сложнее зряплаты R>как в стену головой бъешься.
Да. Меня ввели в заблуждение. Причем — не единожды. Не читайте советских газет!
Даже Intel тоже говорит.
Do not use too much precision when it is not necessary. Single precision (32-bits) is faster on some operations and consumes only half the memory space as double precision (64-bits) or double extended (80-bits).