Я написал проект на С ++ с 10 потоками. Один поток загружает данные в память (запись в буфер), а другие 9 потоков одновременно читают буфер и сохраняют данные в базе данных SQLite. Все потоки обрабатываются с помощью мьютекса, чтобы избежать конфликтов.
Теперь мне нужно оценить производительность этого проекта, такую как время достижения успеха в потоках, использование памяти и т. Д. Как я могу это сделать в среде c ++? Я использовал Valgrind , чтобы проверить это. Но я думаю, что это не работает.
Это код, который я запускаю с Valgrind,
valgrind --tool=memcheck --leak-check=yes ./executable
выдает такое сообщение,
callers=20 --track-fds=yes ./monerosci
==24262== Memcheck, a memory error detector
==24262== Copyright (C) 2002-2015, and GNU GPL'd, by Julian Seward et al.
==24262== Using Valgrind-3.11.0 and LibVEX; rerun with -h for copyright info
==24262== Command: ./monerosci
==24262==
valgrind: m_syswrap/syswrap-linux.c:5361
(vgSysWrap_linux_sys_fcntl_before): Assertion 'Unimplemented
functionality' failed.
valgrind: valgrind
host stacktrace:
==24262== at 0x38083F48: ??? (in /usr/lib/valgrind/memcheck-amd64-linux)
==24262== by 0x38084064: ??? (in /usr/lib/valgrind/memcheck-amd64-linux)
==24262== by 0x380841F1: ??? (in /usr/lib/valgrind/memcheck-amd64-linux)
==24262== by 0x380FB399: ??? (in /usr/lib/valgrind/memcheck-amd64-linux)
==24262== by 0x380D6234: ??? (in /usr/lib/valgrind/memcheck-amd64-linux)
==24262== by 0x380D2D2A: ??? (in /usr/lib/valgrind/memcheck-amd64-linux)
==24262== by 0x380D43DE: ??? (in /usr/lib/valgrind/memcheck-amd64-linux)
==24262== by 0x380E3946: ??? (in /usr/lib/valgrind/memcheck-amd64-linux)
Как я могу проверить производительность проекта в C ++?