summaryrefslogtreecommitdiff
path: root/core/src
diff options
context:
space:
mode:
authorruki <[email protected]>2022-07-28 22:56:53 +0800
committerruki <[email protected]>2022-07-28 22:56:53 +0800
commitbdeee918bc0bd351249c478fd9f04db496fe936c (patch)
treef619a55b29a9889b72c07335904e8d6ed8573902 /core/src
parenteaeb7c3c5d075babe4ba6211fd12467e079e560c (diff)
modify meminfo
Diffstat (limited to 'core/src')
-rw-r--r--core/src/xmake/os/meminfo.c15
1 files changed, 11 insertions, 4 deletions
diff --git a/core/src/xmake/os/meminfo.c b/core/src/xmake/os/meminfo.c
index d6634b93f..baceb18cf 100644
--- a/core/src/xmake/os/meminfo.c
+++ b/core/src/xmake/os/meminfo.c
@@ -140,13 +140,20 @@ static tb_bool_t xm_os_meminfo_stats(tb_int_t* ptotalsize, tb_int_t* pavailsize)
if (sysctlbyname("hw.physmem", &totalsize, &size, tb_null, 0) != 0)
return tb_false;
- tb_uint32_t availsize;
- size = sizeof(availsize);
- if (sysctlbyname("vm.stats.vm.v_free_count", &availsize, &size, tb_null, 0) != 0)
+ tb_uint32_t v_free_count;
+ size = sizeof(v_free_count);
+ if (sysctlbyname("vm.stats.vm.v_free_count", &v_free_count, &size, tb_null, 0) != 0)
return tb_false;
+ tb_uint32_t v_inactive_count;
+ size = sizeof(v_inactive_count);
+ if (sysctlbyname("vm.stats.vm.v_inactive_count", &v_inactive_count, &size, tb_null, 0) != 0)
+ return tb_false;
+
+ tb_trace_i("%ld %d %d", totalsize, v_free_count, v_inactive_count);
+
*ptotalsize = (tb_int_t)(totalsize / (1024 * 1024));
- *pavailsize = (tb_int_t)(((tb_int64_t)availsize * tb_page_size()) / (1024 * 1024));
+ *pavailsize = (tb_int_t)(((tb_int64_t)(v_free_count + v_inactive_count) * tb_page_size()) / (1024 * 1024));
return tb_true;
#endif
return tb_false;