77#if !(defined(__GLIBC__) && BOOST_OS_LINUX)
78 JLOG(journal.
debug()) <<
"malloc_trim not supported on this platform (tag=" << tag <<
")";
103 auto const statmBefore = readFile(statmPath);
104 long const rssBeforeKB = detail::parseStatmRSSkB(statmBefore);
107 bool const have_ru0 = getRusageThread(ru0);
111 report.
trimResult = detail::mallocTrimWithPad(TRIM_PAD);
116 bool const have_ru1 = getRusageThread(ru1);
118 auto const statmAfter = readFile(statmPath);
119 long const rssAfterKB = detail::parseStatmRSSkB(statmAfter);
124 report.
durationUs = std::chrono::duration_cast<std::chrono::microseconds>(t1 - t0);
126 if (have_ru0 && have_ru1)
128 report.
minfltDelta = ru1.ru_minflt - ru0.ru_minflt;
129 report.
majfltDelta = ru1.ru_majflt - ru0.ru_majflt;
132 std::int64_t const deltaKB = (rssBeforeKB < 0 || rssAfterKB < 0)
136 JLOG(journal.
debug()) <<
"malloc_trim tag=" << tagStr <<
" result=" << report.
trimResult
137 <<
" pad=" << TRIM_PAD <<
" bytes"
138 <<
" rss_before=" << rssBeforeKB <<
"kB"
139 <<
" rss_after=" << rssAfterKB <<
"kB"
140 <<
" delta=" << deltaKB <<
"kB"
147 report.
trimResult = detail::mallocTrimWithPad(TRIM_PAD);