31 #include "TTimeControl.h"
50 inline unsigned long long RDTSC(
void) {
51 unsigned int a = 0, d = 0;
53 "xorl %%eax, %%eax \n cpuid"
54 :::
"%rax",
"%rbx",
"%rcx",
"%rdx");
55 asm volatile(
"rdtsc" :
"=a"(a),
"=d"(d));
56 return (
unsigned long long) d << 32 | a;
63 TTimeControl::TTimeControl() {
74 TTimeControl::~TTimeControl() {
80 void TTimeControl::Ini() {
90 void TTimeControl::Fin() {
95 TiempoTotal += (double)(Final - Inicio) / Procesador;
102 void TTimeControl::PromediaCiclo() {
103 TiempoCiclo0 = TiempoCiclo1;
104 TiempoCiclo1 = TiempoTotal;
105 printf(
"Tiempo total: %g seg.\n", TiempoTotal);
106 printf(
"Tiempo ultimo ciclo: %g seg.\n\n", TiempoCiclo1 - TiempoCiclo0);
107 printf(
"Pasos: %d\n", Pasos);
108 printf(
"Tiempo por Steps: %g\n", TiempoTotal / (
double) Pasos);
110 #pragma package(smart_init)