0 / 0 / 0
Регистрация: 27.04.2011
Сообщений: 16
|
|
1 | |
Время выполнения алгоритма на С++ и Делфи27.06.2011, 22:52. Показов 2393. Ответов 5
Метки нет Все метки)
(
Доброе время суток, уважаемые программисты. Вашему вниманию представляется реализация шифра Плейфера на C++ и Делфи. Интересен тот факт, что данный алгоритм работает в Делфи по крайней мере в 2 раза быстрее чем на С++, при том, что многие программеры считают С++ быстрее. Почему такое контраст вышел именно в этом примере? Подскажите также, пожалуйста, литературу по этому вопросу, может кто-то уже сталкивался с подобным... Спасибо за внимание!!!
0
|
|
27.06.2011, 22:52 | |
Ответы с готовыми решениями:
5
Время работы алгоритма на С++ и Делфи Время выполнения алгоритма Время выполнения алгоритма Рассчитать время выполнения алгоритма |
![]() 3068 / 1406 / 425
Регистрация: 19.01.2009
Сообщений: 3,840
|
|
27.06.2011, 22:55 | 2 |
Fr3dd0, не уж-то ужатые сорцы почти 5 МБ? я бы глянул если бы не такой объем. могли бы приаттачить ТОЛЬКО исходники?
1
|
0 / 0 / 0
Регистрация: 27.04.2011
Сообщений: 16
|
|
27.06.2011, 23:31 [ТС] | 3 |
Приточил)
0
|
0 / 0 / 0
Регистрация: 27.04.2011
Сообщений: 16
|
|
28.06.2011, 03:21 [ТС] | 4 |
наконец нашел причину, которая тормозила С++ ний вариант программы. В основном алгоритме зашифровки в условии цикла было (while k<text1.GetWindowTextLengthA()), где переменная text1 принадлежит классу CEdit. Тогда я попробовал другой вариант:
(while k<MyText.GetLength()), где переменная MyText принадлежит классу CString. После этого программа стала работать примерно в 10 быстрей, чем программа на Делфи. Отсюда можно сделать вывод, что методы класса CString на много эффективней методов класса CEdit? Кто-то может поделиться какими-то соображениями по єтому поводу?
0
|
В астрале
![]() 8048 / 4805 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
28.06.2011, 09:43 | 5 |
Fr3dd0, А еще лучше присвоить некой переменной значение MyText.GetLength() и не гонять понапрасну функции. Как я понимаю это значение в цикле не изменяется все же.
1
|
![]() 3068 / 1406 / 425
Регистрация: 19.01.2009
Сообщений: 3,840
|
|
28.06.2011, 11:48 | 6 |
Строго говоря, это обертка WinAPI функции, каждый вызов которой это достаточно большие накладные расходы: The GetWindowTextLength function retrieves the length, in characters, of the specified window's title bar text (if the window has a title bar). If the specified window is a control, the function retrieves the length of the text within the control.
CEdit - это контрол управления CString - это своего рода элементарный тип строк в MFC Добавлено через 2 минуты Это доказывает лишь то, что Вы лучше знаете Delphi чем С++, нежели тормознутось алгоритма под плюсами. Добавлено через 2 минуты Кстати, почитайте, что такое инкапсуляция, для чего она нужна и как ее готовить в С++ ![]()
0
|
28.06.2011, 11:48 | |
Помогаю со студенческими работами здесь
6
Как узнать время выполнения алгоритма Как узнать время выполнения алгоритма Алгоритм Евклида, показать время выполнения алгоритма В консолевом делфи посчитать время выполнения программы Время выполнения рекурсивного и итерационного алгоритма быстрой сортировки Как правильно задать параметр "время выполнения алгоритма"? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |