Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/kpu/kenlm.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKenneth Heafield <kpu@users.noreply.github.com>2020-12-07 17:44:26 +0300
committerGitHub <noreply@github.com>2020-12-07 17:44:26 +0300
commitd575cb3d8901db5341d30fc4a5f8aaa952076ab5 (patch)
tree11e158527477f1d8f1725ebf39eb0ac2bbd85182
parentd70e28403f07e88b276c6bd9f162d2a428530f2e (diff)
parentbf53dca2f71ee697638afddf20c41cf378496609 (diff)
Merge pull request #316 from devnexen/mac_usage_report_fix
Usage report for mac update proposal.
-rw-r--r--util/usage.cc14
1 files changed, 14 insertions, 0 deletions
diff --git a/util/usage.cc b/util/usage.cc
index 23288b7..097c8ee 100644
--- a/util/usage.cc
+++ b/util/usage.cc
@@ -43,6 +43,7 @@ typedef WINBOOL (WINAPI *PFN_MS_EX) (lMEMORYSTATUSEX*);
#include <sys/sysctl.h>
#include <mach/task.h>
#include <mach/mach.h>
+#include <libproc.h>
#endif
namespace util {
@@ -196,6 +197,18 @@ uint64_t RSSMax() {
void PrintUsage(std::ostream &out) {
#if !defined(_WIN32) && !defined(_WIN64)
+#if defined(__MACH__) || defined(__APPLE__)
+ struct mach_task_basic_info t_info;
+ char name[2 * MAXCOMLEN] = {0};
+
+ proc_name(getpid(), name, sizeof(name));
+ mach_msg_type_number_t t_info_count = MACH_TASK_BASIC_INFO_COUNT;
+ task_info(mach_task_self(), MACH_TASK_BASIC_INFO, (task_info_t)&t_info, &t_info_count);
+
+ out << t_info.resident_size_max << '\t';
+ out << t_info.resident_size << '\t';
+ out << name << '\t';
+#else
// Linux doesn't set memory usage in getrusage :-(
std::set<std::string> headers;
headers.insert("VmPeak:");
@@ -209,6 +222,7 @@ void PrintUsage(std::ostream &out) {
out << header << SkipSpaces(value.c_str()) << '\t';
}
}
+#endif
struct rusage usage;
if (getrusage(RUSAGE_SELF, &usage)) {