Update To 11.40.268.0
[platform/framework/web/crosswalk.git] / src / third_party / skia / tools / ProcStats.cpp
1 /*
2  * Copyright 2014 Google Inc.
3  *
4  * Use of this source code is governed by a BSD-style license that can be
5  * found in the LICENSE file.
6  */
7
8 #include "ProcStats.h"
9
10 #if defined(SK_BUILD_FOR_UNIX) || \
11     defined(SK_BUILD_FOR_MAC) || \
12     defined(SK_BUILD_FOR_ANDROID)
13
14     #include <sys/resource.h>
15     int sk_tools::getMaxResidentSetSizeMB() {
16         struct rusage ru;
17         getrusage(RUSAGE_SELF, &ru);
18     #if defined(SK_BUILD_FOR_MAC)
19         return static_cast<int>(ru.ru_maxrss / 1024 / 1024);  // Darwin reports bytes.
20     #else
21         return static_cast<int>(ru.ru_maxrss / 1024);  // Linux reports kilobytes.
22     #endif
23     }
24
25 #elif defined(SK_BUILD_FOR_WIN32)
26     #include <windows.h>
27     #include <psapi.h>
28     int sk_tools::getMaxResidentSetSizeMB() {
29         PROCESS_MEMORY_COUNTERS info;
30         GetProcessMemoryInfo(GetCurrentProcess(), &info, sizeof(info));
31         return static_cast<int>(info.PeakWorkingSetSize / 1024 / 1024);  // Windows reports bytes.
32     }
33
34 #else
35     int sk_tools::getMaxResidentSetSizeMB() {
36         return -1;
37     }
38
39 #endif