X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali-toolkit%2Finternal%2Fimage-loader%2Floading-task.cpp;h=5cbd16b50c67b49ba8a2f4b1f08f12dc6c0b76be;hb=HEAD;hp=43a994d685af46de5d63932d3ce463cbfe624443;hpb=9931aa907c307c6cf79923e4b52462996c475dfa;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git diff --git a/dali-toolkit/internal/image-loader/loading-task.cpp b/dali-toolkit/internal/image-loader/loading-task.cpp index 43a994d..5cbd16b 100644 --- a/dali-toolkit/internal/image-loader/loading-task.cpp +++ b/dali-toolkit/internal/image-loader/loading-task.cpp @@ -27,7 +27,10 @@ #include #ifdef TRACE_ENABLED +#include +#include #include +#include #endif namespace Dali @@ -39,7 +42,17 @@ namespace Internal namespace { DALI_INIT_TRACE_FILTER(gTraceFilter, DALI_TRACE_IMAGE_PERFORMANCE_MARKER, false); + +#ifdef TRACE_ENABLED +uint64_t GetNanoseconds() +{ + // Get the time of a monotonic clock since its epoch. + auto epoch = std::chrono::steady_clock::now().time_since_epoch(); + auto duration = std::chrono::duration_cast(epoch); + return static_cast(duration.count()); } +#endif +} // namespace LoadingTask::LoadingTask(uint32_t id, Dali::AnimatedImageLoading animatedImageLoading, uint32_t frameIndex, DevelAsyncImageLoader::PreMultiplyOnLoad preMultiplyOnLoad, CallbackBase* callback) : AsyncTask(callback), @@ -159,10 +172,13 @@ LoadingTask::~LoadingTask() void LoadingTask::Process() { #ifdef TRACE_ENABLED + uint64_t mStartTimeNanoSceonds = 0; + uint64_t mEndTimeNanoSceonds = 0; if(gTraceFilter && gTraceFilter->IsTraceEnabled()) { + mStartTimeNanoSceonds = GetNanoseconds(); std::ostringstream oss; - oss << "[url:" << (!!(animatedImageLoading) ? animatedImageLoading.GetUrl() : url.GetEllipsedUrl()) << "]"; + oss << "[u:" << (!!(animatedImageLoading) ? animatedImageLoading.GetUrl() : url.GetEllipsedUrl()) << "]"; // DALI_TRACE_BEGIN(gTraceFilter, "DALI_IMAGE_LOADING_TASK"); ///< TODO : Open it if we can control trace log level DALI_LOG_RELEASE_INFO("BEGIN: DALI_IMAGE_LOADING_TASK %s", oss.str().c_str()); } @@ -183,17 +199,20 @@ void LoadingTask::Process() #ifdef TRACE_ENABLED if(gTraceFilter && gTraceFilter->IsTraceEnabled()) { + mEndTimeNanoSceonds = GetNanoseconds(); std::ostringstream oss; + oss << std::fixed << std::setprecision(3); oss << "["; - oss << "masking:" << isMaskTask << " "; - oss << "index:" << frameIndex << " "; - oss << "pixelBuffers:" << pixelBuffers.size() << " "; + oss << "d:" << static_cast(mEndTimeNanoSceonds - mStartTimeNanoSceonds) / 1000000.0f << "ms "; + oss << "m:" << isMaskTask << " "; + oss << "i:" << frameIndex << " "; + oss << "b:" << pixelBuffers.size() << " "; if(!pixelBuffers.empty()) { - oss << "size:" << pixelBuffers[0].GetWidth() << "x" << pixelBuffers[0].GetHeight() << " "; - oss << "premult:" << pixelBuffers[0].IsAlphaPreMultiplied() << " "; + oss << "s:" << pixelBuffers[0].GetWidth() << "x" << pixelBuffers[0].GetHeight() << " "; + oss << "p:" << pixelBuffers[0].IsAlphaPreMultiplied() << " "; } - oss << "url:" << (!!(animatedImageLoading) ? animatedImageLoading.GetUrl() : url.GetEllipsedUrl()) << "]"; + oss << "u:" << (!!(animatedImageLoading) ? animatedImageLoading.GetUrl() : url.GetEllipsedUrl()) << "]"; // DALI_TRACE_END(gTraceFilter, "DALI_IMAGE_LOADING_TASK"); ///< TODO : Open it if we can control trace log level DALI_LOG_RELEASE_INFO("END: DALI_IMAGE_LOADING_TASK %s", oss.str().c_str()); }