mirror of
https://github.com/glest/glest-source.git
synced 2025-09-30 01:18:58 +02:00
- re-enabled fog of war cache to improve performance
- improve xml file loading speed
This commit is contained in:
@@ -383,6 +383,12 @@ void Program::loopWorker() {
|
||||
}
|
||||
}
|
||||
|
||||
bool showPerfStats = Config::getInstance().getBool("ShowPerfStats","false");
|
||||
Chrono chronoPerf;
|
||||
char perfBuf[8096]="";
|
||||
std::vector<string> perfList;
|
||||
if(showPerfStats) chronoPerf.start();
|
||||
|
||||
Chrono chronoLoop;
|
||||
if(SystemFlags::getSystemSettingType(SystemFlags::debugPerformance).enabled) chronoLoop.start();
|
||||
|
||||
@@ -407,9 +413,19 @@ void Program::loopWorker() {
|
||||
}
|
||||
ProgramState *prevState = this->programState;
|
||||
|
||||
if(showPerfStats) {
|
||||
sprintf(perfBuf,"In [%s::%s] Line: %d took msecs: " MG_I64_SPECIFIER "\n",extractFileFromDirectoryPath(__FILE__).c_str(),__FUNCTION__,__LINE__,chronoPerf.getMillis());
|
||||
perfList.push_back(perfBuf);
|
||||
}
|
||||
|
||||
assert(programState != NULL);
|
||||
programState->render();
|
||||
|
||||
if(showPerfStats) {
|
||||
sprintf(perfBuf,"In [%s::%s] Line: %d took msecs: " MG_I64_SPECIFIER "\n",extractFileFromDirectoryPath(__FILE__).c_str(),__FUNCTION__,__LINE__,chronoPerf.getMillis());
|
||||
perfList.push_back(perfBuf);
|
||||
}
|
||||
|
||||
if(SystemFlags::getSystemSettingType(SystemFlags::debugPerformance).enabled && chrono.getMillis() > 0) SystemFlags::OutputDebug(SystemFlags::debugPerformance,"In [%s::%s] Line: %d programState->render took msecs: %lld ==============> MAIN LOOP RENDERING\n",extractFileFromDirectoryPath(__FILE__).c_str(),__FUNCTION__,__LINE__,chrono.getMillis());
|
||||
if(SystemFlags::getSystemSettingType(SystemFlags::debugPerformance).enabled && chrono.getMillis() > 0) chrono.start();
|
||||
|
||||
@@ -419,6 +435,11 @@ void Program::loopWorker() {
|
||||
programState->updateCamera();
|
||||
}
|
||||
|
||||
if(showPerfStats) {
|
||||
sprintf(perfBuf,"In [%s::%s] Line: %d took msecs: " MG_I64_SPECIFIER "\n",extractFileFromDirectoryPath(__FILE__).c_str(),__FUNCTION__,__LINE__,chronoPerf.getMillis());
|
||||
perfList.push_back(perfBuf);
|
||||
}
|
||||
|
||||
if(SystemFlags::getSystemSettingType(SystemFlags::debugPerformance).enabled && chrono.getMillis() > 0) SystemFlags::OutputDebug(SystemFlags::debugPerformance,"In [%s::%s] Line: %d programState->render took msecs: %lld ==============> MAIN LOOP CAMERA UPDATING\n",extractFileFromDirectoryPath(__FILE__).c_str(),__FUNCTION__,__LINE__,chrono.getMillis());
|
||||
if(SystemFlags::getSystemSettingType(SystemFlags::debugPerformance).enabled && chrono.getMillis() > 0) chrono.start();
|
||||
|
||||
@@ -428,12 +449,21 @@ void Program::loopWorker() {
|
||||
while(prevState == this->programState && updateTimer.isTime()) {
|
||||
Chrono chronoUpdateLoop;
|
||||
if(SystemFlags::getSystemSettingType(SystemFlags::debugPerformance).enabled) chronoUpdateLoop.start();
|
||||
if(showPerfStats) {
|
||||
sprintf(perfBuf,"In [%s::%s] Line: %d took msecs: " MG_I64_SPECIFIER " updateCount: %d\n",extractFileFromDirectoryPath(__FILE__).c_str(),__FUNCTION__,__LINE__,chronoPerf.getMillis(),updateCount);
|
||||
perfList.push_back(perfBuf);
|
||||
}
|
||||
|
||||
GraphicComponent::update();
|
||||
programState->update();
|
||||
if(SystemFlags::getSystemSettingType(SystemFlags::debugPerformance).enabled && chronoUpdateLoop.getMillis() > 0) SystemFlags::OutputDebug(SystemFlags::debugPerformance,"In [%s::%s Line: %d] programState->update took msecs: %lld, updateCount = %d\n",extractFileFromDirectoryPath(__FILE__).c_str(),__FUNCTION__,__LINE__,chronoUpdateLoop.getMillis(),updateCount);
|
||||
if(SystemFlags::getSystemSettingType(SystemFlags::debugPerformance).enabled && chronoUpdateLoop.getMillis() > 0) chronoUpdateLoop.start();
|
||||
|
||||
if(showPerfStats) {
|
||||
sprintf(perfBuf,"In [%s::%s] Line: %d took msecs: " MG_I64_SPECIFIER " updateCount: %d\n",extractFileFromDirectoryPath(__FILE__).c_str(),__FUNCTION__,__LINE__,chronoPerf.getMillis(),updateCount);
|
||||
perfList.push_back(perfBuf);
|
||||
}
|
||||
|
||||
if(prevState == this->programState) {
|
||||
if(soundThreadManager == NULL || soundThreadManager->isThreadExecutionLagging()) {
|
||||
if(soundThreadManager != NULL) {
|
||||
@@ -445,9 +475,20 @@ void Program::loopWorker() {
|
||||
if(SystemFlags::getSystemSettingType(SystemFlags::debugPerformance).enabled && chronoUpdateLoop.getMillis() > 0) chronoUpdateLoop.start();
|
||||
}
|
||||
|
||||
if(showPerfStats) {
|
||||
sprintf(perfBuf,"In [%s::%s] Line: %d took msecs: " MG_I64_SPECIFIER " updateCount: %d\n",extractFileFromDirectoryPath(__FILE__).c_str(),__FUNCTION__,__LINE__,chronoPerf.getMillis(),updateCount);
|
||||
perfList.push_back(perfBuf);
|
||||
}
|
||||
|
||||
NetworkManager::getInstance().update();
|
||||
if(SystemFlags::getSystemSettingType(SystemFlags::debugPerformance).enabled && chronoUpdateLoop.getMillis() > 0) SystemFlags::OutputDebug(SystemFlags::debugPerformance,"In [%s::%s Line: %d] NetworkManager::getInstance().update() took msecs: %lld, updateCount = %d\n",extractFileFromDirectoryPath(__FILE__).c_str(),__FUNCTION__,__LINE__,chronoUpdateLoop.getMillis(),updateCount);
|
||||
if(SystemFlags::getSystemSettingType(SystemFlags::debugPerformance).enabled && chronoUpdateLoop.getMillis() > 0) chronoUpdateLoop.start();
|
||||
|
||||
if(showPerfStats) {
|
||||
sprintf(perfBuf,"In [%s::%s] Line: %d took msecs: " MG_I64_SPECIFIER " updateCount: %d\n",extractFileFromDirectoryPath(__FILE__).c_str(),__FUNCTION__,__LINE__,chronoPerf.getMillis(),updateCount);
|
||||
perfList.push_back(perfBuf);
|
||||
}
|
||||
|
||||
}
|
||||
updateCount++;
|
||||
}
|
||||
@@ -456,6 +497,11 @@ void Program::loopWorker() {
|
||||
|
||||
if(SystemFlags::getSystemSettingType(SystemFlags::debugPerformance).enabled && chrono.getMillis() > 0) chrono.start();
|
||||
|
||||
if(showPerfStats) {
|
||||
sprintf(perfBuf,"In [%s::%s] Line: %d took msecs: " MG_I64_SPECIFIER "\n",extractFileFromDirectoryPath(__FILE__).c_str(),__FUNCTION__,__LINE__,chronoPerf.getMillis());
|
||||
perfList.push_back(perfBuf);
|
||||
}
|
||||
|
||||
if(prevState == this->programState) {
|
||||
//fps timer
|
||||
chrono.start();
|
||||
@@ -463,6 +509,11 @@ void Program::loopWorker() {
|
||||
programState->tick();
|
||||
}
|
||||
|
||||
if(showPerfStats) {
|
||||
sprintf(perfBuf,"In [%s::%s] Line: %d took msecs: " MG_I64_SPECIFIER "\n",extractFileFromDirectoryPath(__FILE__).c_str(),__FUNCTION__,__LINE__,chronoPerf.getMillis());
|
||||
perfList.push_back(perfBuf);
|
||||
}
|
||||
|
||||
if(SystemFlags::getSystemSettingType(SystemFlags::debugPerformance).enabled && chrono.getMillis() > 0) SystemFlags::OutputDebug(SystemFlags::debugPerformance,"In [%s::%s] Line: %d programState->render took msecs: %lld ==============> MAIN LOOP TICKING\n",extractFileFromDirectoryPath(__FILE__).c_str(),__FUNCTION__,__LINE__,chrono.getMillis());
|
||||
if(SystemFlags::getSystemSettingType(SystemFlags::debugPerformance).enabled && chrono.getMillis() > 0) chrono.start();
|
||||
|
||||
@@ -471,6 +522,12 @@ void Program::loopWorker() {
|
||||
|
||||
}
|
||||
|
||||
if(showPerfStats && chronoPerf.getMillis() >= 100) {
|
||||
for(unsigned int x = 0; x < perfList.size(); ++x) {
|
||||
printf("%s",perfList[x].c_str());
|
||||
}
|
||||
}
|
||||
|
||||
if(SystemFlags::getSystemSettingType(SystemFlags::debugPerformance).enabled) SystemFlags::OutputDebug(SystemFlags::debugPerformance,"In [%s::%s Line: %d] ------------------------------- MAIN LOOP END, stats: loop took msecs: %lld -------------------------------\n",extractFileFromDirectoryPath(__FILE__).c_str(),__FUNCTION__,__LINE__,chronoLoop.getMillis());
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user