Fornece desempenho simplificado, precisão e rastreamento de energia.
Para as bibliotecas originais que suportam a memória compartilhada e gerenciam a memória e os leitores de energia automaticamente, consulte os batimentos cardíacos.
Veja também os batimentos cardíacos-clássico, que envolve esta biblioteca e o EnergyMon para fornecer uma interface semelhante ao design original dos batimentos cardíacos.
Este projeto usa cmake.
Para construir, correr:
mkdir _build
cd _build
cmake ..
makePara instalar, execute com privilégios adequados:
make install No Linux, a instalação normalmente coloca bibliotecas em /usr/local/lib e arquivos de cabeçalho em /usr/local/include .
A instalação deve ser executada antes da desinstalação para ter um manifesto.
Para desinstalar, corra com privilégios adequados:
make uninstall Se o seu projeto usar o CMake, você poderá encontrar o pacote HeartbeatsSimple e vincular-se ao alvo da biblioteca de heartbeats-simple nesse espaço de nome, por exemplo:
find_package (HeartbeatsSimple REQUIRED)
target_link_libraries (foo PRIVATE HeartbeatsSimple::heartbeats-simple) Caso contrário, obtenha informações de bandeira e vinculador com pkg-config , por exemplo:
pkg-config --cflags heartbeats-simple
pkg-config --libs heartbeats-simple A seguir, é apresentado um exemplo simples de batimentos cardíacos, ignorando verificações de erro e declarações #include adicionais, que são específicas da 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 );
} Encontre isso e fontes de projeto relacionadas na Organização LibHeartBeats no Github.
Este projeto se origina em: https://github.com/libheartbeats/heartbeats-simple
Relatórios de bug e solicitações de puxar para correções e aprimoramentos de bugs são bem -vindos.