Index: src/libchcore/TTaskManagerStatsSnapshot.cpp =================================================================== diff -u -N -r294b7d63dfadb4e39fcbb52087983616981d00bd -r2a34de9ddfcfb4a1ed4c61ece641d37b91c23b6b --- src/libchcore/TTaskManagerStatsSnapshot.cpp (.../TTaskManagerStatsSnapshot.cpp) (revision 294b7d63dfadb4e39fcbb52087983616981d00bd) +++ src/libchcore/TTaskManagerStatsSnapshot.cpp (.../TTaskManagerStatsSnapshot.cpp) (revision 2a34de9ddfcfb4a1ed4c61ece641d37b91c23b6b) @@ -23,6 +23,7 @@ #include "stdafx.h" #include "TTaskManagerStatsSnapshot.h" #include "MathFunctions.h" +#include "EngineConstants.h" namespace chcore { @@ -111,21 +112,28 @@ m_ullProcessedSize += spTaskStats->GetProcessedSize(); m_ullTotalSize += spTaskStats->GetTotalSize(); + + if(spTaskStats->IsTaskRunning()) + { + m_dCountSpeed += spTaskStats->GetCountSpeed(); + m_dSizeSpeed += spTaskStats->GetSizeSpeed(); + } - m_dCountSpeed += spTaskStats->GetCountSpeed(); - m_dSizeSpeed += spTaskStats->GetSizeSpeed(); - m_dAvgCountSpeed += spTaskStats->GetAvgCountSpeed(); m_dAvgSizeSpeed += spTaskStats->GetAvgSizeSpeed(); } - static_assert(AssumedFileEquivalentSize == TTaskStatsSnapshot::AssumedFileEquivalentSize, "File equivalent sizes differs"); + if(!m_vTasksSnapshots.empty()) + { + m_dAvgCountSpeed /= m_vTasksSnapshots.size(); + m_dAvgSizeSpeed /= m_vTasksSnapshots.size(); + } - // we're treating each of the items as 512B object to process + // we're treating each of the items as 4k object to process // to have some balance between items' count and items' size in // progress information - unsigned long long ullProcessed = AssumedFileEquivalentSize * m_ullProcessedCount + m_ullProcessedSize; - unsigned long long ullTotal = AssumedFileEquivalentSize * m_ullTotalCount + m_ullTotalSize; + unsigned long long ullProcessed = AssumedFileMinDataSize * m_ullProcessedCount + m_ullProcessedSize; + unsigned long long ullTotal = AssumedFileMinDataSize * m_ullTotalCount + m_ullTotalSize; if (ullTotal != 0) m_dCombinedProgress = Math::Div64(ullProcessed, ullTotal);