Exemple #1
0
/* when dump, print one line with the cost each uri process used, and reset to zero */
void measureDump(bool getFrom, bool getFromIp)
{
	bEnableMeasure = true;
	bEnableFrom = getFrom;
	bEnableFromIp = getFromIp;
   TSmartLock<CLock> loGuard(measureMutex);

	uriTimeCount_t::iterator iter;
	for(iter = uriTimeCount.begin(); iter != uriTimeCount.end(); iter++){
		measureData_t &md = iter->second;
		uint64_t costTime = md.costTime;
		if(costTime > 0){
			uint32_t uri_h = iter->first >> 8;
			uint32_t uri_t = iter->first & 0x000000ff;
			LOG_TRACE("measure: %4u|%3u = %8" PRIu64 ", %7u, %7" PRIu64 ", %7" PRIu64 "", uri_h, uri_t,
				get_usec_interval(0, costTime),
				md.callTimes, 
				get_usec_interval(0, costTime/md.callTimes), 
				get_usec_interval(0, md.maxTime));
		}

		md.callTimes = 0;
		md.costTime = 0;
        md.maxTime = 0;
	}
Exemple #2
0
double get_cpu_frequency(void) {
    struct timeval start;
    struct timeval end;
    uint64_t tsc_start;
    uint64_t tsc_end;
    long usec;

    if (gettimeofday(&start, 0)) {
        err(1, "gettimeofday");
    }

    tsc_start = cycle_timer();
    usleep(10000);

    if (gettimeofday(&end, 0)) {
        err(1, "gettimeofday");
    }
    tsc_end = cycle_timer();
    usec = get_usec_interval(&start, &end);
    return (tsc_end - tsc_start) * 1.0 / usec;
}
Exemple #3
0
uint64_t scoped_measure::count_us()
{	
	return get_usec_interval(0, count_cycles());
}