Обеспечивает упрощенную производительность, точность и отслеживание мощности.
Для исходных библиотек, которые поддерживают общую память и автоматически управляют считывателями памяти и энергии, см. Heartbeats.
Также см. Heartbeats-Simple-Classic, которая завершает эту библиотеку и EnergyMon, чтобы обеспечить интерфейс, похожий на оригинальный дизайн HeartBeats.
Этот проект использует Cmake.
Чтобы построить, беги:
mkdir _build
cd _build
cmake ..
makeДля установки запустите с надлежащими привилегиями:
make install На Linux установка обычно помещает библиотеки в /usr/local/lib и заголовочные файлы в /usr/local/include .
Установка должна быть запущена перед удалением, чтобы иметь манифест.
Чтобы удалить, запустите с надлежащими привилегиями:
make uninstall Если ваш проект использует Cmake, вы можете найти упаковку HeartbeatsSimple и связать с целевой библиотекой heartbeats-simple в этом пространстве имен, например:
find_package (HeartbeatsSimple REQUIRED)
target_link_libraries (foo PRIVATE HeartbeatsSimple::heartbeats-simple) В противном случае получите информацию о флаге и линкере с pkg-config , например:
pkg-config --cflags heartbeats-simple
pkg-config --libs heartbeats-simple Ниже приведен простой пример сердца, игнорируя проверки ошибок и дополнительные операторы #include , которые являются специфичными для платформы.
#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 );
} Найдите это и связанные источники проекта в организации Libheartbeats на Github.
Этот проект происходит по адресу: https://github.com/libheartbeats/heartbeats-simple
Отчеты об ошибках и запросы на привлечение исправлений ошибок и усовершенствования приветствуются.