Измерить время выполнения фнукции из DLL
Пользователи, просматривающие топик: none
|
Зашли как: Guest
|
Имя |
Сообщение |
<< Старые топики Новые топики >> |
|
|
Измерить время выполнения фнукции из DLL - 2008-12-28 13:36:17.010000
|
|
|
Kozerog_2
Сообщений: 1
Оценки: 0
Присоединился: 2008-12-27 22:06:34.626666
|
Есть DLL. Исходников нет. В Far Нахожу в DLL нужную функцию. Нужно измерить время выполнения этой функции. Подскажите варианты решения(основное ограничение не замедлять измерениями измеряемое время более 10%): - модифицировать (вставить вывод в лог) DLL, как ? - поставить перехватчик на вызовы этой функции как? - профилировать выполнение программы как , - другие P.S. Не ругайтесть сильно, я в этом деле новичок. Спасибо.
|
|
|
RE: Измерить время выполнения фнукции из DLL - 2008-12-28 13:55:23.700000
|
|
|
fromRIDDER
Сообщений: 1075
Оценки: 30
Присоединился: 2008-01-14 20:20:53.380000
|
Всё очень просто: пишешь свою программу, в импорт прописываешь нужную тебе библиотеку и функцию, считываешь время, выполняешь функцию, считываешь время. Разница - есть нужный тебе результат.
|
|
|
RE: Измерить время выполнения фнукции из DLL - 2008-12-28 14:03:09.790000
|
|
|
fromRIDDER
Сообщений: 1075
Оценки: 30
Присоединился: 2008-01-14 20:20:53.380000
|
Простенький пример на fasm-е. Если функция будет выполняться >1 сек., то время имзерения составит <1%. format PE GUI 4.0 entry start include 'win32a.inc' section '.text' code readable executable start: invoke GetTickCount mov ebx,eax invoke yourFUNC invoke GetTickCount sub eax,ebx ;eax - время выполнения функции ;здесь написать вывод результата в лог invoke ExitProcess,NULL section '.idata' import data readable writable library kernel32,'kernel32.dll',\ yourDLL ,'yourDLL.dll' include 'apia\kernel32.inc' import yourDLL,\ yourFUNC,'yourFUNC'
|
|
|
|
|