All generations.

generate functionWed, 07 Jun 2023

获取x86的当前tick总数

int64_t Counter::rdtsc() { #if defined(__x86_64__) int64_t ret = 0; uint32_t high = 0; uint32_t low = 0; __asm__ volatile("rdtsc":"=a"(low), "=d"(high)); ret = ((int64_t)high << 32) | low; return ret; #elif defined(__i386__) int64_t ret = 0; __asm__ volatile("rdtsc": "=A"(ret)); return ret; #elif defined(__powerpc__) uint64_t tbl, tbu0, tbu1; do { __asm__ volatile("mftbu %0" : "=r"(tbu0)); __asm__ volatile("mftb %0" : "=r"(tbl)); __asm__ volatile("mftbu %0" : "=r"(tbu1)); } while (tbu0 !=

generate functionWed, 07 Jun 2023

获取x86的最大关中断时长

uint32_t max_intr_latency(void) { uint32_t max_int_lat = 0; for (struct cpu *cpu = cpus; cpu < cpus + ncpu; cpu++) { if (cpu->int_latency > max_int_lat) { max_int_lat = cpu->int_latency; } } return max_int_lat; }

generate functionWed, 07 Jun 2023

获取x86机器的tick数

++ #include <time.h> long int get_tick_count() { struct timespec ts; long int tick = 0; clock_gettime(CLOCK_MONOTONIC, &ts); tick = ts.tv_sec * 1000 + ts.tv_nsec / 1000000; return tick; }

Want to kickstart your project?Use the new AI Studio to create your code