|
|
|
Бенчмарки C#, C++, Java, Delphi
|
|||
|---|---|---|---|
|
#18+
А здесь исходники и постановка задачи для делфи и c# /topic/241745&pg=18 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2007, 16:47 |
|
||
|
Бенчмарки C#, C++, Java, Delphi
|
|||
|---|---|---|---|
|
#18+
Раз здесь тема про бенчмарки, спрошу: Кто-нибудь может объяснить, почему следующий код, скомпилированный в Delphi 4,5,6 работает ровно в 2 (два) раза быстрее, чем этот же код, скомпилированный в Delphi 7 и 2006. Например, на Athlon X23800+ на номинале время выполнения соответственно 930 и 1860 мсек для razmer=11. Кстати, может кто перепишет его на C, интересно сравнить. Это алгоритм перебора всех возможных перестановок элементов массива. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2007, 18:13 |
|
||
|
Бенчмарки C#, C++, Java, Delphi
|
|||
|---|---|---|---|
|
#18+
[quot Yuric74]Кто-нибудь может объяснить, почему следующий код, скомпилированный в Delphi 4,5,6 работает ровно в 2 (два) раза быстрее, чем этот же код, скомпилированный в Delphi 7 и 2006. Например, на Athlon X23800+ на номинале время выполнения соответственно 930 и 1860 мсек для razmer=11. [/quit] Юра, приведи статистику для времени хотя-бы на три порядка больше. А то непонятно, что мы вообще замеряем: время работы алгоритма, или какие-то инерционные процессы в ОС/Железе. И полный перечень опций компиллятора для обоих случаев приведи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2007, 18:43 |
|
||
|
Бенчмарки C#, C++, Java, Delphi
|
|||
|---|---|---|---|
|
#18+
приведи статистику для времени хотя-бы на три порядка больше Привожу: (снято только что) Для razmer=12 Delphi 5 - Count: 479001600 Time: 10812(ms) Delphi 2006 - Count: 479001600 Time: 21406(ms) Для razmer=13 Delphi 5 - Count: 1932053504 Time: 142782(ms) Delphi 2006 - Count: 1932053504 Time: 277125(ms) Для бОльших значений ждать неприлично долго. Опции из .cfg? Если да, то вот они Delphi 5 -$A+ -$B- -$C+ -$D+ -$E- -$F- -$G+ -$H+ -$I+ -$J+ -$K- -$L+ -$M- -$N+ -$O+ -$P+ -$Q- -$R- -$S- -$T- -$U- -$V+ -$W- -$X+ -$YD -$Z1 -cg -AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; -H+ -W+ -M -$M16384,1048576 -K$00400000 Delphi 2006 -$A4 -$B- -$C+ -$D+ -$E- -$F- -$G+ -$H+ -$I+ -$J- -$K- -$L+ -$M- -$N+ -$O+ -$P+ -$Q- -$R- -$S- -$T- -$U- -$V+ -$W+ -$X+ -$YD -$Z1 -cg -AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; -H+ -W+ -M -$M16384,1048576 -K$00400000 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2007, 19:07 |
|
||
|
Бенчмарки C#, C++, Java, Delphi
|
|||
|---|---|---|---|
|
#18+
OracleX AklinВ Вашем коде есть не понятное место: Код: plaintext 1. 2. епта, просто ошибся, суть мало меняется. 7% прибавить к тому, что было ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2007, 21:08 |
|
||
|
Бенчмарки C#, C++, Java, Delphi
|
|||
|---|---|---|---|
|
#18+
AklinРезультат для C++ получен на той же машине, где производился delphi-тест? Yuric74Ваш тест у меня для Delphi5 тоже быстрее на 30%, чем для Delphi7. Причина - генерируется код, который лучше использует регистры :( Оптимизация включена, но компилятор D7 делает такой же код, что и при отключенной оптимизации. Вот не ожидал от D7 такого, а от D2006 (сам не тестил) и подавно . На Вашем тесте D7 без оптимизации делает код чуть лучше, чем D5 без оптимизации. Парадоксально, но тест с LZMA для Delphi5 выполняется с той же скоростью, что и для Delphi7. Для D7 разница с оптимизатором и без него заметна (с оптимизатором быстрее на 20%). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2007, 23:14 |
|
||
|
Бенчмарки C#, C++, Java, Delphi
|
|||
|---|---|---|---|
|
#18+
Yuric74Раз здесь тема про бенчмарки, спрошу: Кто-нибудь может объяснить, почему следующий код, скомпилированный в Delphi 4,5,6 работает ровно в 2 (два) раза быстрее, чем этот же код, скомпилированный в Delphi 7 и 2006. Sysutils напиши вот так - SysUtils и заработает на той же скорости! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2007, 23:16 |
|
||
|
Бенчмарки C#, C++, Java, Delphi
|
|||
|---|---|---|---|
|
#18+
OracleXВаш тест у меня для Delphi5 тоже быстрее на 30%, чем для Delphi7. У меня на D7 работал в 2 раза медленнее, чем в D5. Но у меня на D7 не стояли сервис-паки (это было несколько лет назад). OracleXПарадоксально, но тест с LZMA для Delphi5 выполняется с той же скоростью, что и для Delphi7. Да, и в D2006 тоже. Кстати, если отключить оптимизацию, то код выполняется примерно одинаково по времени, правда еще медленнее. Master AlexSysutils напиши вот так - SysUtils и заработает на той же скорости! Попробовал - не помогло :) А на С, может, кто перепишет, а то я в нем не силен. Интересно сравнить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2007, 23:36 |
|
||
|
Бенчмарки C#, C++, Java, Delphi
|
|||
|---|---|---|---|
|
#18+
OracleXДля D7 разница с оптимизатором и без него заметна (с оптимизатором быстрее на 20%). Для моего кода разница в D5 с оптимизацией и без составляет почти 2,68 раза. В D2006 - всего 1,33. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2007, 23:45 |
|
||
|
Бенчмарки C#, C++, Java, Delphi
|
|||
|---|---|---|---|
|
#18+
to OracleX Не обращай внимания на Aklin, у него свои алгоритмы, да и по-моему не втыкает что здесь проиcходит, потому как его любимый форум - http://sql.ru/forum/actualtopics.aspx?bid=16 P/S Для Aklin 1) Оптимизация алгоритма и кода - это не одно и тоже! 2) какого хрена ты туда прописал Код: plaintext 1. 2. 3. 4. а не Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2007, 00:17 |
|
||
|
Бенчмарки C#, C++, Java, Delphi
|
|||
|---|---|---|---|
|
#18+
OracleX AklinРезультат для C++ получен на той же машине, где производился delphi-тест? у меня нет делфей, т.к. я не считаю нормальными продукты борланда после BC 3. на случай делфи я использую VB. на случай серьезных программ - си. (ну и сипп, если кто-то считает, что надо два плюса все время приписывать). если вы пришлете EXE который укажет время (ЧЕСТНО ТОЛЬКО) что вывешу то, что он мне показал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2007, 10:20 |
|
||
|
Бенчмарки C#, C++, Java, Delphi
|
|||
|---|---|---|---|
|
#18+
Думаю, разработчики Delphi сознательно не напрягаются по поводу оптимизации работы с массивами чисел. Как показал тест, даже убирают дорогостоящую оптимизацию из новых версий. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2007, 10:55 |
|
||
|
Бенчмарки C#, C++, Java, Delphi
|
|||
|---|---|---|---|
|
#18+
Из всей дискуссии понял только одно все Delphi после 6-й версии - кака ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2007, 11:07 |
|
||
|
Бенчмарки C#, C++, Java, Delphi
|
|||
|---|---|---|---|
|
#18+
mrDOS Поясните, чем Delphi 6 лучше, чем Delphi 2007 ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2007, 11:33 |
|
||
|
Бенчмарки C#, C++, Java, Delphi
|
|||
|---|---|---|---|
|
#18+
Master AlexМне кажется, что было бы еще интересно прогнать Java тест на одной и той же машине под Win и Linux - чтобы сравнить и скорость платформ.и под вайном проверить :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2007, 11:36 |
|
||
|
Бенчмарки C#, C++, Java, Delphi
|
|||
|---|---|---|---|
|
#18+
Сейчас попробовал свой код на Intel. Celeron D 2,53ГГц, разогнанный до 3,16ГГц (шина 166). Для razmer=12 D6 - Count: 479001600 Time: 11125(ms) В2006 - Count: 479001600 Time: 14593(ms) Получается, что код D2006 оптимизирован на Intel? Если в коде переменную kl заменить на min в последнем цикле, то получим еще небольшой выигрыш во времени выполнения. И я не возьмусь утверждать, что Delphi после 6 версии стал хуже. Просто код очень специфичный. Постоянный доступ к одному массиву через три переменные - достаточно редко, ИМХО. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2007, 12:02 |
|
||
|
Бенчмарки C#, C++, Java, Delphi
|
|||
|---|---|---|---|
|
#18+
OracleX Yuric74Ваш тест у меня для Delphi5 тоже быстрее на 30%, чем для Delphi7. Причина - генерируется код, который лучше использует регистры :( Да, я тоже посмотрел в окне CPU на генерируемый компилятором код. Сравнивал D6 и D2006. Ну что тут можно сказать... выходит, ребята из Borland/CodeGear просто забили на оптимизацию аж в 2002-м году:( Понятно, почему дела у них идут неважно - вместо того, чтобы сосредоточиться на чем-то одном и основательно развивать флагманский продукт, начинаются метания и эксперименты: Delphi for PHP, Delphi for Piton и т.д. Видимо, не за горами появление Delphi for 1C Оно-то конечно понятно, бабла бы срубить по-быстрому, но как можно сознательно ухудшать изделие - вообще в голове не укладывается. Зато сколько было криков при выходе Delphi 7: компилятор переписали и т.д. Действительно, переписали... Писатели, блин:( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2007, 17:42 |
|
||
|
Бенчмарки C#, C++, Java, Delphi
|
|||
|---|---|---|---|
|
#18+
vitalekДействительно, переписали... Писатели, блин:( Расслабился, ей богу. Тебе сильно ведомы причины, почему они сделали именно так? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2007, 17:48 |
|
||
|
Бенчмарки C#, C++, Java, Delphi
|
|||
|---|---|---|---|
|
#18+
grexhide vitalekДействительно, переписали... Писатели, блин:( Расслабился, ей богу. Тебе сильно ведомы причины, почему они сделали именно так? Не понял... Кто расслабился? И каковы же, интересно, причины по которым они сделали так? Трудно было оставить как есть? Надо было шаловливыми ручонками там поковырять? Причина по ходу одна: в 8-й версии они вообще собрались Win32 похоронить и забросить развитие соответствующего компилятора. Вспомните, как они .NET пропихивали и удивлялись на семинарах, чего это народ по-прежнему на Win32 сидит. Потом же, когда опомнились, времени что-то сильно улучшать уже не было - речь зашла чуть ли не о продаже всего подразделения, тут лишь бы на плаву удержаться. Видимо основная причина в этом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2007, 18:00 |
|
||
|
Бенчмарки C#, C++, Java, Delphi
|
|||
|---|---|---|---|
|
#18+
Кстати, попробовал запустить последний тест под Lazarus - так он вообще тихо завис(зациклился по ходу) Может я что делаю не так? Попробуйте, кто дружит с Лазарем/FPC - а то у меня эта самоделка только сплошное разочарование вызывает. Или просто руки кривые и бубен для священных танцев мне не подвластен ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2007, 18:24 |
|
||
|
Бенчмарки C#, C++, Java, Delphi
|
|||
|---|---|---|---|
|
#18+
vitalek grexhide vitalekДействительно, переписали... Писатели, блин:( Расслабился, ей богу. Тебе сильно ведомы причины, почему они сделали именно так? Не понял... Кто расслабился? И каковы же, интересно, причины по которым они сделали так? Трудно было оставить как есть? Надо было шаловливыми ручонками там поковырять? Причина по ходу одна: в 8-й версии они вообще собрались Win32 похоронить и забросить развитие соответствующего компилятора. Вспомните, как они .NET пропихивали и удивлялись на семинарах, чего это народ по-прежнему на Win32 сидит. Потом же, когда опомнились, времени что-то сильно улучшать уже не было - речь зашла чуть ли не о продаже всего подразделения, тут лишь бы на плаву удержаться. Видимо основная причина в этом. ИМХО. Delphi был сделан для быстрой разработки приложений, с этой задачей они справились. А вот если бы все пользователи Delphi на постсоветском пространстве купили лицензионную весию, то у борланда хватило бы средств на оптимизацию компилятора. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2007, 18:55 |
|
||
|
Бенчмарки C#, C++, Java, Delphi
|
|||
|---|---|---|---|
|
#18+
Lexogen vitalek grexhide vitalekДействительно, переписали... Писатели, блин:( Расслабился, ей богу. Тебе сильно ведомы причины, почему они сделали именно так? Не понял... Кто расслабился? И каковы же, интересно, причины по которым они сделали так? Трудно было оставить как есть? Надо было шаловливыми ручонками там поковырять? Причина по ходу одна: в 8-й версии они вообще собрались Win32 похоронить и забросить развитие соответствующего компилятора. Вспомните, как они .NET пропихивали и удивлялись на семинарах, чего это народ по-прежнему на Win32 сидит. Потом же, когда опомнились, времени что-то сильно улучшать уже не было - речь зашла чуть ли не о продаже всего подразделения, тут лишь бы на плаву удержаться. Видимо основная причина в этом. ИМХО. Delphi был сделан для быстрой разработки приложений, с этой задачей они справились. А вот если бы все пользователи Delphi на постсоветском пространстве купили лицензионную весию, то у борланда хватило бы средств на оптимизацию компилятора. :) А как быть тем, у кого лицензия? И потом, речь идёт не об отсутствии улучшений, а об ухудшении, а это ведь не одно и тоже:( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2007, 19:04 |
|
||
|
Бенчмарки C#, C++, Java, Delphi
|
|||
|---|---|---|---|
|
#18+
vitalekА как быть тем, у кого лицензия? И потом, речь идёт не об отсутствии улучшений, а об ухудшении, а это ведь не одно и тоже:( Поверь, в среде разработки Delphi - масса других, более актуальных проблем (для пользователей систем в том числе), чем отдельно взятая оптимизация. Если сильно интересно - зайди на qc.borland.com и посмотри на количество нерешённых вопросов. Уверен, на 100%, что "финт с оптимизацией" сняли именно в очередной борьбе с каким то другим багом. Хорошо это или плохо - вопрос уже десятый (вспоминая количество багов и неоднозначностей в других продуктах, весьма небезызвестных компаний). -- А по поводу лицензирования - да, все верно. Более чем уверен, 90% инсталляций Delphi и поныне - нелегальные, а из оставщихся 10% - 80% - куплены один раз в незапамятные времена, с тех пор с "чистой" совестью обновляемые за "спасибо" (даже учитывая резко упавшую цену на те же последние редакции Turbo). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2007, 22:13 |
|
||
|
Бенчмарки C#, C++, Java, Delphi
|
|||
|---|---|---|---|
|
#18+
vitalekКстати, попробовал запустить последний тест под Lazarus - так он вообще тихо завис(зациклился по ходу) Может я что делаю не так? Попробуйте, кто дружит с Лазарем/FPC - а то у меня эта самоделка только сплошное разочарование вызывает. Или просто руки кривые и бубен для священных танцев мне не подвластен Скомпилил lzma на FreePascal, кое как запустил, но результаты почти в 2 раза медленнее, чем в Delphi7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2007, 22:40 |
|
||
|
Бенчмарки C#, C++, Java, Delphi
|
|||
|---|---|---|---|
|
#18+
vitalekКстати, попробовал запустить последний тест под Lazarus - так он вообще тихо завис(зациклился по ходу) Может я что делаю не так? Попробуйте, кто дружит с Лазарем/FPC - а то у меня эта самоделка только сплошное разочарование вызывает. Или просто руки кривые и бубен для священных танцев мне не подвластен Попробовал, нашел причину зацикливания. В программе использован побочный эффект цикла for - переменная цикла после выхода из него имеет значение на 1 больше или меньше конечного значения (соответственно цикл to и downto). В Lazarus такое не прокатывает. Измени первый цикл Код: plaintext 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2007, 22:41 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=34430643&tid=1342778]: |
0ms |
get settings: |
9ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
178ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
94ms |
get tp. blocked users: |
1ms |
| others: | 210ms |
| total: | 528ms |

| 0 / 0 |
