![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
K0r0l |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 32 Регистрация: 29.10.2004 Где: Deeptown Репутация: нет Всего: нет |
то есть как можно ускорить работу этого цикла? поясню если кто не понял: 1) читаем из словаря строку 2) цикл пока не прочли все из словаря и внутри цикла действие № 3 - создание md5 хеша от прочитанной строки |
|||
|
||||
bel_nikita |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Эксперт Сообщений: 2304 Регистрация: 12.10.2003 Где: Поезд №21/22 ( ст . Прага ) Репутация: 21 Всего: 47 |
K0r0l
с первого взгляда, нужно ли в цикле все время вычислять strlen(pair.pass_c) ? |
|||
|
||||
K0r0l |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 32 Регистрация: 29.10.2004 Где: Deeptown Репутация: нет Всего: нет |
да, посколько мы его только что прочитали.. а длина паролей в словаре разная
|
|||
|
||||
bel_nikita |
|
||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Эксперт Сообщений: 2304 Регистрация: 12.10.2003 Где: Поезд №21/22 ( ст . Прага ) Репутация: 21 Всего: 47 |
K0r0l
еще не совсем въехал, но читаешь в
так и вычисли
вроде pair.pass_c в цикле №2 не меняется. или меняется? Это сообщение отредактировал(а) bel_nikita - 12.11.2004, 22:20 |
||||||
|
|||||||
K0r0l |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 32 Регистрация: 29.10.2004 Где: Deeptown Репутация: нет Всего: нет |
ты прав не меняется... но вот парадокс...
добавил такую строчку после dictfile >> pair.pass_c; pass_len = strlen(pair.pass_c); ну и внутри цикла подставляю эту переменную... так прога вместо того чтобы выполняться быстее выполняется медленнее! смотри лог: 1) новая версия real 0m4.665s user 0m4.610s sys 0m0.030s 2) старая версия real 0m4.302s user 0m4.300s sys 0m0.000s это средние значения после трех тестовых запусков.. ничего не понимаю )) Это сообщение отредактировал(а) K0r0l - 14.11.2004, 01:51 |
|||
|
||||
bel_nikita |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Эксперт Сообщений: 2304 Регистрация: 12.10.2003 Где: Поезд №21/22 ( ст . Прага ) Репутация: 21 Всего: 47 |
K0r0l
и ничего нигде больше не менял, кроме вычисления длины перед циклом? |
|||
|
||||
K0r0l |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 32 Регистрация: 29.10.2004 Где: Deeptown Репутация: нет Всего: нет |
неа.... а может проверку совпадения хеша паролю как нить по-другому организовать... сорри что достаю, но может есть еще какие-нить идеи... |
|||
|
||||
Mad |
|
|||
Опытный ![]() ![]() Профиль Группа: Эксперт Сообщений: 656 Регистрация: 18.10.2004 Где: Одесса Репутация: 7 Всего: 19 |
K0r0l
Насколько я знаю, замедления работы зачастую вставляют прямо в MD5 функции (защита от подбора, чем дольше проверяется пароль тем меньше вероятность потбора, точнее надо больше времени на проверку всех вариантов).
ненамного, но быстрей ![]() |
|||
|
||||
K0r0l |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 32 Регистрация: 29.10.2004 Где: Deeptown Репутация: нет Всего: нет |
хм... компилятор одинаковый код выдал для двух этих конструкций ))
|
|||
|
||||
sergejzr |
|
|||
![]() Un salsero ![]() Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 19 Всего: 360 |
Не пользуйтесь стримами, а читайте из файла блоками функцией read.
Правда парсить блоки в цифры и строки самому придётся, но будет намного быстрее ![]() |
|||
|
||||
K0r0l |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 32 Регистрация: 29.10.2004 Где: Deeptown Репутация: нет Всего: нет |
уже пробовал там все равно код получается громоздким.. нужно еще \0 отрезать от получаемой строки.. и пр геморой...
но все равно спасибо |
|||
|
||||
po-her |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 25.10.2004 Репутация: нет Всего: нет |
Подскажите как это считается время выполнения цикла, программы, функции...?
![]() |
|||
|
||||
sergejzr |
|
|||
![]() Un salsero ![]() Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 19 Всего: 360 |
В Юниксах это
![]() Запускаете свою программу, например"my.out", так: time my.out На экран выходит информация ![]() Но это только общее время выполнения. |
|||
|
||||
po-her |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 25.10.2004 Репутация: нет Всего: нет |
А если я под windows программирую.. Тогда как?
|
|||
|
||||
chipset |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4071 Регистрация: 11.1.2003 Где: Seattle, US Репутация: 27 Всего: 165 |
GetProcessTimes работает только в NT
--------------------
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |