From c134a480086f2d1d4b7ce6daab0c2a96fdd5846a Mon Sep 17 00:00:00 2001 From: Guillaume Pasero <guillaume.pasero@c-s.fr> Date: Fri, 9 Mar 2018 14:55:14 +0100 Subject: [PATCH] BUG: #1526: add a per-instance default ram value in StreamingManager --- .../Core/Streaming/include/otbStreamingManager.h | 11 ++++++++--- .../Core/Streaming/include/otbStreamingManager.txx | 14 +++++++++++--- 2 files changed, 19 insertions(+), 6 deletions(-) diff --git a/Modules/Core/Streaming/include/otbStreamingManager.h b/Modules/Core/Streaming/include/otbStreamingManager.h index 2095e48e8f..5d94b191ba 100644 --- a/Modules/Core/Streaming/include/otbStreamingManager.h +++ b/Modules/Core/Streaming/include/otbStreamingManager.h @@ -88,6 +88,9 @@ public: * GetNumberOfSplits() returns. */ virtual RegionType GetSplit(unsigned int i); + itkSetMacro(DefaultRAM, MemoryPrintType); + itkGetMacro(DefaultRAM, MemoryPrintType); + protected: StreamingManager(); ~StreamingManager() ITK_OVERRIDE; @@ -111,11 +114,13 @@ private: StreamingManager(const StreamingManager &); //purposely not implemented void operator =(const StreamingManager&); //purposely not implemented - /* Compute the available RAM from configuration settings if the input parameter is 0, - * otherwise, simply returns the input parameter */ + /** Compute the available RAM in Bytes from an input value in MByte. + * If the input value is 0, it uses the m_DefaultRAM value. + * If m_DefaultRAM is also 0, it uses the configuration settings */ MemoryPrintType GetActualAvailableRAMInBytes(MemoryPrintType availableRAMInMB); - + /** Default available RAM in MB */ + MemoryPrintType m_DefaultRAM; }; } // End namespace otb diff --git a/Modules/Core/Streaming/include/otbStreamingManager.txx b/Modules/Core/Streaming/include/otbStreamingManager.txx index b0fdfced06..e43dc86d75 100644 --- a/Modules/Core/Streaming/include/otbStreamingManager.txx +++ b/Modules/Core/Streaming/include/otbStreamingManager.txx @@ -31,6 +31,7 @@ namespace otb template <class TImage> StreamingManager<TImage>::StreamingManager() : m_ComputedNumberOfSplits(0) + , m_DefaultRAM(0) { } @@ -47,9 +48,16 @@ StreamingManager<TImage>::GetActualAvailableRAMInBytes(MemoryPrintType available if (availableRAMInBytes == 0) { - otbMsgDevMacro(<< "Retrieving available RAM size from configuration"); - // Retrieve it from the configuration - availableRAMInBytes = 1024*1024*ConfigurationManager::GetMaxRAMHint(); + if (m_DefaultRAM != 0) + { + availableRAMInBytes = 1024*1024*m_DefaultRAM; + } + else + { + otbMsgDevMacro(<< "Retrieving available RAM size from configuration"); + // Retrieve it from the configuration + availableRAMInBytes = 1024*1024*ConfigurationManager::GetMaxRAMHint(); + } } otbMsgDevMacro("RAM used to estimate memory footprint : " << availableRAMInBytes / 1024 / 1024 << " MB") -- GitLab