From e343b3ca44c49d08e55c21d540e377b229476e16 Mon Sep 17 00:00:00 2001 From: Martchus Date: Sun, 24 Apr 2022 18:25:22 +0200 Subject: [PATCH] Split `ResourceUsage` into `MemoryUsage` and setup specific stats --- librepomgr/resourceusage.cpp | 15 ++++++++++++++- librepomgr/resourceusage.h | 11 +++++++++-- librepomgr/serversetup.cpp | 7 +------ librepomgr/serversetup.h | 2 +- 4 files changed, 25 insertions(+), 10 deletions(-) diff --git a/librepomgr/resourceusage.cpp b/librepomgr/resourceusage.cpp index 7cb5eb0..a610a8e 100644 --- a/librepomgr/resourceusage.cpp +++ b/librepomgr/resourceusage.cpp @@ -1,4 +1,5 @@ #include "./resourceusage.h" +#include "./serversetup.h" #if defined(PLATFORM_WINDOWS) #include @@ -9,9 +10,11 @@ #include #endif +#include + namespace LibRepoMgr { -ResourceUsage::ResourceUsage() +MemoryUsage::MemoryUsage() { #if defined(PLATFORM_WINDOWS) auto info = PROCESS_MEMORY_COUNTERS(); @@ -35,6 +38,16 @@ ResourceUsage::ResourceUsage() #endif } +ResourceUsage::ResourceUsage(ServiceSetup &setup) +{ + auto ec = std::error_code(); + packageDbSize = std::filesystem::file_size(setup.dbPath, ec); + actionsDbSize = std::filesystem::file_size(setup.building.dbPath, ec); + cachedPackages = setup.config.cachedPackages(); + actionsCount = setup.building.buildActionCount(); + runningActionsCount = setup.building.runningBuildActionCount(); +} + } // namespace LibRepoMgr #include "reflection/resourceusage.h" diff --git a/librepomgr/resourceusage.h b/librepomgr/resourceusage.h index 080fadd..9b0819f 100644 --- a/librepomgr/resourceusage.h +++ b/librepomgr/resourceusage.h @@ -7,13 +7,20 @@ namespace LibRepoMgr { -struct LIBREPOMGR_EXPORT ResourceUsage : public ReflectiveRapidJSON::JsonSerializable { - explicit ResourceUsage(); +struct ServiceSetup; + +struct LIBREPOMGR_EXPORT MemoryUsage : public ReflectiveRapidJSON::JsonSerializable { + explicit MemoryUsage(); std::size_t virtualMemory = 0; std::size_t residentSetSize = 0; std::size_t sharedResidentSetSize = 0; std::size_t peakResidentSetSize = 0; +}; + +struct LIBREPOMGR_EXPORT ResourceUsage : public MemoryUsage, public ReflectiveRapidJSON::JsonSerializable { + explicit ResourceUsage(ServiceSetup &setup); + std::size_t packageDbSize = 0; std::size_t actionsDbSize = 0; std::size_t cachedPackages = 0; diff --git a/librepomgr/serversetup.cpp b/librepomgr/serversetup.cpp index 5586fee..a45a94e 100644 --- a/librepomgr/serversetup.cpp +++ b/librepomgr/serversetup.cpp @@ -874,13 +874,8 @@ ServiceStatus::ServiceStatus(ServiceSetup &setup) , config(setup.config.computeStatus()) , actions(setup.building.metaInfo) , presets(setup.building.presets) + , resourceUsage(setup) { - auto ec = std::error_code(); - resourceUsage.packageDbSize = std::filesystem::file_size(setup.dbPath, ec); - resourceUsage.actionsDbSize = std::filesystem::file_size(setup.building.dbPath, ec); - resourceUsage.cachedPackages = setup.config.cachedPackages(); - resourceUsage.actionsCount = setup.building.buildActionCount(); - resourceUsage.runningActionsCount = setup.building.runningBuildActionCount(); } } // namespace LibRepoMgr diff --git a/librepomgr/serversetup.h b/librepomgr/serversetup.h index 5759a6b..0972ff2 100644 --- a/librepomgr/serversetup.h +++ b/librepomgr/serversetup.h @@ -221,7 +221,7 @@ struct LIBREPOMGR_EXPORT ServiceStatus : public ReflectiveRapidJSON::JsonSeriali const LibPkg::Status config; const BuildActionMetaInfo &actions; const BuildPresets &presets; - ResourceUsage resourceUsage; + const ResourceUsage resourceUsage; }; inline ServiceStatus ServiceSetup::computeStatus()