Trace uses impresice timer in POSIX ----------------------------------- Key: CORE-3970 URL: http://tracker.firebirdsql.org/browse/CORE-3970 Project: Firebird Core Issue Type: Bug Components: Engine Affects Versions: 2.5.1, 2.5.0, 3.0 Initial Environment: POSIX OS Reporter: Dmitriy Starodubov Priority: Minor
There is query_performance_counter/query_performance_frequency functions, used by trace: #if defined(WIN_NT) ... #elif defined(HAVE_CLOCK_GETTIME) // Use high-resolution clock struct timespec tp; if (clock_gettime(CLOCK_REALTIME, &tp) != 0) return 0; return static_cast<SINT64>(tp.tv_sec) * BILLION + tp.tv_nsec; #else // This is not safe because of possible wrapping and very imprecise return clock(); #endif But HAVE_CLOCK_GETTIME marco is not defined in POSIX (at least in CentOS 6.2, Mandriva 2010.2, OpenSuSE 11.1). So trace use imprecise timer although high-resolution clock is available in librt.so. I suppose to add in configure.in something like this: AC_CHECK_LIB(rt, clock_gettime, XE_APPEND(-lrt, LIBS); AC_DEFINE(HAVE_CLOCK_GETTIME, 1, [Define this if clock_gettime works on the platform])) -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://tracker.firebirdsql.org/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira ------------------------------------------------------------------------------ Everyone hates slow websites. So do we. Make your web apps faster with AppDynamics Download AppDynamics Lite for free today: http://p.sf.net/sfu/appdyn_sfd2d_oct Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel