Proporciona rendimiento simplificado, precisión y seguimiento de energía.
Para las bibliotecas originales que admiten la memoria compartida y administran automáticamente los lectores de memoria y energía, consulte Heartbeats.
Vea también Heartbeats-simple-classic, que envuelve esta biblioteca y EnergyMon para proporcionar una interfaz similar al diseño original de los latidos del corazón.
Este proyecto usa Cmake.
Para construir, ejecutar:
mkdir _build
cd _build
cmake ..
makePara instalar, ejecute con los privilegios adecuados:
make install En Linux, la instalación generalmente coloca bibliotecas en /usr/local/lib y archivos de encabezado en /usr/local/include .
La instalación debe ejecutarse antes de desinstalar para tener un manifiesto.
Para desinstalar, ejecute con privilegios adecuados:
make uninstall Si su proyecto usa CMake, puede encontrar el paquete HeartbeatsSimple y enlaces con el objetivo de la biblioteca heartbeats-simple en ese espacio de nombres, por ejemplo, por ejemplo:
find_package (HeartbeatsSimple REQUIRED)
target_link_libraries (foo PRIVATE HeartbeatsSimple::heartbeats-simple) De lo contrario, obtenga información de bandera y enlazador con pkg-config , por ejemplo:
pkg-config --cflags heartbeats-simple
pkg-config --libs heartbeats-simple El siguiente es un ejemplo simple de latidos, ignorando las verificaciones de errores y las declaraciones adicionales #include , que son específicas de la plataforma.
#include <heartbeats-simple.h>
void do_application_loop ( uint64_t iterations , uint64_t window_len ) {
heartbeat_context hb ;
heartbeat_record * window_buf = malloc ( window_len * sizeof ( heartbeat_record ));
int fd = open ( "heartbeat.log" , O_CREAT | O_WRONLY | O_TRUNC , S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH );
heartbeat_init ( & hb , window_len , window_buf , fd , NULL );
hb_ctx_log_header ( & hb );
for ( uint64_t i = 0 ; i < iterations ; i ++ ) {
uint64_t start_time = get_time_in_ns ();
do_work ();
uint64_t end_time = get_time_in_ns ();
heartbeat ( & hb , i , 1 , start_time , end_time );
}
hb_ctx_log_window_buffer ( & hb ); // flush remaining window data to log file
close ( fd );
free ( window_buf );
} Encuentre esto y fuentes de proyectos relacionadas en la Organización Libheartbeats en Github.
Este proyecto se origina en: https://github.com/libheartbeats/heartbeats-simple
Los informes de errores y las solicitudes de extracción de correcciones de errores y mejoras son bienvenidas.