Поиск:

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


Новичок



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

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



Доброе время суток, уважаемые программисты. Вашему вниманию представляется реализация шифра Плейфера на C++ и Делфи. Интересен тот факт, что данный алгоритм работает в Делфи по крайней мере в 2 раза быстрее чем на С++, при том, что многие программеры считают С++ быстрее. Почему такое контраст вышел именно в этом примере? Подскажите также, пожалуйста, литературу по этому вопросу, может кто-то уже сталкивался с подобным... Спасибо за внимание!!! 

Это сообщение отредактировал(а) Fr3dd0 - 27.6.2011, 22:39

Присоединённый файл ( Кол-во скачиваний: 23 )
Присоединённый файл  C__.zip 46,47 Kb
PM MAIL   Вверх
Fr3dd0
Дата 27.6.2011, 22:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



------------

Присоединённый файл ( Кол-во скачиваний: 13 )
Присоединённый файл  delphi.zip 380,01 Kb
PM MAIL   Вверх
volatile
Дата 28.6.2011, 02:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Вообще говорить о скорости языка, не имеет смысла. Можно говорить только  скорости реализации, данного языка, на каком-то конкретном компиляторе.
А уж делать выводы о скорости языка, на каком-то левом примере, неизвестно кем и когда написанным, мягко говоря не корректно.

Цитата(Fr3dd0 @  27.6.2011,  22:38 Найти цитируемый пост)
работает в Делфи по крайней мере в 2 раза быстрее чем на С++, при том, что многие программеры считают С++ быстрее

Это все равно что придти на форум музыкантов, и задать вопрос.
Вот я на пианино умею играть чижик-пыжик, и всё.
А на дудке могу целых 5 мелодий.
Из этого делаю вывод, что дудка в 5 раз универсальнее пианино.
И, типа, убедите меня что это не так.


Разбираться в ваших двух проектах, нужно время, если у кого оно есть ...
Если бы вы хотя-бы назвали компилятор, привели ключи оптимизации, показали время измеренное корректным способом, вкратце описали бы алгоритм, и его реализацию.
А так заниматься глупостями, мягко говоря не очень хочется.

PM MAIL   Вверх
Fr3dd0
Дата 28.6.2011, 02:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



наконец нашел причину, которая тормозила С++ ний вариант программы. В основном алгоритме зашифровки в условии цикла было (while k<text1.GetWindowTextLengthA()), где переменная text1 принадлежит классу CEdit. Тогда я попробовал другой вариант:
(while k<MyText.GetLength()), где переменная MyText принадлежит классу CString.
После этого программа стала работать примерно в 10 быстрей, чем программа на Делфи.

Отсюда можно сделать вывод, что методы класса CString на много эффективней методов класса CEdit? Кто-то может поделиться какими-то соображениями по єтому поводу? 
PM MAIL   Вверх
volatile
Дата 28.6.2011, 02:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Цитата(Fr3dd0 @  28.6.2011,  02:22 Найти цитируемый пост)
можно сделать вывод, что методы класса CString на много эффективней методов класса CEdit

методы CEdit - это работа с дочерним окном посредством сообщений. Это, кстати, вообще к языку отношения не имеет. Сообщения помещаются в очередь виндой, и сколько там пройдет времени, пока оно отработает, неизвестно.
методы CString - это работа со строками, практически напрямую. Сравнивать их не имеет смысла. Естественно что CString будет работать в разы быстрее.



Цитата(Fr3dd0 @  28.6.2011,  02:22 Найти цитируемый пост)
После этого программа стала работать примерно в 10 быстрей, чем программа на Делфи

из этого могу сказать только что и в Делфи у вас тоже все криво. smile 
PM MAIL   Вверх
Сыроежка
Дата 28.6.2011, 20:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(Fr3dd0 @  28.6.2011,  02:22 Найти цитируемый пост)
наконец нашел причину, которая тормозила С++ ний вариант программы. В основном алгоритме зашифровки в условии цикла было (while k<text1.GetWindowTextLengthA()), где переменная text1 принадлежит классу CEdit. Тогда я попробовал другой вариант:
(while k<MyText.GetLength()), где переменная MyText принадлежит классу CString.
После этого программа стала работать примерно в 10 быстрей, чем программа на Делфи.

Отсюда можно сделать вывод, что методы класса CString на много эффективней методов класса CEdit? Кто-то может поделиться какими-то соображениями по єтому поводу?  


Я что-то совершенно не понял, то ли вы говорите о реализации именно алгоритма, то ли вы говорите про программированию интерфейса Windows! К языку С++ это никакого отношения не имеет.
Если вы действительно реализовали алгоритм, то причем здесь вообще Windows?! Как я понимаю, алгоритм не должен быть связан с операционгой платформой.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема »


 




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


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

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