|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
05.01.2011, 12:15 | #1 |
Форумчанин
Регистрация: 13.01.2008
Сообщений: 140
|
Эффективность C++ и Delphi
Доброго времени суток!
Купил книгу "Язык С++" Б.Страуструп. Так вот, там есть пример тривиального калькулятора с парсером, работающим по принципу рекурсивного спуска. В общем, я реализовал этот пример в консольном приложении на C++, а потом решил переложить эту фичу на делфи и сравнить производительность функций CalcIt. Создал цикл из 6000 вызовов функции CalcIt и засек время GetTickCount'ом. Результат: На делфях: 6000 итераций выполняется за ~40 мс (Delphi 2007) На C++: если использовать string: ~90мс; stringstream: 110мс в релиз конфигурации (VS 2008). Почему такая разница? Ведь код на с++ должен работать быстрее! В прикрепленном файле код на C++ и на делфи... На делфи писался грубо и быстро, поэтому не судите строго) |
05.01.2011, 12:37 | #2 | |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
Цитата:
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
|
05.01.2011, 13:04 | #3 |
Участник клуба
Регистрация: 21.03.2010
Сообщений: 1,508
|
Тестил Delphi и Builder - одинаково, правда давно и свой пример был, где-то около 1 000 000 итераций.
Про VS сказать ничего не могу. Builder поэтому не стал изучать |
05.01.2011, 13:19 | #4 | |
Форумчанин
Регистрация: 13.01.2008
Сообщений: 140
|
Цитата:
Дело в том, что я пишу программу для восстановления данных и в некоторых случаях нужны очень быстрые алгоритмы, но слышал, что делфи в этом не очень эффективен... Впрочем, теперь не знаю, буду тестировать... |
|
05.01.2011, 13:23 | #5 | |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
Цитата:
да и МС за него(ну я всмысле про студию) многое зависит от рук, а так же от задач я не говорю что С++ плох, сам больше на нем пишу, просто не нужно этих "должен". Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. Последний раз редактировалось Пепел Феникса; 05.01.2011 в 13:31. |
|
05.01.2011, 13:36 | #6 |
Software Engineer
Участник клуба
Регистрация: 07.04.2007
Сообщений: 1,618
|
C++ никому ничего не должен. Это во-первых.
А во-вторых, вы уверены что в студии проверяли release версию, а не отладочную?
Мужество есть лишь у тех, кто ощутил сердцем страх, кто смотрит в пропасть, но смотрит с гордостью в глазах. (с) Ария
|
05.01.2011, 15:21 | #7 |
Форумчанин
Регистрация: 13.01.2008
Сообщений: 140
|
Уверен. Я ее "перепостроил" в релиз-конфигурации и запускал как отдельное приложение...
Все... решено... дело в студии или винде... В релиз конфигурации, при Run-time library = Multi-threaded (/MT) 47 мс. Кстати, когда в настройках проекта Configuration Properties -> C/C++ -> Run-time library стоит Multi-threaded Debug DLL (/MDd) (по умолчанию) программы не запускаются ("Не было запущено, поскольку оно некорректно настроено"), хотя раньше все было нормально.... И все-таки, на делфях быстрее работает)... Последний раз редактировалось Hottabych; 05.01.2011 в 15:25. |
05.01.2011, 15:23 | #8 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
ДЛЛ от студии потеряли?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
05.01.2011, 15:53 | #9 |
Форумчанин
Регистрация: 13.01.2008
Сообщений: 140
|
А фиг его знает, наверное... Когда всякие Run-time Libraries ставил
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
На Delphi 7 сделать игру кто хочет стать миллионером в delphi 7 | 666dart666 | Помощь студентам | 11 | 04.11.2010 17:57 |
Rad Studio 2011 XE: новое в Delphi, C++ Builder, RadPHP и Delphi Prism | savva-paladin | Софт | 18 | 02.10.2010 20:24 |
Как можно улучшить эффективность и качество ПП? | Evgenii | Помощь студентам | 5 | 29.01.2009 16:22 |
Delphi. Как нарисовать в Delphi два движущиеся шара с определенной скоростью? | redred | Общие вопросы Delphi | 10 | 11.12.2007 10:43 |
Как открыть БД, написанную в Delphi если нf другой машине Delphi нет? | dagarik | БД в Delphi | 7 | 22.10.2007 17:54 |