percentiles p75, p90 for FindZone view

This commit is contained in:
wernhervondata 2024-10-30 22:44:52 +01:00
parent ee06542f1f
commit cc0f158c16
2 changed files with 12 additions and 0 deletions

View File

@ -667,6 +667,7 @@ private:
size_t sortedNum = 0, selSortNum, selSortActive; size_t sortedNum = 0, selSortNum, selSortActive;
float average, selAverage; float average, selAverage;
float median, selMedian; float median, selMedian;
float p75, p90;
int64_t total, selTotal; int64_t total, selTotal;
int64_t selTime; int64_t selTime;
bool drawAvgMed = true; bool drawAvgMed = true;
@ -710,6 +711,8 @@ private:
sortedNum = 0; sortedNum = 0;
average = 0; average = 0;
median = 0; median = 0;
p75 = 0;
p90 = 0;
total = 0; total = 0;
tmin = std::numeric_limits<int64_t>::max(); tmin = std::numeric_limits<int64_t>::max();
tmax = std::numeric_limits<int64_t>::min(); tmax = std::numeric_limits<int64_t>::min();

View File

@ -549,10 +549,13 @@ void View::DrawFindZone()
std::inplace_merge( vec.begin(), mid, vec.end() ); std::inplace_merge( vec.begin(), mid, vec.end() );
const auto vsz = vec.size(); const auto vsz = vec.size();
const auto vszQuarter = vsz / 4;
if( vsz != 0 ) if( vsz != 0 )
{ {
m_findZone.average = float( total ) / vsz; m_findZone.average = float( total ) / vsz;
m_findZone.median = vec[vsz/2]; m_findZone.median = vec[vsz/2];
m_findZone.p75 = vec[3 * vszQuarter];
m_findZone.p90 = vec[vsz / 10 * 9];
m_findZone.total = total; m_findZone.total = total;
m_findZone.sortedNum = i; m_findZone.sortedNum = i;
m_findZone.tmin = tmin; m_findZone.tmin = tmin;
@ -972,6 +975,12 @@ void View::DrawFindZone()
TextFocused( "Median:", TimeToString( m_findZone.median ) ); TextFocused( "Median:", TimeToString( m_findZone.median ) );
ImGui::SameLine(); ImGui::SameLine();
ImGui::Spacing(); ImGui::Spacing();
TextFocused( "P75:", TimeToString( m_findZone.p75 ) );
ImGui::SameLine();
ImGui::Spacing();
TextFocused( "P90:", TimeToString( m_findZone.p90 ) );
ImGui::SameLine();
ImGui::Spacing();
ImGui::SameLine(); ImGui::SameLine();
{ {
int64_t t0, t1; int64_t t0, t1;