39 int mib[2] = {CTL_HW, HW_NCPU};
41 size_t len =
sizeof(ncpu);
42 if (sysctl(mib,
arraysize(mib), &ncpu, &len,
nullptr, 0) != 0) {
48 return __get_num_online_cpus();
50 long result = sysconf(_SC_NPROCESSORS_ONLN);
54 return static_cast<int>(
result);
56 SYSTEM_INFO system_info = {};
57 ::GetNativeSystemInfo(&system_info);
58 return static_cast<int>(system_info.dwNumberOfProcessors);
60 return SbSystemGetNumberOfProcessors();
68 int mib[2] = {CTL_HW, HW_MEMSIZE};
70 size_t len =
sizeof(memsize);
71 if (sysctl(mib,
arraysize(mib), &memsize, &len,
nullptr, 0) != 0) {
77 size_t size =
sizeof(
pages);
78 sysctlbyname(
"vm.stats.vm.v_page_count", &pages, &size,
nullptr, 0);
79 sysctlbyname(
"vm.stats.vm.v_page_size", &page_size, &size,
nullptr, 0);
80 if (pages == -1 || page_size == -1) {
83 return static_cast<int64_t
>(
pages) * page_size;
84#elif V8_OS_CYGWIN || V8_OS_WIN
85 MEMORYSTATUSEX memory_info;
86 memory_info.dwLength =
sizeof(memory_info);
87 if (!GlobalMemoryStatusEx(&memory_info)) {
90 int64_t
result =
static_cast<int64_t
>(memory_info.ullTotalPhys);
91 if (
result < 0)
result = std::numeric_limits<int64_t>::max();
95 if (stat(
"/proc", &stat_buf) != 0) {
98 return static_cast<int64_t
>(stat_buf.st_size);
100 int64_t
result = sysconf(_SC_AIX_REALMEM);
101 return static_cast<int64_t
>(
result) * 1024L;
103 int pages = __get_num_frames();
104 long page_size = sysconf(_SC_PAGESIZE);
105 return static_cast<uint64_t
>(
pages) * page_size;
107 long pages = sysconf(_SC_PHYS_PAGES);
108 long page_size = sysconf(_SC_PAGESIZE);
109 if (pages == -1 || page_size == -1) {
112 return static_cast<int64_t
>(
pages) * page_size;
114 return SbSystemGetTotalCPUMemory();