Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Время работы алгоритма на С++ и Делфи 
:(
    Опции темы
Fr3dd0
Дата 31.5.2011, 23:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 29.4.2011

Репутация: нет
Всего: нет



Меня всегда мучил вопрос, какой компилятор, Visual C++ или Delphi, лучше. Для сравнения реализовал алгоритм Плейфера на Visual C++ MFC и Delphi (кто не знает, алгоритм плейфера - это алгоритм шифрования текста). Результат у меня вышел таков:
Алгоритм, реализованный на Delphі, работает на много быстрее, что очень удивило меня.
Текст длиной в 16000 символов в Делфи зашифровывается примерно за 1.38с, а в С++ за та же работа выполняется за 3 секунды.

Может кто нибудь подскажет почему такая существенная разница? 
PM MAIL   Вверх
Keeper89
Дата 1.6.2011, 01:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2580
Регистрация: 26.2.2009

Репутация: 20
Всего: 58



Fr3dd0, 
2 куска кода в студию и более точные версии компиляторов + систему оценки.


--------------------
PM MAIL WWW   Вверх
Sartorius
Дата 1.6.2011, 01:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1568
Регистрация: 18.7.2006
Где: Ivory tower

Репутация: нет
Всего: 37



Вариант С++ релизный с оптимизацией по скорости?
PM MAIL ICQ   Вверх
Fr3dd0
Дата 1.6.2011, 11:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 29.4.2011

Репутация: нет
Всего: нет



Предоставляю вашему вниманию два варианта программы: на C++ і Delphi.


Sartorius, я в этом вопросе не компетентен. Единственное знаю - используется Microsoft Visual C++ 2008 и Borland® Delphi® for Microsoft® Windows™ Version 10.0.2288.42451 


Присоединённый файл ( Кол-во скачиваний: 9 )
Присоединённый файл  tt.zip 429,67 Kb
PM MAIL   Вверх
Alexeis
Дата 1.6.2011, 13:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 109
Всего: 459



Fr3dd0 Скажу вам так, истинный мастер кунг-фу знающий как компилятор транслирует компилятор те или иные конструкции в машинный код напишет так что скорость будет почти одинаковой. Но, все таки компилятор Visual C++ немножко умнее. На самом деле разница будет не более 20%. Так что, не парьтесь на счет языка и пишите на том, что лучше знаете.

Добавлено через 5 минут и 34 секунды
P.S. глянул на код. На самом деле вы просто неэффективно работаете со строками (не оптимально по скорости). В делфи работа со строками максимально оптимизирована + намного быстрее работает менеджер кучи. Победа по скорость только за счет этого. Если вы уберете из алгоритма операции работы с кучей или хотя бы минимизируете их, то оба алгоритма ускоряться раз в 10 и приблизятся по скорости.


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
Fr3dd0
Дата 1.6.2011, 13:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 29.4.2011

Репутация: нет
Всего: нет



Цитата(Alexeis @ 1.6.2011,  13:05)
Fr3dd0 Скажу вам так, истинный мастер кунг-фу знающий как компилятор транслирует компилятор те или иные конструкции в машинный код напишет так что скорость будет почти одинаковой. Но, все таки компилятор Visual C++ немножко умнее. На самом деле разница будет не более 20%. Так что, не парьтесь на счет языка и пишите на том, что лучше знаете.

Добавлено @ 13:10
P.S. глянул на код. На самом деле вы просто неэффективно работаете со строками (не оптимально по скорости). В делфи работа со строками максимально оптимизирована + намного быстрее работает менеджер кучи. Победа по скорость только за счет этого. Если вы уберете из алгоритма операции работы с кучей или хотя бы минимизируете их, то оба алгоритма ускоряться раз в 10 и приблизятся по скорости.

Если можно, с этого места поподробней -  как работать со строками эффективней, как убрать с алгоритма операции работы с кучей и т.д.?
PM MAIL   Вверх
Alexeis
Дата 1.6.2011, 13:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 109
Всего: 459



  Операции конкатенации строк, удаления символов, вызывают перераспределение памяти. В С++ даже при присваивания строк производят операции выделения памяти и копирования. В делфи копирование строк без изменения содержимого не приводит к обращению к куче. 
  Проще всего будет работать со строками в стиле С (с точки зрения написания быстрого кода). Можно быстро работать и с std::string, используя итераторы.


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
Fr3dd0
Дата 1.6.2011, 14:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 29.4.2011

Репутация: нет
Всего: нет



Ах да, забыл сообщить важный факт.... В отличии от "делфинской", "С++"-я программа не может  справится с текстом длиной в 1 000 000 символов... Программа как бы считает, процессор загружен, но  это длится очень долго и приходиться снимать процесс, не дожидаясь желанного результата.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0527 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.