|
|
|
Бенчмарки C#, C++, Java, Delphi
|
|||
|---|---|---|---|
|
#18+
Константин Заровный Скомпилил lzma на FreePascal, кое как запустил, но результаты почти в 2 раза медленнее, чем в Delphi7. ;) А ты еще попробуй скомпилировать C++ пример на разных версиях C++ (к примеру - GNU C/C++ vs Intel C++). Будешь приятно удивлён тем фактом, как на таком убогом компиляторе миру свободного софта удается делать более производительные и менее ресурсоемкие конечные решения.. ;)))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2007, 22:49 |
|
||
|
Бенчмарки C#, C++, Java, Delphi
|
|||
|---|---|---|---|
|
#18+
grexhide Константин Заровный Скомпилил lzma на FreePascal, кое как запустил, но результаты почти в 2 раза медленнее, чем в Delphi7. ;) А ты еще попробуй скомпилировать C++ пример на разных версиях C++ (к примеру - GNU C/C++ vs Intel C++). Будешь приятно удивлён тем фактом, как на таком убогом компиляторе миру свободного софта удается делать более производительные и менее ресурсоемкие конечные решения.. ;)))) чего-то я вас не понимаю. сначала вы говорите, что каомплиятор убогий, а потом - что он лучше. похоже вы путаете компилятор со средой разработки. (ведь в стандартном виде у GCC нет его как такового) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2007, 09:33 |
|
||
|
Бенчмарки C#, C++, Java, Delphi
|
|||
|---|---|---|---|
|
#18+
Обратился за помощью к коллегам с www.delphikingdom.com , порекомендовали такую штуку: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2007, 14:39 |
|
||
|
Бенчмарки C#, C++, Java, Delphi
|
|||
|---|---|---|---|
|
#18+
vitalekОбратился за помощью к коллегам Интересная замена. А если еще поменять Код: plaintext Код: plaintext то получаем еще выигрыш (по крайней мере на Celeron 3,16ГГц) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2007, 15:15 |
|
||
|
Бенчмарки C#, C++, Java, Delphi
|
|||
|---|---|---|---|
|
#18+
А еще поменял Код: plaintext 1. 2. 3. Код: plaintext 1. 2. 3. 4. 5. 6. 7. при razmer=12 D6 - Time: 11157(ms) D2006 - Time: 11469(ms) Это что же получается? Плохая реализация цикла for? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2007, 15:21 |
|
||
|
Бенчмарки C#, C++, Java, Delphi
|
|||
|---|---|---|---|
|
#18+
Поменял все циклы for на while Результат на D2006 - Time: 9875(ms) Это на Celeron 3,16ГГц ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2007, 15:32 |
|
||
|
Бенчмарки C#, C++, Java, Delphi
|
|||
|---|---|---|---|
|
#18+
Народ, я в шоке!!! От первоначальных 14,8 сек получил 9,8 простой заменой for на while!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2007, 15:35 |
|
||
|
Бенчмарки C#, C++, Java, Delphi
|
|||
|---|---|---|---|
|
#18+
Еще поменяй Код: plaintext 1. 2. 3. 4. Код: plaintext 1. 2. 3. переменную razmer на константу и вынеси тело в процедуру Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2007, 15:36 |
|
||
|
Бенчмарки C#, C++, Java, Delphi
|
|||
|---|---|---|---|
|
#18+
vlgriЕще поменяй Код: plaintext 1. 2. 3. 4. Код: plaintext 1. 2. 3. переменную razmer на константу D2006 - Time: 8657(ms) !!! Ну с переменной и константой понятно. А вот вынос в процедуру затормозил до 9016. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2007, 15:52 |
|
||
|
Бенчмарки C#, C++, Java, Delphi
|
|||
|---|---|---|---|
|
#18+
Yuric74 Это что же получается? Плохая реализация цикла for? Ситуация проясняется - оказывается в D7 Update1 в кодогенератор был внесён баг: http://www.delphikingdom.com/asp/talktopic.asp?ID=195&ref=msg&msg=290#msg291 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2007, 15:54 |
|
||
|
Бенчмарки C#, C++, Java, Delphi
|
|||
|---|---|---|---|
|
#18+
vitalek Yuric74 Это что же получается? Плохая реализация цикла for? Ситуация проясняется - оказывается в D7 Update1 в кодогенератор был внесён баг: http://www.delphikingdom.com/asp/talktopic.asp?ID=195&ref=msg&msg=290#msg291 Sorry, ссылка ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2007, 15:56 |
|
||
|
Бенчмарки C#, C++, Java, Delphi
|
|||
|---|---|---|---|
|
#18+
Итоговый код Код: 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. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. D6 - Time: 8640(ms) D2006 - Time: 8625(ms) Все встало на свои места, паритет!!! Приду домой, проверю на Athlon Х2 3800+ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2007, 16:01 |
|
||
|
Бенчмарки C#, C++, Java, Delphi
|
|||
|---|---|---|---|
|
#18+
Yuric74Результаты для razmer=12 на Celeron 3,16ГГц для вышеприведенного кода D6 - Time: 8640(ms) D2006 - Time: 8625(ms) Все встало на свои места, паритет!!! Приду домой, проверю на Athlon Х2 3800+ Но, согласитесь, - это ведь полумера. Совсем отказаться от использования for - не очень-то красиво. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2007, 16:08 |
|
||
|
Бенчмарки C#, C++, Java, Delphi
|
|||
|---|---|---|---|
|
#18+
vitalekСитуация проясняется - оказывается в D7 Update1 в кодогенератор был внесён баг Почитал, успокоился. Буду учитывать, что при подобном коде лучше использовать while. Кстати, в D6 скорость от замены for на while тоже повысилась. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2007, 16:09 |
|
||
|
Бенчмарки C#, C++, Java, Delphi
|
|||
|---|---|---|---|
|
#18+
vitalekСовсем отказаться от использования for - не очень-то красиво. А куда деваться при критичном ко времены выполнения коде. А совсем отказываться смысла нет. По крайней мере на моей работе точно нет смысла отказываться. У нас нет кода, настолько критичного ко времени. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2007, 16:11 |
|
||
|
Бенчмарки C#, C++, Java, Delphi
|
|||
|---|---|---|---|
|
#18+
Yuric74Итоговый код Попробовал заменить все циклы while на repeat, получилось не только быстрее, но и компактнее за счёт изъятия begin end :) : Код: 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. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. Athlon XP 2000+ 1,66 ГГц Итоговые результаты: ------------------------------Delphi 2006-------------Delphi 6 исх. тест for---------------24578 ms-------------13781 ms замена на while---------15188 ms-------------18328 ms замена на repeat--------13860 ms-------------13766 ms ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2007, 18:17 |
|
||
|
Бенчмарки C#, C++, Java, Delphi
|
|||
|---|---|---|---|
|
#18+
а если еще вместо until min >= razmer+1; понаписать Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2007, 18:47 |
|
||
|
Бенчмарки C#, C++, Java, Delphi
|
|||
|---|---|---|---|
|
#18+
И для сравнения поэкспериментировал с FPC 2.0.2/Lazarus 0.9.14 и настройками оптимизации, которых там побольше, чем в Делфе. Всё тот же Athlon XP 2000+ 1,66 ГГц: Результаты по уровням оптимизации: ----------------------------------Level 1------------------Level 2-------------------Level 3 исх. тест for---------------34235 ms-------------33844 ms--------------34125 ms замена на while---------34266 ms-------------33844 ms---------------34188 ms замена на repeat--------34250 ms-------------33813 ms---------------34156 ms Как видим, сильного разброса нет, но общая скорость до делфийской не тянет. По ходу, это плата за кроссплатформенность. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2007, 19:48 |
|
||
|
Бенчмарки C#, C++, Java, Delphi
|
|||
|---|---|---|---|
|
#18+
Master Alex Yuric74Раз здесь тема про бенчмарки, спрошу: Кто-нибудь может объяснить, почему следующий код, скомпилированный в Delphi 4,5,6 работает ровно в 2 (два) раза быстрее, чем этот же код, скомпилированный в Delphi 7 и 2006. Sysutils напиши вот так - SysUtils и заработает на той же скорости! Улыбнуло:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2007, 19:51 |
|
||
|
Бенчмарки C#, C++, Java, Delphi
|
|||
|---|---|---|---|
|
#18+
Провел тесты на Athlon X2 3800+ (частота номинал 2ГГц) для razmer=12 Цикл for D6 - 11156(ms) D2006 - 21593(ms) Цикл while D6 - 15203(ms) D2006 - 13219(ms) Цикл repeat D6 - 10094(ms) D2006 - 10719(ms) Прикладываю исходники и exe'шники для D6 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2007, 20:56 |
|
||
|
Бенчмарки C#, C++, Java, Delphi
|
|||
|---|---|---|---|
|
#18+
И исходники и exe'шники для D2006 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2007, 20:57 |
|
||
|
Бенчмарки C#, C++, Java, Delphi
|
|||
|---|---|---|---|
|
#18+
И вдогонку тесты на D5 Цикл for - 10906(ms) Цикл while - 14609(ms) Цикл repeat - 10187(ms) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2007, 21:08 |
|
||
|
Бенчмарки C#, C++, Java, Delphi
|
|||
|---|---|---|---|
|
#18+
Доброго времени суток! To vitalek В целях оптимизации можно использовать нумерацию элементов массива с 0 - в этом случае m будет сравниваться не с 1, а с 0, что немного быстрее min >= razmer+1 эквивалентно min > razmer nomvar:= nomvar+1; - Inc(nomvar) У меня после этих замен на D5 время выполнения уменьшилось с 17359 до 14500 С уважением, Евгений ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2007, 08:47 |
|
||
|
Бенчмарки C#, C++, Java, Delphi
|
|||
|---|---|---|---|
|
#18+
Кузнецов ЕвгенийВ целях оптимизации можно использовать нумерацию элементов массива с 0нууу настоящие паскалисты так делать не должны :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2007, 14:52 |
|
||
|
Бенчмарки C#, C++, Java, Delphi
|
|||
|---|---|---|---|
|
#18+
Поигрался в оптимизацию. Просьба сильно не пинать :) Код: 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. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. D6 - 8031(ms) D2006 - 8750(ms) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2007, 23:43 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=34434652&tid=1342778]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
166ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
93ms |
get tp. blocked users: |
2ms |
| others: | 202ms |
| total: | 502ms |

| 0 / 0 |
