2037f9e6b4e6a2a9445a162809e88aa96703312c markd Tue Apr 13 00:24:40 2021 -0700 log dynamic gfServer clock, user, and system times to help understand performance diff --git src/gfServer/gfServer.c src/gfServer/gfServer.c index 5e20e0c..af7e0f9 100644 --- src/gfServer/gfServer.c +++ src/gfServer/gfServer.c @@ -1444,38 +1444,46 @@ } else errAbort("invalid command '%s'", args[0]); logInfo("dynserver: %s completed in %4.3f seconds", args[0], 0.001 * (clock1000() - startTime)); freeMem(args[0]); return TRUE; } static void dynamicServer(char* rootDir) /* dynamic server for inetd. Read query from stdin, open index, query, respond, exit. * only one query at a time */ { pushWarnHandler(dynWarnHandler); logDebug("dynamicServer connect"); +struct runTimes startTimes = getTimesInSeconds(); // make sure errors are logged pushWarnHandler(dynWarnErrorVa); struct dynSession dynSession; ZeroVar(&dynSession); while (dynamicServerCommand(rootDir, &dynSession)) continue; + +struct runTimes endTimes = getTimesInSeconds(); +logInfo("dynserver: exit: clock: %0.4f user: %0.4f system: %0.4f (seconds)", + endTimes.clockSecs - startTimes.clockSecs, + endTimes.userSecs - startTimes.userSecs, + endTimes.sysSecs - startTimes.sysSecs); + logDebug("dynamicServer disconnect"); } int main(int argc, char *argv[]) /* Process command line. */ { char *command; gfCatchPipes(); dnaUtilOpen(); optionInit(&argc, argv, optionSpecs); command = argv[1]; if (optionExists("trans")) { doTrans = TRUE;