Re[2]: C# vs Delphi
От: wraithik Россия  
Дата: 07.07.05 20:32
Оценка: +4
Здравствуйте, Sheridan, Вы писали:

S>Здравствуйте, OdinDoma, Вы писали:


OD>>Добрый день, уважаемые!

OD>>Недавно для интереса решили проверить скорострельность C# по сравнению с С++. Результаты оказались вполне ожидаемые, а вот когда попробовали сравнить C# с Delphi, очень даже удивились . С# оказался значительно быстрее.
OD>>Проверяли на простеньком примере вычислений с плавающей точкой.
OD>>Что скажите?

S>Не вижу смысла сравнивать г... с д...

S>Отупляют они. И хотя шарп еще вроде как держится (ассемблей еще ненаделали столько сколько компеонентов у делфей) то делфи отупляет сострашной силой.

Молодой человек, а Вы никгда не задумывались за что вам платят деньги, за С++ или все же за конечный продук, и заказчика не волнует на чем Вы его писали? У меня всегда второе, на чем писал конечно интересуются, но это на втором месте, на первом месте стоимость продукта. А по стоимости продукта (времени разработки, т.к. мне пофигу чем заниматься, час работы = ХХХ) дельфи явно рвет С++, и гдето на равных с С#. Со сременем С# сметет и Дельфи, это когда для него сбороко будет столько же, сколько для Дельфы.

ЗЫ. И, на всяки случай, не надо орать что дельфисты тупые и т.д., да писать свое там как правило не надо, все уже написали. Но те кому надо рисуют свои компоненты. Вопрос в смысле их рисования. И что такое ООП и с чем его едят они тоже знают как и "супер" сишники
Re[3]: C# vs Delphi
От: Cyberax Марс  
Дата: 07.07.05 21:06
Оценка:
wraithik wrote:

> Молодой человек, а Вы никгда не задумывались за что вам платят деньги,

> за С++ или все же за конечный продук, и заказчика не волнует на чем Вы
> его писали? У меня всегда второе, на чем писал конечно интересуются,
> но это на втором месте, на первом месте стоимость продукта. А по
> стоимости продукта (времени разработки, т.к. мне пофигу чем
> заниматься, час работы = ХХХ) дельфи явно рвет С++

Это где это??? Дельфи упрощает создание формочек — но в нормальных
программах это лишь десятая часть функциональности.

> ЗЫ. И, на всяки случай, не надо орать что дельфисты тупые и т.д., да

> писать свое там как правило не надо, все уже написали. Но те кому надо
> рисуют свои компоненты. Вопрос в смысле их рисования. И что такое ООП
> и с чем его едят они тоже знают как и "супер" сишники

Не похоже, так как считают VСL верхом творения.

--
С уважением,
Alex Besogonov (alexy@izh.com)
Posted via RSDN NNTP Server 1.9
Sapienti sat!
Re[4]: C# vs Delphi
От: Ur-Quan  
Дата: 07.07.05 21:29
Оценка: +1
>> стоимости продукта (времени разработки, т.к. мне пофигу чем
>> заниматься, час работы = ХХХ) дельфи явно рвет С++

C>Это где это??? Дельфи упрощает создание формочек — но в нормальных

C>программах это лишь десятая часть функциональности.

Учти, что среди всех разрабатываемых программ лишь десятая часть "нормальные".
Re[8]: C# vs Delphi
От: vlad_gri  
Дата: 08.07.05 04:56
Оценка:
Здравствуйте, 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 сек.
Re[8]: C# vs Delphi
От: vlad_gri  
Дата: 08.07.05 05:58
Оценка:
Здравствуйте, Axc, Вы писали:

Axc>Здравствуйте, vlad_gri, Вы писали:


_>>Нашел интересную фишку.

_>>У Microsoft в С++ и C# в 8087CW стоит PrecissionMode=DOUBLE а
_>>у Borland в 8087CW стоит PrecissionMode=EXTENDED.
_>>Попробуй протестировать Delphi с установленным PrecissionMode=DOUBLE, мне интересно ,что получиться.

Axc>Не должно влиять на скорость. AFAIK сопроцессор работает всегда с десятибайтовым представлением.

Еще как влияет.
Re[4]: C# vs Delphi
От: wraithik Россия  
Дата: 08.07.05 08:11
Оценка: +1
Здравствуйте, Cyberax, Вы писали:

C>wraithik wrote:


>> Молодой человек, а Вы никгда не задумывались за что вам платят деньги,

>> за С++ или все же за конечный продук, и заказчика не волнует на чем Вы
>> его писали? У меня всегда второе, на чем писал конечно интересуются,
>> но это на втором месте, на первом месте стоимость продукта. А по
>> стоимости продукта (времени разработки, т.к. мне пофигу чем
>> заниматься, час работы = ХХХ) дельфи явно рвет С++

C>Это где это??? Дельфи упрощает создание формочек — но в нормальных

C>программах это лишь десятая часть функциональности.

Я сам БД програмиирую и могу сказать, что рисовать интерфейс не намного проще, чем создавать бизнес логику. Бизнес логику рисовать что в Дельфи, что в С++, что в С# почти одинакоко, субъективно С# лучше. А вот интерфейс рисовать в Дельфе однозначно проще чем в С++. А еще чаще его приходится во время разрабюотки ПО переделыывать по несколько раз, так что время затрачивоемое на разарботку интерфейса иногда превосходит время затрачивоемое на разаработку структуры БД + бизнес-ппроцессов.
Если ПО = какой-нить сложный расчет, то спору нет интефейс стоит на 2 месте, если же бух.программа, то на 1. Если не сделаете так, вас бухгалтера разорвут на части

>> ЗЫ. И, на всяки случай, не надо орать что дельфисты тупые и т.д., да

>> писать свое там как правило не надо, все уже написали. Но те кому надо
>> рисуют свои компоненты. Вопрос в смысле их рисования. И что такое ООП
>> и с чем его едят они тоже знают как и "супер" сишники

C>Не похоже, так как считают VСL верхом творения.


Да. VCL — очень хорашая вещь. Если бы MFC хотя бы приблизилась к ней по свое мощи рисования интрефейсов, то на С++ тоже забыли про наследование визульных контролов, пропал бы смылс.

Единственное что мне нравится в с#/c++, так это их способ работы с БД, дельфи своим автоматизмом зачастую только мешает, подэтому C# я считаю более удобным языыком программирования чем Дельфи.
Re[3]: C# vs Delphi
От: ZevS  
Дата: 08.07.05 08:43
Оценка:
Я вообще на рынке торгую. А на чем пишу — так это дело принципа — только VB.
Re[9]: C# vs Delphi
От: Axc  
Дата: 08.07.05 08:57
Оценка:
Здравствуйте, 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 — мат. ожидание времени выполнения скорее меньше.

Критика программы принимается.
Re[10]: C# vs Delphi
От: vlad_gri  
Дата: 08.07.05 09:22
Оценка:
Здравствуйте, 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,4


typedef 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();
Re[5]: C# vs Delphi
От: loki1000 Украина  
Дата: 08.07.05 09:33
Оценка:
Здравствуйте, wraithik, Вы писали:

А на 1С всякую булгахтерско-складскую фигню делать еще быстрее => Делфи сакс, 1С рулез, так? Просто для каждого круга задач существует своя "серебряная пуля". Для клепания отчетов к какой-нить систиме "СуперСклад" годится Делфи (только не надо рассказывать про жутко навороченную бизнес-логику — сам в этом гуане ковыряюсь). Но стоит лишь задаче выйти за пределы "расчет зарплаты", как сразу появляются проблемы. Да и множество компонентов Делфи конечно (причем большая часть криатиффа написана кривыми ручонками). А насчет ГУЯ, так далеко не в каждой задаче ГУЙ является пупом земли. Делать ГУЙ на С++ не так уж и сложно/медленно — все зависит от привычки

ЗЫ: кстати, о булгахтерах: у меня сложилось впечатление, что им и ГУЙ и юзабилити глубоко пофигу... главное чтоб отчет, который руками 3 дня делать, на компе за 3 минуты проскочил (а сэкономленное время идет на распитие чаев/кофеев, болтовню и т.д.). Хотя может мне "правильные" булгахтера не попадались
Re[11]: C# vs Delphi
От: Axc  
Дата: 08.07.05 09:51
Оценка:
Здравствуйте, vlad_gri, Вы писали:

Axc>>>>Не должно влиять на скорость. AFAIK сопроцессор работает всегда с десятибайтовым представлением.

_>>>Еще как влияет.

_>Попробуй так.


_>[ccode]


_>// Макрос для установки 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,4


Таки да, облажался. Но:

Поле PC управляет точностью вычислений в сопроцессоре:

00 Использование расширенной точности. Этот режим устанавливается при инициализации сопроцессора

10 Округление результата до двойной точности

11 Округление результата до одинарной точности


отсюда

Т.е. в макросе SET_CW_PRECISSION_TO_EXTENDED константа 0000007FH (кстати, а почему 7? по ссылке эти биты описаны как зарезервированные). Если поставить 0000007FH, то выполняется сильно быстрее! (735-750)
Re[6]: C# vs Delphi
От: wraithik Россия  
Дата: 08.07.05 09:54
Оценка:
Здравствуйте, loki1000, Вы писали:

L>Здравствуйте, wraithik, Вы писали:


L>А на 1С всякую булгахтерско-складскую фигню делать еще быстрее => Делфи сакс, 1С рулез, так? Просто для каждого круга задач существует своя "серебряная пуля". Для клепания отчетов к какой-нить систиме "СуперСклад" годится Делфи (только не надо рассказывать про жутко навороченную бизнес-логику — сам в этом гуане ковыряюсь). Но стоит лишь задаче выйти за пределы "расчет зарплаты", как сразу появляются проблемы. Да и множество компонентов Делфи конечно (причем большая часть криатиффа написана кривыми ручонками). А насчет ГУЯ, так далеко не в каждой задаче ГУЙ является пупом земли. Делать ГУЙ на С++ не так уж и сложно/медленно — все зависит от привычки


Ты прав, я так и поступаю, где уджобно юзать 1С там ее и юзаю, если надо то C# (раньше Дельфи)


L>ЗЫ: кстати, о булгахтерах: у меня сложилось впечатление, что им и ГУЙ и юзабилити глубоко пофигу... главное чтоб отчет, который руками 3 дня делать, на компе за 3 минуты проскочил (а сэкономленное время идет на распитие чаев/кофеев, болтовню и т.д.). Хотя может мне "правильные" булгахтера не попадались


Правильные тебе попадались. Интефейсы бываю двух ыидов красивые и удобные, так вот некторым нужен красивый с ними и геморой.
Re[12]: C# vs Delphi
От: vlad_gri  
Дата: 08.07.05 10:00
Оценка:
Здравствуйте, Axc, Вы писали:


Axc>Т.е. в макросе SET_CW_PRECISSION_TO_EXTENDED константа 0000007FH (кстати, а почему 7? по ссылке эти биты описаны >как зарезервированные). Если поставить 0000007FH, то выполняется сильно быстрее! (735-750)


0000007FH это PRECISSIONMODE=SINGLE и не удивительно что вычисления с таким PRECISSIONMODE гораздо
быстрее.При изменении от EXTENDED до SINGLE скорасть возрастает почти в двое, но теряется точность
вычислений.
Re[6]: C# vs Delphi
От: rbrunets Украина  
Дата: 08.07.05 10:00
Оценка: -1
loki1000 пишет:
> А на 1С всякую булгахтерско-складскую фигню делать еще быстрее => Делфи
> сакс, 1С рулез, так?

1С отстой по дефолту. Как только требуется что-нибудь сложнее зряплаты
как в стену головой бъешься.

> Просто для каждого круга задач существует своя

> "серебряная пуля". Для клепания отчетов к какой-нить систиме
> "СуперСклад" годится Делфи (только не надо рассказывать про жутко
> навороченную бизнес-логику — сам в этом гуане ковыряюсь).

Для клепания отчетов, ИМХО, лучше годится Crystal Report/

> ЗЫ: кстати, о булгахтерах: у меня сложилось впечатление, что им и ГУЙ и

> юзабилити глубоко пофигу... главное чтоб отчет, который руками 3 дня
> делать, на компе за 3 минуты проскочил (а сэкономленное время идет на
> распитие чаев/кофеев, болтовню и т.д.). Хотя может мне "правильные"
> булгахтера не попадались

Правильные бухи тратят свободное время на lines.
А юзабилити им действительно пофигу. Зато не пофигу операторам и
дирекции, особенно когда товар по неделе не может попасть на прилавок
из-за того, что операторы его слишком долго ставят.
Posted via RSDN NNTP Server 1.9


Всё, что нас не убивает, ещё горько об этом пожалеет.
Re[13]: C# vs Delphi
От: Axc  
Дата: 08.07.05 10:04
Оценка:
Здравствуйте, vlad_gri, Вы писали:

_>0000007FH это PRECISSIONMODE=SINGLE


Ссылку в студию.

_> не удивительно что вычисления с таким PRECISSIONMODE гораздо быстрее


Меня это как-то тоже несколько смущает :-j
Re[14]: C# vs Delphi
От: vlad_gri  
Дата: 08.07.05 10:15
Оценка:
Здравствуйте, Axc, Вы писали:

Axc>Здравствуйте, vlad_gri, Вы писали:


_>>0000007FH это PRECISSIONMODE=SINGLE


Axc>Ссылку в студию.


_>> не удивительно что вычисления с таким PRECISSIONMODE гораздо быстрее


Axc>Меня это как-то тоже несколько смущает :-j


http://www.efg2.com/Lab/Library/Delphi/MathFunctions/FPUControlWord.Txt
Re[7]: C# vs Delphi
От: wraithik Россия  
Дата: 08.07.05 10:19
Оценка:
Здравствуйте, rbrunets, Вы писали:

R>loki1000 пишет:

>> А на 1С всякую булгахтерско-складскую фигню делать еще быстрее => Делфи
>> сакс, 1С рулез, так?

R>1С отстой по дефолту. Как только требуется что-нибудь сложнее зряплаты

R>как в стену головой бъешься.

приведи пример.
Re[15]: C# vs Delphi
От: Axc  
Дата: 08.07.05 10:48
Оценка:
Здравствуйте, vlad_gri, Вы писали:

_>http://www.efg2.com/Lab/Library/Delphi/MathFunctions/FPUControlWord.Txt


Да. Меня ввели в заблуждение. Причем — не единожды. Не читайте советских газет!

Даже 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).

Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.