![]() |
|
![]() ![]() ![]() |
|
Fr3dd0 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 29.4.2011 Репутация: нет Всего: нет |
Доброе время суток, уважаемые программисты. Вашему вниманию представляется реализация шифра Плейфера на C++ и Делфи. Интересен тот факт, что данный алгоритм работает в Делфи по крайней мере в 2 раза быстрее чем на С++, при том, что многие программеры считают С++ быстрее. Почему такое контраст вышел именно в этом примере? Подскажите также, пожалуйста, литературу по этому вопросу, может кто-то уже сталкивался с подобным... Спасибо за внимание!!!
Это сообщение отредактировал(а) Fr3dd0 - 27.6.2011, 22:39 Присоединённый файл ( Кол-во скачиваний: 23 ) ![]() |
|||
|
||||
Fr3dd0 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 29.4.2011 Репутация: нет Всего: нет |
||||
|
||||
volatile |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 4 Всего: 85 |
Вообще говорить о скорости языка, не имеет смысла. Можно говорить только скорости реализации, данного языка, на каком-то конкретном компиляторе.
А уж делать выводы о скорости языка, на каком-то левом примере, неизвестно кем и когда написанным, мягко говоря не корректно.
Это все равно что придти на форум музыкантов, и задать вопрос. Вот я на пианино умею играть чижик-пыжик, и всё. А на дудке могу целых 5 мелодий. Из этого делаю вывод, что дудка в 5 раз универсальнее пианино. И, типа, убедите меня что это не так. Разбираться в ваших двух проектах, нужно время, если у кого оно есть ... Если бы вы хотя-бы назвали компилятор, привели ключи оптимизации, показали время измеренное корректным способом, вкратце описали бы алгоритм, и его реализацию. А так заниматься глупостями, мягко говоря не очень хочется. |
|||
|
||||
Fr3dd0 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 29.4.2011 Репутация: нет Всего: нет |
наконец нашел причину, которая тормозила С++ ний вариант программы. В основном алгоритме зашифровки в условии цикла было (while k<text1.GetWindowTextLengthA()), где переменная text1 принадлежит классу CEdit. Тогда я попробовал другой вариант:
(while k<MyText.GetLength()), где переменная MyText принадлежит классу CString. После этого программа стала работать примерно в 10 быстрей, чем программа на Делфи. Отсюда можно сделать вывод, что методы класса CString на много эффективней методов класса CEdit? Кто-то может поделиться какими-то соображениями по єтому поводу? |
|||
|
||||
volatile |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 4 Всего: 85 |
методы CEdit - это работа с дочерним окном посредством сообщений. Это, кстати, вообще к языку отношения не имеет. Сообщения помещаются в очередь виндой, и сколько там пройдет времени, пока оно отработает, неизвестно. методы CString - это работа со строками, практически напрямую. Сравнивать их не имеет смысла. Естественно что CString будет работать в разы быстрее.
из этого могу сказать только что и в Делфи у вас тоже все криво. ![]() |
||||
|
|||||
Сыроежка |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 127 Регистрация: 24.6.2011 Репутация: нет Всего: 1 |
Я что-то совершенно не понял, то ли вы говорите о реализации именно алгоритма, то ли вы говорите про программированию интерфейса Windows! К языку С++ это никакого отношения не имеет. Если вы действительно реализовали алгоритм, то причем здесь вообще Windows?! Как я понимаю, алгоритм не должен быть связан с операционгой платформой. |
|||
|
||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |