diff --git a/src/Learning/MODL_Coclustering/CCCoclusteringBuilder.cpp b/src/Learning/MODL_Coclustering/CCCoclusteringBuilder.cpp index 672a8253b..e29eedd0b 100644 --- a/src/Learning/MODL_Coclustering/CCCoclusteringBuilder.cpp +++ b/src/Learning/MODL_Coclustering/CCCoclusteringBuilder.cpp @@ -355,6 +355,7 @@ boolean CCCoclusteringBuilder::ComputeCoclustering() CCCoclusteringOptimizer dataGridOptimizer; KWDataGrid optimizedDataGrid; KWDataGridManager dataGridManager; + ALString sProfileFileName; ALString sTmp; // CH IV Begin ObjectDictionary odObservationNumbers; @@ -454,9 +455,18 @@ boolean CCCoclusteringBuilder::ComputeCoclustering() // Choix du fichier de trace a parametrer if (bProfileOptimisation) { + // Nom du fichier de profiling, avec le nombre d'individus et de variables + sProfileFileName = "C:/temp/DataGridOptimizationProfiling"; + sProfileFileName += GetDatabase()->GetClassName(); + sProfileFileName += '('; + sProfileFileName += IntToString(initialDataGrid->GetAttributeAt(0)->GetInitialValueNumber()); + sProfileFileName += ','; + sProfileFileName += IntToString(initialDataGrid->GetInnerAttributes()->GetInnerAttributeNumber()); + sProfileFileName += ").txt"; + + // Lancement du profiling KWDataGridOptimizer::GetProfiler()->SetTrace(true); - KWDataGridOptimizer::GetProfiler()->Start("C:/temp/DataGridOptimizationProfiling" + - GetDatabase()->GetClassName() + ".txt"); + KWDataGridOptimizer::GetProfiler()->Start(sProfileFileName); } // Trace de debut d'optimisation, avec informations sur la grille initiale @@ -1656,6 +1666,10 @@ void CCCoclusteringBuilder::HandleOptimizationStep(const KWDataGrid* optimizedDa (bIsLastSaving and ((coclusteringDataGrid == NULL) or (coclusteringDataGrid->GetGranularity() < initialGranularizedDataGrid->GetGranularity()))))) { + // Ajout de trace lie au profiling + KWDataGridOptimizer::GetProfiler()->BeginMethod("Save best solution"); + + // Memorisation du meilleur cout dAnyTimeBestCost = dCost; // Sauvegarde de la grille @@ -1766,9 +1780,6 @@ void CCCoclusteringBuilder::HandleOptimizationStep(const KWDataGrid* optimizedDa bWriteOk = coclusteringReport.WriteJSONReport(sReportFileName, coclusteringDataGrid); JSONFile::SetVerboseMode(true); - // Ajout de trace lie au profiling - KWDataGridOptimizer::GetProfiler()->WriteKeyString("NEW BEST LEVEL", DoubleToString(dLevel)); - // Sauvegarde au format Khc necessaire if (bWriteOk and GetExportAsKhc()) { @@ -1784,6 +1795,10 @@ void CCCoclusteringBuilder::HandleOptimizationStep(const KWDataGrid* optimizedDa // Memorisation du nouveau nom du dernier fichier sauvegarde if (bWriteOk) sLastActualAnyTimeReportFileName = sReportFileName; + + // Ajout de trace lie au profiling + KWDataGridOptimizer::GetProfiler()->WriteKeyString("New best level", DoubleToString(dLevel)); + KWDataGridOptimizer::GetProfiler()->EndMethod("Save best solution"); } else {