Improve summary calculation performance

* Only reload calculation data
* Make sure performance is good when a calculated object is added or changed
- avoid recreation of summary file readers
- delete all nodes in address tree representing calculated curves
- build address nodes for calculated curves
This commit is contained in:
Magne Sjaastad
2024-02-26 13:55:41 +01:00
committed by GitHub
parent 28d281e1d6
commit 672fbe177b
22 changed files with 143 additions and 81 deletions

View File

@@ -22,30 +22,23 @@
#include "RiaFieldHandleTools.h"
#include "RiaLogging.h"
#include "RiaStatisticsTools.h"
#include "RiaStdStringTools.h"
#include "RiaSummaryAddressAnalyzer.h"
#include "RiaWeightedMeanCalculator.h"
#include "RicfCommandObject.h"
#include "RifReaderRftInterface.h"
#include "RifSummaryReaderInterface.h"
#include "RimAnalysisPlotDataEntry.h"
#include "RimDerivedEnsembleCaseCollection.h"
#include "RimEnsembleCurveSet.h"
#include "RimProject.h"
#include "RimSummaryAddressCollection.h"
#include "RimSummaryCalculationCollection.h"
#include "RimSummaryCase.h"
#include "cafPdmFieldScriptingCapability.h"
#include "cafPdmObjectScriptingCapability.h"
#include "cafPdmUiTreeOrdering.h"
#include <QDate>
#include <QFileInfo>
#include <algorithm>
#include <cmath>
CAF_PDM_SOURCE_INIT( RimSummaryCaseCollection, "SummaryCaseSubCollection" );
@@ -284,7 +277,7 @@ void RimSummaryCaseCollection::setAsEnsemble( bool isEnsemble )
calculateEnsembleParametersIntersectionHash();
}
refreshMetaData();
buildMetaData();
}
}
@@ -1155,13 +1148,24 @@ void RimSummaryCaseCollection::buildChildNodes()
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimSummaryCaseCollection::refreshMetaData()
void RimSummaryCaseCollection::buildMetaData()
{
clearChildNodes();
buildChildNodes();
updateConnectedEditors();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimSummaryCaseCollection::onCalculationUpdated()
{
m_dataVectorFolders->deleteCalculatedObjects();
m_dataVectorFolders->updateFolderStructure( ensembleSummaryAddresses(), -1, m_ensembleId );
updateConnectedEditors();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------