Split `ResourceUsage` into `MemoryUsage` and setup specific stats
This commit is contained in:
parent
142f6466ae
commit
e343b3ca44
|
@ -1,4 +1,5 @@
|
|||
#include "./resourceusage.h"
|
||||
#include "./serversetup.h"
|
||||
|
||||
#if defined(PLATFORM_WINDOWS)
|
||||
#include <psapi.h>
|
||||
|
@ -9,9 +10,11 @@
|
|||
#include <unistd.h>
|
||||
#endif
|
||||
|
||||
#include <filesystem>
|
||||
|
||||
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"
|
||||
|
|
|
@ -7,13 +7,20 @@
|
|||
|
||||
namespace LibRepoMgr {
|
||||
|
||||
struct LIBREPOMGR_EXPORT ResourceUsage : public ReflectiveRapidJSON::JsonSerializable<ResourceUsage> {
|
||||
explicit ResourceUsage();
|
||||
struct ServiceSetup;
|
||||
|
||||
struct LIBREPOMGR_EXPORT MemoryUsage : public ReflectiveRapidJSON::JsonSerializable<MemoryUsage> {
|
||||
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<ResourceUsage> {
|
||||
explicit ResourceUsage(ServiceSetup &setup);
|
||||
|
||||
std::size_t packageDbSize = 0;
|
||||
std::size_t actionsDbSize = 0;
|
||||
std::size_t cachedPackages = 0;
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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()
|
||||
|
|
Loading…
Reference in New Issue