diff options
author | Pasi Keranen <pasi.keranen@qt.io> | 2018-10-30 12:30:29 +0200 |
---|---|---|
committer | Pasi Keränen <pasi.keranen@qt.io> | 2018-10-31 04:09:48 +0000 |
commit | bfc2ac100ef3908eae812975dbd60deb4a09c289 (patch) | |
tree | ac6988cdada30f87bf810d62dd055fd624e4dc03 | |
parent | 575f9bd1073f8a2f7f621985e8177f56b2b17266 (diff) |
macOS: Implement profiler memory reporting
Task-number: QT3DS-2585
Change-Id: I8d1b472097bc1edda5e3a7fd2ed3a6e627d77bfa
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
-rw-r--r-- | src/runtime/q3dsprofiler.cpp | 25 |
1 files changed, 21 insertions, 4 deletions
diff --git a/src/runtime/q3dsprofiler.cpp b/src/runtime/q3dsprofiler.cpp index f7d5b42..8303498 100644 --- a/src/runtime/q3dsprofiler.cpp +++ b/src/runtime/q3dsprofiler.cpp @@ -42,6 +42,11 @@ #include <sys/times.h> #endif +#ifdef Q_OS_MACOS +#include <mach/mach_types.h> +#include <mach/mach.h> +#endif + QT_BEGIN_NAMESPACE Q3DSProfiler::Q3DSProfiler() @@ -311,7 +316,6 @@ QPair<qint64, qint64> Q3DSProfiler::memUsageForCurrentProcess() qint64 physMappedSize = memInfo.WorkingSetSize; qint64 commitCharge = memInfo.PrivateUsage; m_lastMemUsage = { physMappedSize, commitCharge }; - return m_lastMemUsage; #elif defined(Q_OS_LINUX) QFile f(QLatin1String("/proc/self/status")); if (!f.open(QIODevice::ReadOnly | QIODevice::Text)) @@ -335,10 +339,23 @@ QPair<qint64, qint64> Q3DSProfiler::memUsageForCurrentProcess() } f.close(); m_lastMemUsage = { physMappedSize, commitCharge }; - return m_lastMemUsage; -#else - return m_lastMemUsage; +#elif defined(Q_OS_MACOS) + mach_task_basic_info_data_t taskinfo = {}; + mach_msg_type_number_t outCount = MACH_TASK_BASIC_INFO_COUNT; + + kern_return_t error = task_info( + mach_task_self(), + MACH_TASK_BASIC_INFO, + task_info_t(&taskinfo), + &outCount); + if (error == KERN_SUCCESS) { + qint64 virtualSize = qint64(taskinfo.virtual_size); + qint64 residentSize = qint64(taskinfo.resident_size); + m_lastMemUsage = { residentSize, virtualSize }; + } #endif + + return m_lastMemUsage; } QT_END_NAMESPACE |