Форум: "Основная";
Текущий архив: 2005.02.27;
Скачать: [xml.tar.bz2];
ВнизКак узнать время исполнения программы ? Найти похожие ветки
← →
Фёдор (2005-02-09 11:44) [0]В миллисекундах.
Нужно для сравнения быстродействия двух прог.
← →
ЮЮ © (2005-02-09 11:48) [1]Если разница измеряется в милисекундах, то какая разница ? :)
Заставь их работать на больших объемах данных, чтобы с секундомером можно было засечь время
← →
kaZaNoVa © (2005-02-09 11:49) [2]своей:
Var k,n,h,p:int64;
procedure taimer(a:boolean);
Begin
if a then begin
p:=gettickcount; QueryPerformanceFrequency(h); QueryPerformanceCounter(k);
end else begin
QueryPerformanceCounter(n);
MessageBox(0,"Ready",Pchar(Inttostr(gettickcount-p)+" ms ("+(Inttostr(round(1000000*(n-k)/h)))+") microsec"),0);
end;end;
begin
taimer(true);
//тут работаем .. )))
taimer(false);
← →
kaZaNoVa © (2005-02-09 11:52) [3]чужой:
program Project1;
{$APPTYPE CONSOLE}
{$I-}
uses
Windows;
Var
f:TextFile;
si:STARTUPINFO;
pi:PROCESS_INFORMATION;
cmdline:string;
p:cardinal;
ProcessID : DWORD;
ProcessHandle : THandle;
ThreadHandle : THandle;
begin
UseInputOutput;
ProcessID := GetCurrentProcessID;
ProcessHandle := OpenProcess(PROCESS_SET_INFORMATION, False, ProcessID);
SetPriorityClass(ProcessHandle, REALTIME_PRIORITY_CLASS);
ThreadHandle := GetCurrentThread;
SetThreadPriority(ThreadHandle, THREAD_PRIORITY_TIME_CRITICAL);
CloseHandle(ProcessHandle);
ZeroMemory(@si,sizeof(si));
si.cb:=SizeOf(si);
cmdline:="cmd.bat";
p:=gettickcount;
if not CreateProcess( nil, // No module name (use command line).
PChar(cmdline), // Command line.
nil, // Process handle not inheritable.
nil, // Thread handle not inheritable.
False, // Set handle inheritance to FALSE.
0, // No creation flags.
nil, // Use parent"s environment block.
nil, // Use parent"s starting directory.
si, // Pointer to STARTUPINFO structure.
pi ) // Pointer to PROCESS_INFORMATION structure.
then
begin
Writeln( "CreateProcess failed." );
Readln;
Exit;
end;
WaitForSingleObject( pi.hProcess, INFINITE );
Writeln((gettickcount-p));
CloseHandle( pi.hProcess );
CloseHandle( pi.hThread );
//Writeln("Press Enter Key !");
AssignFile(f,"Result.txt");
Append(f);
if IOResult<>0 then begin
CloseFile(f);
RewRite(f);
end;
Writeln(f,(gettickcount-p));
CloseFile(f);
Sleep(750);
end.
← →
ЮЮ © (2005-02-09 11:53) [4]так у него уже проги. Как тут поработаешь?
← →
kaZaNoVa © (2005-02-09 11:53) [5][2][3] извинуюсь за немного "корявый" код - но писал давно, работает))))
думаю, в основном идея понятна))
← →
Digitman © (2005-02-09 12:13) [6]GetProcessTimes
← →
Фёдор (2005-02-09 16:13) [7]kaZaNoVa
твоим методом у меня в p постоянно 0 ..
← →
Anatoly Podgoretsky © (2005-02-09 22:12) [8]Ты вроде еще не ругался, зачем тебя в ро
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2005.02.27;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.054 c