diff --git a/cmake/server.cmake b/cmake/server.cmake index 02f6e24d..403cfe00 100644 --- a/cmake/server.cmake +++ b/cmake/server.cmake @@ -17,6 +17,7 @@ set(TRACY_SERVER_SOURCES TracyMemory.cpp TracyMmap.cpp TracyPrint.cpp + TracySysUtil.cpp TracyTaskDispatch.cpp TracyTextureCompression.cpp TracyThreadCompress.cpp diff --git a/profiler/src/profiler/TracyView.cpp b/profiler/src/profiler/TracyView.cpp index a5104076..6e19abd9 100644 --- a/profiler/src/profiler/TracyView.cpp +++ b/profiler/src/profiler/TracyView.cpp @@ -20,19 +20,10 @@ #include "TracySourceView.hpp" #include "TracyTexture.hpp" #include "TracyView.hpp" +#include "../server/TracySysUtil.hpp" #include "../public/common/TracyStackFrames.hpp" #include "imgui_internal.h" - -#ifdef _WIN32 -# include -#elif defined __linux__ -# include -#elif defined __APPLE__ || defined BSD -# include -# include -#endif - #include "IconsFontAwesome6.h" #ifndef M_PI_2 @@ -49,6 +40,7 @@ View::View( void(*cbMainThread)(const std::function&, bool), const char* , m_staticView( false ) , m_viewMode( ViewMode::LastFrames ) , m_viewModeHeuristicTry( true ) + , m_totalMemory( GetPhysicalMemorySize() ) , m_forceConnectionPopup( true, true ) , m_tc( *this, m_worker, config.threadedRendering ) , m_frames( nullptr ) @@ -64,7 +56,6 @@ View::View( void(*cbMainThread)(const std::function&, bool), const char* , m_userData() , m_cbMainThread( cbMainThread ) { - InitMemory(); InitTextEditor(); m_vd.frameTarget = config.targetFps; @@ -75,6 +66,7 @@ View::View( void(*cbMainThread)(const std::function&, bool), FileRead& f , m_filename( f.GetFilename() ) , m_staticView( true ) , m_viewMode( ViewMode::Paused ) + , m_totalMemory( GetPhysicalMemorySize() ) , m_tc( *this, m_worker, config.threadedRendering ) , m_frames( m_worker.GetFramesBase() ) , m_messagesScrollBottom( false ) @@ -90,7 +82,6 @@ View::View( void(*cbMainThread)(const std::function&, bool), FileRead& f m_notificationTime = 4; m_notificationText = std::string( "Trace loaded in " ) + TimeToString( m_worker.GetLoadTime() ); - InitMemory(); InitTextEditor(); m_vd.zvStart = m_worker.GetFirstTime(); m_vd.zvEnd = m_worker.GetLastTime(); @@ -120,32 +111,6 @@ View::~View() if( m_playback.texture ) FreeTexture( m_playback.texture, m_cbMainThread ); } -void View::InitMemory() -{ -#ifdef _WIN32 - MEMORYSTATUSEX statex; - statex.dwLength = sizeof( statex ); - GlobalMemoryStatusEx( &statex ); - m_totalMemory = statex.ullTotalPhys; -#elif defined __linux__ - struct sysinfo sysInfo; - sysinfo( &sysInfo ); - m_totalMemory = sysInfo.totalram; -#elif defined __APPLE__ - size_t memSize; - size_t sz = sizeof( memSize ); - sysctlbyname( "hw.memsize", &memSize, &sz, nullptr, 0 ); - m_totalMemory = memSize; -#elif defined BSD - size_t memSize; - size_t sz = sizeof( memSize ); - sysctlbyname( "hw.physmem", &memSize, &sz, nullptr, 0 ); - m_totalMemory = memSize; -#else - m_totalMemory = 0; -#endif -} - void View::InitTextEditor() { m_sourceView = std::make_unique(); diff --git a/profiler/src/profiler/TracyView.hpp b/profiler/src/profiler/TracyView.hpp index 1f4af461..30190693 100644 --- a/profiler/src/profiler/TracyView.hpp +++ b/profiler/src/profiler/TracyView.hpp @@ -222,7 +222,6 @@ private: uint32_t count; }; - void InitMemory(); void InitTextEditor(); bool DrawImpl(); diff --git a/server/TracySysUtil.cpp b/server/TracySysUtil.cpp new file mode 100644 index 00000000..0f3bb36c --- /dev/null +++ b/server/TracySysUtil.cpp @@ -0,0 +1,43 @@ + + +#include "TracySysUtil.hpp" + +#ifdef _WIN32 +# include +#elif defined __linux__ +# include +#elif defined __APPLE__ || defined BSD +# include +# include +#endif + +namespace tracy +{ + +size_t GetPhysicalMemorySize() +{ +#ifdef _WIN32 + MEMORYSTATUSEX statex; + statex.dwLength = sizeof( statex ); + GlobalMemoryStatusEx( &statex ); + return statex.ullTotalPhys; +#elif defined __linux__ + struct sysinfo sysInfo; + sysinfo( &sysInfo ); + return sysInfo.totalram; +#elif defined __APPLE__ + size_t memSize; + size_t sz = sizeof( memSize ); + sysctlbyname( "hw.memsize", &memSize, &sz, nullptr, 0 ); + return memSize; +#elif defined BSD + size_t memSize; + size_t sz = sizeof( memSize ); + sysctlbyname( "hw.physmem", &memSize, &sz, nullptr, 0 ); + return memSize; +#else + return 0; +#endif +} + +} diff --git a/server/TracySysUtil.hpp b/server/TracySysUtil.hpp new file mode 100644 index 00000000..523ca577 --- /dev/null +++ b/server/TracySysUtil.hpp @@ -0,0 +1,13 @@ +#ifndef __TRACYSYSUTIL_HPP__ +#define __TRACYSYSUTIL_HPP__ + +#include + +namespace tracy +{ + +size_t GetPhysicalMemorySize(); + +} + +#endif