diff options
Diffstat (limited to 'eval/src/apps')
-rw-r--r-- | eval/src/apps/analyze_onnx_model/CMakeLists.txt | 2 | ||||
-rw-r--r-- | eval/src/apps/analyze_onnx_model/analyze_onnx_model.cpp | 17 |
2 files changed, 9 insertions, 10 deletions
diff --git a/eval/src/apps/analyze_onnx_model/CMakeLists.txt b/eval/src/apps/analyze_onnx_model/CMakeLists.txt index a8f984550f9..6ab7a17e109 100644 --- a/eval/src/apps/analyze_onnx_model/CMakeLists.txt +++ b/eval/src/apps/analyze_onnx_model/CMakeLists.txt @@ -6,4 +6,6 @@ vespa_add_executable(eval_analyze_onnx_model_app INSTALL bin DEPENDS vespaeval + EXTERNAL_DEPENDS + dl ) diff --git a/eval/src/apps/analyze_onnx_model/analyze_onnx_model.cpp b/eval/src/apps/analyze_onnx_model/analyze_onnx_model.cpp index 2358a6c263e..1fdc6fe79f0 100644 --- a/eval/src/apps/analyze_onnx_model/analyze_onnx_model.cpp +++ b/eval/src/apps/analyze_onnx_model/analyze_onnx_model.cpp @@ -10,6 +10,8 @@ #include <vespa/vespalib/util/guard.h> #include <vespa/vespalib/util/stringfmt.h> #include <charconv> +#include <malloc.h> +#include <dlfcn.h> using vespalib::make_string_short::fmt; @@ -75,17 +77,12 @@ size_t convert(const vespalib::string & s) { } MemoryUsage extract_memory_usage() { - vespalib::string vm_size = UNKNOWN; - vespalib::string vm_rss = UNKNOWN; - FilePointer file(fopen("/proc/self/status", "r")); - if (file.valid()) { - vespalib::string line; - while (read_line(file, line)) { - extract(line, "VmSize:", vm_size); - extract(line, "VmRSS:", vm_rss); - } + struct mallinfo info = mallinfo(); + if (dlsym(RTLD_NEXT, "is_vespamalloc") != nullptr) { + return {size_t(info.usmblks) << 20, size_t(info.arena + info.hblkhd) << 20}; + } else { + return {size_t(info.usmblks), size_t(info.arena + info.hblkhd)}; } - return {convert(vm_size), convert(vm_rss)}; } void report_memory_usage(const vespalib::string &desc) { |