- enhancement: Change the way to calculate execution time.
This commit is contained in:
parent
dd5df6912c
commit
5d3a933932
1
NEWS.md
1
NEWS.md
|
@ -8,6 +8,7 @@ Red Panda C++ Version 2.11
|
||||||
- fix: Respect encoding "Project default" when search/find occurrencies/open project units.
|
- fix: Respect encoding "Project default" when search/find occurrencies/open project units.
|
||||||
- enhancement: Show progress dialog when search/find occurrencies in large projects.
|
- enhancement: Show progress dialog when search/find occurrencies in large projects.
|
||||||
- enhancement: Improve auto indent.
|
- enhancement: Improve auto indent.
|
||||||
|
- enhancement: Change the way to calculate execution time.
|
||||||
|
|
||||||
Red Panda C++ Version 2.10
|
Red Panda C++ Version 2.10
|
||||||
|
|
||||||
|
|
|
@ -153,6 +153,16 @@ void OJProblemCasesRunner::runCase(int index,POJProblemCase problemCase)
|
||||||
sizeof(counter))){
|
sizeof(counter))){
|
||||||
problemCase->runningMemory = counter.PeakWorkingSetSize;
|
problemCase->runningMemory = counter.PeakWorkingSetSize;
|
||||||
}
|
}
|
||||||
|
FILETIME creationTime;
|
||||||
|
FILETIME exitTime;
|
||||||
|
FILETIME kernelTime;
|
||||||
|
FILETIME userTime;
|
||||||
|
if (GetProcessTimes(hProcess,&creationTime,&exitTime,&kernelTime,&userTime)) {
|
||||||
|
LONGLONG t=((LONGLONG)kernelTime.dwHighDateTime<<32)
|
||||||
|
+((LONGLONG)userTime.dwHighDateTime<<32)
|
||||||
|
+(kernelTime.dwLowDateTime)+(userTime.dwLowDateTime);
|
||||||
|
problemCase->runningTime=(double)t/10000;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
if (execTimeouted) {
|
if (execTimeouted) {
|
||||||
|
|
|
@ -61,7 +61,6 @@ Editor::Editor(QWidget *parent):
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
Editor::Editor(QWidget *parent, const QString& filename,
|
Editor::Editor(QWidget *parent, const QString& filename,
|
||||||
const QByteArray& encoding,
|
const QByteArray& encoding,
|
||||||
Project* pProject, bool isNew,
|
Project* pProject, bool isNew,
|
||||||
|
|
|
@ -1634,8 +1634,8 @@ int QSynEdit::calcIndentSpaces(int line, const QString& lineText, bool addIndent
|
||||||
firstToken = mSyntaxer->getToken();
|
firstToken = mSyntaxer->getToken();
|
||||||
attr = mSyntaxer->getTokenAttribute();
|
attr = mSyntaxer->getTokenAttribute();
|
||||||
}
|
}
|
||||||
qDebug()<<line<<lineText;
|
// qDebug()<<line<<lineText;
|
||||||
qDebug()<<(int)rangeAfterFirstToken.lastUnindent.type<<rangeAfterFirstToken.lastUnindent.line;
|
// qDebug()<<(int)rangeAfterFirstToken.lastUnindent.type<<rangeAfterFirstToken.lastUnindent.line;
|
||||||
if (trimmedLineText.startsWith('#')
|
if (trimmedLineText.startsWith('#')
|
||||||
&& attr == ((CppSyntaxer *)mSyntaxer.get())->preprocessorAttribute()) {
|
&& attr == ((CppSyntaxer *)mSyntaxer.get())->preprocessorAttribute()) {
|
||||||
indentSpaces=0;
|
indentSpaces=0;
|
||||||
|
|
|
@ -21,6 +21,7 @@ using std::string;
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <windows.h>
|
#include <windows.h>
|
||||||
#include <psapi.h>
|
#include <psapi.h>
|
||||||
|
#include <processthreadsapi.h>
|
||||||
#include <conio.h>
|
#include <conio.h>
|
||||||
|
|
||||||
#ifndef WINBOOL
|
#ifndef WINBOOL
|
||||||
|
@ -115,7 +116,7 @@ string GetCommand(int argc,char** argv,bool &reInp,bool &pauseAfterExit) {
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
DWORD ExecuteCommand(string& command,bool reInp, LONGLONG &peakMemory) {
|
DWORD ExecuteCommand(string& command,bool reInp, LONGLONG &peakMemory, LONGLONG &execTime) {
|
||||||
STARTUPINFOA si;
|
STARTUPINFOA si;
|
||||||
PROCESS_INFORMATION pi;
|
PROCESS_INFORMATION pi;
|
||||||
|
|
||||||
|
@ -147,6 +148,16 @@ DWORD ExecuteCommand(string& command,bool reInp, LONGLONG &peakMemory) {
|
||||||
sizeof(counter))){
|
sizeof(counter))){
|
||||||
peakMemory = counter.PeakWorkingSetSize/1024;
|
peakMemory = counter.PeakWorkingSetSize/1024;
|
||||||
}
|
}
|
||||||
|
FILETIME creationTime;
|
||||||
|
FILETIME exitTime;
|
||||||
|
FILETIME kernelTime;
|
||||||
|
FILETIME userTime;
|
||||||
|
execTime=0;
|
||||||
|
if (GetProcessTimes(pi.hProcess,&creationTime,&exitTime,&kernelTime,&userTime)) {
|
||||||
|
execTime=((LONGLONG)kernelTime.dwHighDateTime<<32)
|
||||||
|
+((LONGLONG)userTime.dwHighDateTime<<32)
|
||||||
|
+(kernelTime.dwLowDateTime)+(userTime.dwLowDateTime);
|
||||||
|
}
|
||||||
DWORD result = 0;
|
DWORD result = 0;
|
||||||
GetExitCodeProcess(pi.hProcess, &result);
|
GetExitCodeProcess(pi.hProcess, &result);
|
||||||
return result;
|
return result;
|
||||||
|
@ -233,12 +244,14 @@ int main(int argc, char** argv) {
|
||||||
LONGLONG starttime = GetClockTick();
|
LONGLONG starttime = GetClockTick();
|
||||||
|
|
||||||
LONGLONG peakMemory=0;
|
LONGLONG peakMemory=0;
|
||||||
|
LONGLONG execTime=0;
|
||||||
// Then execute said command
|
// Then execute said command
|
||||||
DWORD returnvalue = ExecuteCommand(command,reInp,peakMemory);
|
DWORD returnvalue = ExecuteCommand(command,reInp,peakMemory,execTime);
|
||||||
|
|
||||||
// Get ending timestamp
|
// Get ending timestamp
|
||||||
LONGLONG endtime = GetClockTick();
|
LONGLONG endtime = GetClockTick();
|
||||||
double seconds = (endtime - starttime) / (double)GetClockFrequency();
|
double seconds = (endtime - starttime) / (double)GetClockFrequency();
|
||||||
|
double execSeconds = (double)execTime/10000;
|
||||||
|
|
||||||
if (pBuf) {
|
if (pBuf) {
|
||||||
strcpy(pBuf,"FINISHED");
|
strcpy(pBuf,"FINISHED");
|
||||||
|
@ -250,7 +263,7 @@ int main(int argc, char** argv) {
|
||||||
|
|
||||||
// Done? Print return value of executed program
|
// Done? Print return value of executed program
|
||||||
printf("\n--------------------------------");
|
printf("\n--------------------------------");
|
||||||
printf("\nProcess exited after %.4g seconds with return value %lu, %d KB mem used.\n",seconds,returnvalue,peakMemory);
|
printf("\nProcess exited after %.4g seconds with return value %lu (%.4g ms cpu time, %d KB mem used).\n",seconds,returnvalue, execSeconds, peakMemory);
|
||||||
if (pauseAfterExit)
|
if (pauseAfterExit)
|
||||||
PauseExit(returnvalue,reInp);
|
PauseExit(returnvalue,reInp);
|
||||||
return 0;
|
return 0;
|
||||||
|
|
Loading…
Reference in New Issue