Improved DatabaseViewer memory usage (by not keeping uncompressed data in cache)

This commit is contained in:
matlabbe
2015-10-14 11:02:36 -04:00
parent a8d83c895c
commit 9bd649009c
5 changed files with 37 additions and 20 deletions
+7 -3
View File
@@ -3392,23 +3392,27 @@ cv::Mat Memory::getImageCompressed(int signatureId) const
return image;
}
SensorData Memory::getNodeData(int nodeId, bool uncompressedData)
SensorData Memory::getNodeData(int nodeId, bool uncompressedData, bool keepLoadedDataInMemory)
{
UDEBUG("nodeId=%d", nodeId);
SensorData r;
Signature * s = this->_getSignature(nodeId);
if(s && !s->sensorData().imageCompressed().empty())
{
if(uncompressedData)
if(keepLoadedDataInMemory && uncompressedData)
{
s->sensorData().uncompressData();
}
r = s->sensorData();
if(!keepLoadedDataInMemory && uncompressedData)
{
r.uncompressData();
}
}
else if(_dbDriver)
{
// load from database
if(s)
if(s && keepLoadedDataInMemory)
{
std::list<Signature*> signatures;
signatures.push_back(s);