提交 fba58e10 编写于 作者: H hseigel

8025942: os::Bsd::available_memory() needs implementation

Summary: Implement using the host_statistics64() api.
Reviewed-by: dsamersoff, morris, dholmes, coleenp, hseigel, dcubed
Contributed-by: gerard.ziemski@oracle.com
上级 4c1c3163
......@@ -159,9 +159,21 @@ julong os::available_memory() {
return Bsd::available_memory();
}
// available here means free
julong os::Bsd::available_memory() {
// XXXBSD: this is just a stopgap implementation
return physical_memory() >> 2;
uint64_t available = physical_memory() >> 2;
#ifdef __APPLE__
mach_msg_type_number_t count = HOST_VM_INFO64_COUNT;
vm_statistics64_data_t vmstat;
kern_return_t kerr = host_statistics64(mach_host_self(), HOST_VM_INFO64,
(host_info64_t)&vmstat, &count);
assert(kerr == KERN_SUCCESS,
"host_statistics64 failed - check mach_host_self() and count");
if (kerr == KERN_SUCCESS) {
available = vmstat.free_count * os::vm_page_size();
}
#endif
return available;
}
julong os::physical_memory() {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册