Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion module/profiling/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# 构建接口库
add_library(oops_profiling_i INTERFACE)
target_include_directories(oops_profiling_i INTERFACE "${CMAKE_CURRENT_SOURCE_DIR}/include")
target_link_libraries(oops_profiling_i INTERFACE oops_common_i)
target_link_libraries(oops_profiling_i INTERFACE oops_common_i oops_meta_i)

# 构建对象库
file(GLOB_RECURSE SRC "src/*.cpp")
Expand Down
52 changes: 27 additions & 25 deletions module/profiling/include/oops/system_info.h
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
namespace oops {
namespace proc {
namespace status {
enum class Field {
enum class Field : uint8_t {
VM_PEAK,
VM_SIZE,
VM_LCK,
Expand All @@ -33,23 +33,23 @@ enum class Field {
using FieldMask = EnumBitset<Field>;
using oops::operator|; // 支持Field和FieldMask或运算ADL

// 当前只解析内存部分
struct Info {
std::optional<std::size_t> vm_peak;
std::optional<std::size_t> vm_size;
std::optional<std::size_t> vm_lck;
std::optional<std::size_t> vm_pin;
std::optional<std::size_t> vm_hwm;
std::optional<std::size_t> vm_rss;
std::optional<std::size_t> rss_anon;
std::optional<std::size_t> rss_file;
std::optional<std::size_t> rss_shmem;
std::optional<std::size_t> vm_data;
std::optional<std::size_t> vm_stk;
std::optional<std::size_t> vm_exe;
std::optional<std::size_t> vm_lib;
std::optional<std::size_t> vm_pte;
std::optional<std::size_t> vm_swap;
std::size_t vm_peak{}; // 当前只解析内存部分
std::size_t vm_size{};
std::size_t vm_lck{};
std::size_t vm_pin{};
std::size_t vm_hwm{};
std::size_t vm_rss{};
std::size_t rss_anon{};
std::size_t rss_file{};
std::size_t rss_shmem{};
std::size_t vm_data{};
std::size_t vm_stk{};
std::size_t vm_exe{};
std::size_t vm_lib{};
std::size_t vm_pte{};
std::size_t vm_swap{};
FieldMask parsed;
};

[[nodiscard]] Info Get();
Expand All @@ -58,6 +58,7 @@ struct Info {
[[nodiscard]] Info Get(int pid, const FieldMask &field_mask);
::std::ostream &operator<<(::std::ostream &out, const Info &info);
} // namespace status

namespace numa_maps {
// Since Linux 2.6.14
struct MemoryRange {
Expand Down Expand Up @@ -101,14 +102,15 @@ using FieldMask = EnumBitset<Field>;
using oops::operator|; // 支持Field和FieldMask或运算ADL

struct Info {
std::optional<std::string> architecture;
std::optional<std::size_t> cpus;
std::optional<std::size_t> threads_per_core;
std::optional<std::size_t> cores_per_socket;
std::optional<std::size_t> sockets;
std::optional<std::size_t> numa_nodes;
std::optional<std::string> model_name;
std::optional<double> cpu_mhz;
std::string architecture{};
std::size_t cpus{};
std::size_t threads_per_core{};
std::size_t cores_per_socket{};
std::size_t sockets{};
std::size_t numa_nodes{};
std::string model_name{};
double cpu_mhz{};
FieldMask parsed;
};

[[nodiscard]] Info Get();
Expand Down
Loading
Loading