X-Git-Url: https://git.cinelerra-gg.org/git/?p=goodguy%2Fcinelerra.git;a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Fmain.C;h=6833425d0b7d1d30aafc08c945f3e25fbb3475d1;hp=472578718657664d7b230ca445cd08622e8c7931;hb=b290324e67a45e465f2d0ad5d0ee662b64343339;hpb=7fd85fb66168f6b518c5f2d73e04036e87faa0e1 diff --git a/cinelerra-5.1/cinelerra/main.C b/cinelerra-5.1/cinelerra/main.C index 47257871..6833425d 100644 --- a/cinelerra-5.1/cinelerra/main.C +++ b/cinelerra-5.1/cinelerra/main.C @@ -42,9 +42,28 @@ #include #include #include +#include +#include #ifdef LEAKER -#define STRC(v) printf("==new %p from %p sz %jd\n", v, __builtin_return_address(0), n) +#if 0 // track allocators +#include +#define BT_BUF_SIZE 100 +static void leaker() +{ + void *buffer[BT_BUF_SIZE]; + int nptrs = backtrace(buffer, BT_BUF_SIZE); + char **trace = backtrace_symbols(buffer, nptrs); + if( !trace ) return; + for( int i=0; istart_rendering(config_path, batch_path); break; } @@ -386,6 +405,14 @@ DISABLE_BUFFER time_t et; time(&et); long dt = et - st; printf("Session time: %ld:%02ld:%02ld\n", dt/3600, dt%3600/60, dt%60); + struct rusage ru; + getrusage(RUSAGE_SELF, &ru); + long usr_ms = ru.ru_utime.tv_sec*1000 + ru.ru_utime.tv_usec/1000; + long us = usr_ms/1000; int ums = usr_ms%1000; + long sys_ms = ru.ru_stime.tv_sec*1000 + ru.ru_stime.tv_usec/1000; + long ss = sys_ms/1000; int sms = sys_ms%1000; + printf("Cpu time: user: %ld:%02ld:%02ld.%03d sys: %ld:%02ld:%02ld.%03d\n", + us/3600, us%3600/60, us%60, ums, ss/3600, ss%3600/60, ss%60, sms); return 0; }