void Progress(unsigned uStep, unsigned uTotalSteps) { CheckMaxTime(); if (g_bQuiet) return; double dPct = ((uStep + 1)*100.0)/uTotalSteps; double MB = GetMemUseMB(); fprintf(g_fProgress, "%8.8s %12s Iter %3u %6.2f%% %s", ElapsedTimeAsStr(), MemToStr(MB), g_uIter, dPct, g_strDesc); if (g_bWipeDesc) { int n = g_nPrevDescLength - (int) strlen(g_strDesc); Wipe(n); g_bWipeDesc = false; } fprintf(g_fProgress, "\r"); g_uTotalSteps = uTotalSteps; }
void MemMinus(size_t Bytes, char *Where) { g_MemTotal -= Bytes; Log("-%10u %6u %6u %s\n", (unsigned) Bytes, (unsigned) GetMemUseMB(), (unsigned) (g_MemTotal/1000000), Where); }
void OnOutOfMemory() { free(EmergencyReserve); fprintf(stderr, "\n*** OUT OF MEMORY ***\n"); fprintf(stderr, "Memory allocated so far %g MB\n", GetMemUseMB()); extern MSA *ptrBestMSA; if (ptrBestMSA == 0) fprintf(stderr, "No alignment generated\n"); else SaveCurrentAlignment(); exit(EXIT_FatalError); }
void Progress(const char *szFormat, ...) { CheckMaxTime(); if (g_bQuiet) return; double MB = GetMemUseMB(); char szStr[4096]; va_list ArgList; va_start(ArgList, szFormat); vsprintf(szStr, szFormat, ArgList); fprintf(g_fProgress, "%8.8s %12s %s", ElapsedTimeAsStr(), MemToStr(MB), szStr); fprintf(g_fProgress, "\n"); fflush(g_fProgress); }
void ProgressStepsDone() { CheckMaxTime(); if (g_bVerbose) { double MB = GetMemUseMB(); Log("Elapsed time %8.8s Peak memory use %12s Iteration %3u %s\n", ElapsedTimeAsStr(), MemToStr(MB), g_uIter, g_strDesc); } if (g_bQuiet) return; Progress(g_uTotalSteps - 1, g_uTotalSteps); fprintf(g_fProgress, "\n"); g_bWipeDesc = true; g_nPrevDescLength = (int) strlen(g_strDesc); }
void CheckMemUse() { // Side-effect: sets peak usage in uPeakMemUseBytes GetMemUseMB(); }