| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Visual C++/MFC/WTL > Время выполнения алгоритма на С++ и Делфи |
| Автор: Fr3dd0 27.6.2011, 22:38 |
| Доброе время суток, уважаемые программисты. Вашему вниманию представляется реализация шифра Плейфера на C++ и Делфи. Интересен тот факт, что данный алгоритм работает в Делфи по крайней мере в 2 раза быстрее чем на С++, при том, что многие программеры считают С++ быстрее. Почему такое контраст вышел именно в этом примере? Подскажите также, пожалуйста, литературу по этому вопросу, может кто-то уже сталкивался с подобным... Спасибо за внимание!!! |
| Автор: Fr3dd0 27.6.2011, 22:40 |
| ------------ |
| Автор: Fr3dd0 28.6.2011, 02:22 |
| наконец нашел причину, которая тормозила С++ ний вариант программы. В основном алгоритме зашифровки в условии цикла было (while k<text1.GetWindowTextLengthA()), где переменная text1 принадлежит классу CEdit. Тогда я попробовал другой вариант: (while k<MyText.GetLength()), где переменная MyText принадлежит классу CString. После этого программа стала работать примерно в 10 быстрей, чем программа на Делфи. Отсюда можно сделать вывод, что методы класса CString на много эффективней методов класса CEdit? Кто-то может поделиться какими-то соображениями по єтому поводу? |
| Автор: volatile 28.6.2011, 02:43 | ||||
методы CEdit - это работа с дочерним окном посредством сообщений. Это, кстати, вообще к языку отношения не имеет. Сообщения помещаются в очередь виндой, и сколько там пройдет времени, пока оно отработает, неизвестно. методы CString - это работа со строками, практически напрямую. Сравнивать их не имеет смысла. Естественно что CString будет работать в разы быстрее.
из этого могу сказать только что и в Делфи у вас тоже все криво. |
| Автор: Сыроежка 28.6.2011, 20:21 | ||
Я что-то совершенно не понял, то ли вы говорите о реализации именно алгоритма, то ли вы говорите про программированию интерфейса Windows! К языку С++ это никакого отношения не имеет. Если вы действительно реализовали алгоритм, то причем здесь вообще Windows?! Как я понимаю, алгоритм не должен быть связан с операционгой платформой. |