Get statistics about pool usage.
392 {
393 std::shared_lock lock(
m_mutex);
394
395 std::unordered_map<std::string, std::any> stats;
397
398 size_t total_accesses = 0;
399 std::string most_accessed;
400 size_t max_accesses = 0;
401
402 for (
const auto& [name, info] :
m_info) {
403 total_accesses += info.access_count;
404 if (info.access_count > max_accesses) {
405 max_accesses = info.access_count;
406 most_accessed = name;
407 }
408 }
409
410 stats["total_accesses"] = total_accesses;
411 if (!most_accessed.empty()) {
412 stats["most_accessed_operation"] = most_accessed;
413 stats["most_accessed_count"] = max_accesses;
414 }
415
416 return stats;
417 }
std::shared_mutex m_mutex
std::unordered_map< std::string, PooledOperationInfo > m_info
std::unordered_map< std::string, OperationPtr > m_operations