diff options
| author | ruki <[email protected]> | 2022-07-28 22:56:53 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2022-07-28 22:56:53 +0800 |
| commit | bdeee918bc0bd351249c478fd9f04db496fe936c (patch) | |
| tree | f619a55b29a9889b72c07335904e8d6ed8573902 /core/src | |
| parent | eaeb7c3c5d075babe4ba6211fd12467e079e560c (diff) | |
modify meminfo
Diffstat (limited to 'core/src')
| -rw-r--r-- | core/src/xmake/os/meminfo.c | 15 |
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; |
