Здравствуйте, Sheridan, Вы писали:
S>Здравствуйте, OdinDoma, Вы писали:
OD>>Добрый день, уважаемые! OD>>Недавно для интереса решили проверить скорострельность C# по сравнению с С++. Результаты оказались вполне ожидаемые, а вот когда попробовали сравнить C# с Delphi, очень даже удивились . С# оказался значительно быстрее. OD>>Проверяли на простеньком примере вычислений с плавающей точкой. OD>>Что скажите?
S>Не вижу смысла сравнивать г... с д... S>Отупляют они. И хотя шарп еще вроде как держится (ассемблей еще ненаделали столько сколько компеонентов у делфей) то делфи отупляет сострашной силой.
Молодой человек, а Вы никгда не задумывались за что вам платят деньги, за С++ или все же за конечный продук, и заказчика не волнует на чем Вы его писали? У меня всегда второе, на чем писал конечно интересуются, но это на втором месте, на первом месте стоимость продукта. А по стоимости продукта (времени разработки, т.к. мне пофигу чем заниматься, час работы = ХХХ) дельфи явно рвет С++, и гдето на равных с С#. Со сременем С# сметет и Дельфи, это когда для него сбороко будет столько же, сколько для Дельфы.
ЗЫ. И, на всяки случай, не надо орать что дельфисты тупые и т.д., да писать свое там как правило не надо, все уже написали. Но те кому надо рисуют свои компоненты. Вопрос в смысле их рисования. И что такое ООП и с чем его едят они тоже знают как и "супер" сишники
Здравствуйте, OdinDoma, Вы писали:
OD>Добрый день, уважаемые! OD>Недавно для интереса решили проверить скорострельность C# по сравнению с С++. Результаты оказались вполне ожидаемые, а вот когда попробовали сравнить C# с Delphi, очень даже удивились . С# оказался значительно быстрее. OD>Проверяли на простеньком примере вычислений с плавающей точкой. OD>Что скажите?
Не вижу смысла сравнивать г... с д...
Отупляют они. И хотя шарп еще вроде как держится (ассемблей еще ненаделали столько сколько компеонентов у делфей) то делфи отупляет сострашной силой.
[RSDN@Home][1.1.4][beta 7][501]
[Winamp is shutdown.]
Здравствуйте, OdinDoma, Вы писали:
OD>Добрый день, уважаемые! OD>Недавно для интереса решили проверить скорострельность C# по сравнению с С++. Результаты оказались вполне ожидаемые, а вот когда попробовали сравнить C# с Delphi, очень даже удивились . С# оказался значительно быстрее. OD>Проверяли на простеньком примере вычислений с плавающей точкой. OD>Что скажите?
Тоже ожидаемый результат. Ты дизасемблируй дельфячий код и глянь в него — сразу все ясно станет.
Нафиг, нафиг, нафиг...
что шарп, что дельфи, когда нынче столько всего хорошего есть
хочешь пошустрее можно OCaml взять, хочешь попроще — Python
Здравствуйте, Sheridan, Вы писали:
S>Здравствуйте, ZevS, Вы писали:
ZS>>Ну если считать отуплением потерю навыка в решении головоломных выражений с указателями — то да — отупляет. S>А мне например тяжко без указателей.
Ну так это ж программирование, а не вышивание. Тяжелый труд для суровых людей — придется сжать челючти и терпетеь.
Здравствуйте, Sheridan, Вы писали:
S>Здравствуйте, ZevS, Вы писали:
ZS>>Ну если считать отуплением потерю навыка в решении головоломных выражений с указателями — то да — отупляет. S>А мне например тяжко без указателей.
Ну если хватает тупости не использовать указатели в Delphi, когда они нужны, то это не проблема языка Delphi.
Здравствуйте, vlad_gri, Вы писали:
_>Нашел интересную фишку. _>У Microsoft в С++ и C# в 8087CW стоит PrecissionMode=DOUBLE а _>у Borland в 8087CW стоит PrecissionMode=EXTENDED. _>Попробуй протестировать Delphi с установленным PrecissionMode=DOUBLE, мне интересно ,что получиться.
Не должно влиять на скорость. AFAIK сопроцессор работает всегда с десятибайтовым представлением.
>> стоимости продукта (времени разработки, т.к. мне пофигу чем >> заниматься, час работы = ХХХ) дельфи явно рвет С++
C>Это где это??? Дельфи упрощает создание формочек — но в нормальных C>программах это лишь десятая часть функциональности.
Учти, что среди всех разрабатываемых программ лишь десятая часть "нормальные".
Здравствуйте, Cyberax, Вы писали:
C>wraithik wrote:
>> Молодой человек, а Вы никгда не задумывались за что вам платят деньги, >> за С++ или все же за конечный продук, и заказчика не волнует на чем Вы >> его писали? У меня всегда второе, на чем писал конечно интересуются, >> но это на втором месте, на первом месте стоимость продукта. А по >> стоимости продукта (времени разработки, т.к. мне пофигу чем >> заниматься, час работы = ХХХ) дельфи явно рвет С++
C>Это где это??? Дельфи упрощает создание формочек — но в нормальных C>программах это лишь десятая часть функциональности.
Я сам БД програмиирую и могу сказать, что рисовать интерфейс не намного проще, чем создавать бизнес логику. Бизнес логику рисовать что в Дельфи, что в С++, что в С# почти одинакоко, субъективно С# лучше. А вот интерфейс рисовать в Дельфе однозначно проще чем в С++. А еще чаще его приходится во время разрабюотки ПО переделыывать по несколько раз, так что время затрачивоемое на разарботку интерфейса иногда превосходит время затрачивоемое на разаработку структуры БД + бизнес-ппроцессов.
Если ПО = какой-нить сложный расчет, то спору нет интефейс стоит на 2 месте, если же бух.программа, то на 1. Если не сделаете так, вас бухгалтера разорвут на части
>> ЗЫ. И, на всяки случай, не надо орать что дельфисты тупые и т.д., да >> писать свое там как правило не надо, все уже написали. Но те кому надо >> рисуют свои компоненты. Вопрос в смысле их рисования. И что такое ООП >> и с чем его едят они тоже знают как и "супер" сишники
C>Не похоже, так как считают VСL верхом творения.
Да. VCL — очень хорашая вещь. Если бы MFC хотя бы приблизилась к ней по свое мощи рисования интрефейсов, то на С++ тоже забыли про наследование визульных контролов, пропал бы смылс.
Единственное что мне нравится в с#/c++, так это их способ работы с БД, дельфи своим автоматизмом зачастую только мешает, подэтому C# я считаю более удобным языыком программирования чем Дельфи.
loki1000 пишет: > А на 1С всякую булгахтерско-складскую фигню делать еще быстрее => Делфи > сакс, 1С рулез, так?
1С отстой по дефолту. Как только требуется что-нибудь сложнее зряплаты
как в стену головой бъешься.
> Просто для каждого круга задач существует своя > "серебряная пуля". Для клепания отчетов к какой-нить систиме > "СуперСклад" годится Делфи (только не надо рассказывать про жутко > навороченную бизнес-логику — сам в этом гуане ковыряюсь).
Для клепания отчетов, ИМХО, лучше годится Crystal Report/
> ЗЫ: кстати, о булгахтерах: у меня сложилось впечатление, что им и ГУЙ и > юзабилити глубоко пофигу... главное чтоб отчет, который руками 3 дня > делать, на компе за 3 минуты проскочил (а сэкономленное время идет на > распитие чаев/кофеев, болтовню и т.д.). Хотя может мне "правильные" > булгахтера не попадались
Правильные бухи тратят свободное время на lines.
А юзабилити им действительно пофигу. Зато не пофигу операторам и
дирекции, особенно когда товар по неделе не может попасть на прилавок
из-за того, что операторы его слишком долго ставят.
Posted via RSDN NNTP Server 1.9
Всё, что нас не убивает, ещё горько об этом пожалеет.
Добрый день, уважаемые!
Недавно для интереса решили проверить скорострельность C# по сравнению с С++. Результаты оказались вполне ожидаемые, а вот когда попробовали сравнить C# с Delphi, очень даже удивились . С# оказался значительно быстрее.
Проверяли на простеньком примере вычислений с плавающей точкой.
Что скажите?
<...>
S>Не вижу смысла сравнивать г... с д... S>Отупляют они. И хотя шарп еще вроде как держится (ассемблей еще ненаделали столько сколько компеонентов у делфей) то делфи отупляет сострашной силой.
Ну если считать отуплением потерю навыка в решении головоломных выражений с указателями — то да — отупляет.
Здравствуйте, OdinDoma, Вы писали:
...
Зачем сравнивать с Delphi? Чтобы потом ругать?
В документации к Delphi указано, что ее не рекомендуется использовать для математических расчетов, где требуется высокая производительность.
Здравствуйте, ZevS, Вы писали:
ZS>Ну если считать отуплением потерю навыка в решении головоломных выражений с указателями — то да — отупляет.
А мне например тяжко без указателей.
[RSDN@Home][1.1.4][beta 7][501]
[Winamp is shutdown.]
Здравствуйте, OdinDoma, Вы писали:
OD>Добрый день, уважаемые! OD>Недавно для интереса решили проверить скорострельность C# по сравнению с С++. Результаты оказались вполне ожидаемые, а вот когда попробовали сравнить C# с Delphi, очень даже удивились . С# оказался значительно быстрее. OD>Проверяли на простеньком примере вычислений с плавающей точкой. OD>Что скажите?
Скажу, что баян.
new RSDN@Home(1.1.4, 303) << new Message(); std::head::ear << "Metallica — Enter Sandman";
Здравствуйте, ansi, Вы писали:
A>Здравствуйте, OdinDoma, Вы писали:
OD>>Добрый день, уважаемые! OD>>Недавно для интереса решили проверить скорострельность C# по сравнению с С++. Результаты оказались вполне ожидаемые, а вот когда попробовали сравнить C# с Delphi, очень даже удивились . С# оказался значительно быстрее. OD>>Проверяли на простеньком примере вычислений с плавающей точкой. OD>>Что скажите?
A>Скажу, что баян.
Да нет не баян. Только, смотри выделенное, не совсем верно.
Здравствуйте, vlad_gri, Вы писали:
_>Да нет не баян. Только, смотри выделенное, не совсем верно.
Почему же неверно. Процентов на 10-20 Delphi медленнее оказался.
Если посмотреть в Asm, то после каждой операции с плавающей точкой Delphi wait навставлял. В Майкрософтовском коде waitов вообще нет.
Здравствуйте, OdinDoma, Вы писали:
OD>Здравствуйте, vlad_gri, Вы писали:
_>>Да нет не баян. Только, смотри выделенное, не совсем верно.
OD>Почему же неверно. Процентов на 10-20 Delphi медленнее оказался. OD>Если посмотреть в Asm, то после каждой операции с плавающей точкой Delphi wait навставлял. В Майкрософтовском коде waitов вообще нет.
Приведи свой тест для проверки.
У меня разница 1-5 процентов
Насчет fwait твоя правда, отьедает гад 4 такта процессора, оставлен якобы для совместимости с i486
Но давай проведем тесты на Pentium.
Если кто-либо скажет, что таких процессоров уже не существует, милости прошу из 80 компов 8 они и есть.
Здравствуйте, vlad_gri, Вы писали:
_>Приведи свой тест для проверки. _>У меня разница 1-5 процентов _>Насчет fwait твоя правда, отьедает гад 4 такта процессора, оставлен якобы для совместимости с i486 _>Но давай проведем тесты на Pentium. _>Если кто-либо скажет, что таких процессоров уже не существует, милости прошу из 80 компов 8 они и есть.
Насчет 20% я действительно загнул. На моем примере до 7 получилось.
Пример, самый, что ни на есть примитивный, поэтому ни факт, что он показательный.
double d=0;
int t=Environment.TickCount;
for (int i=1;i<=50000000;i++)
{
d=d+Math.Sqrt(i);
if (d>100000)
d=d/2;
}
int g=Environment.TickCount;
Console.WriteLine(g-t);
Console.WriteLine(d);
С++ — 4015 мс
С# — 4672 мс
Delphi — от 4890 до 5046 мс (нестабильно)
Интересно было бы APIшными вызовами разбавить, да и расчеты посложнее.
Здравствуйте, OdinDoma, Вы писали:
OD>Насчет 20% я действительно загнул. На моем примере до 7 получилось. OD>Пример, самый, что ни на есть примитивный, поэтому ни факт, что он показательный. OD> double d=0; OD> int t=Environment.TickCount; OD> for (int i=1;i<=50000000;i++) OD> { OD> d=d+Math.Sqrt(i); OD> if (d>100000) OD> d=d/2; OD> } OD> int g=Environment.TickCount; OD> Console.WriteLine(g-t); OD> Console.WriteLine(d); OD>С++ — 4015 мс OD>С# — 4672 мс OD>Delphi — от 4890 до 5046 мс (нестабильно)
OD>Интересно было бы APIшными вызовами разбавить, да и расчеты посложнее.
Нашел интересную фишку.
У Microsoft в С++ и C# в 8087CW стоит PrecissionMode=DOUBLE а
у Borland в 8087CW стоит PrecissionMode=EXTENDED.
Попробуй протестировать Delphi с установленным PrecissionMode=DOUBLE, мне интересно ,что получиться.
Здравствуйте, vlad_gri, Вы писали:
_>Здравствуйте, OdinDoma, Вы писали:
OD>>Интересно было бы APIшными вызовами разбавить, да и расчеты посложнее.
_>Мои тесты. _>http://rsdn.ru/File/41945/floatTest.rar
Успел только запустить exe-шники.
Все почти одинаково (c Double Precission), но C# чуть-чуть обогнал.
Завтра еще посмотрю
wraithik wrote:
> Молодой человек, а Вы никгда не задумывались за что вам платят деньги, > за С++ или все же за конечный продук, и заказчика не волнует на чем Вы > его писали? У меня всегда второе, на чем писал конечно интересуются, > но это на втором месте, на первом месте стоимость продукта. А по > стоимости продукта (времени разработки, т.к. мне пофигу чем > заниматься, час работы = ХХХ) дельфи явно рвет С++
Это где это??? Дельфи упрощает создание формочек — но в нормальных
программах это лишь десятая часть функциональности.
> ЗЫ. И, на всяки случай, не надо орать что дельфисты тупые и т.д., да > писать свое там как правило не надо, все уже написали. Но те кому надо > рисуют свои компоненты. Вопрос в смысле их рисования. И что такое ООП > и с чем его едят они тоже знают как и "супер" сишники
Здравствуйте, 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 сопроцессор работает всегда с десятибайтовым представлением.
Еще как влияет.
Здравствуйте, 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 скорасть возрастает почти в двое, но теряется точность
вычислений.
Здравствуйте, 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).