From: woojin Date: Tue, 19 Nov 2013 09:39:50 +0000 (+0900) Subject: [Title] fix bug - cpu rate of function usage profiling shows correct value X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=25d0b295ddbccaf4f0865da56dacb5fc8f27f949;p=sdk%2Ftools%2Fdynamic-analyzer.git [Title] fix bug - cpu rate of function usage profiling shows correct value [Desc.] 1. fix Infinity/NaN value of cpu rate column 2. calculate cpu rate when loading saved data [Issue] --- diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/handlers/OpenTraceHandler.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/handlers/OpenTraceHandler.java index 5cf5444..bbc01ae 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/handlers/OpenTraceHandler.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/handlers/OpenTraceHandler.java @@ -403,7 +403,7 @@ public class OpenTraceHandler extends AbstractHandler { System.out.println("failed - loadProfilingData"); isSuccess = false; } else { - + int sampleCount = 0; ProfileDataMaker profiler = FunctionUsageProfiler.getInstance() .getProfileDataMaker(); for (int i = 0; i < dbInfo.size(); i++) { @@ -417,6 +417,7 @@ public class OpenTraceHandler extends AbstractHandler { profiler.getSymbolSeqHash().put(symbol, seq); UIDataManager.getInstance().getfunctionProfilingDataChecker() .addProfilingData(fupData); + sampleCount += fupData.getExCount(); } ProfilingData ab = profiler @@ -426,6 +427,8 @@ public class OpenTraceHandler extends AbstractHandler { .getProfilingDataByKey(FunctionUsageProfiler.DEPENDENT_LIB_KEY); profiler.setDependentLib(dl); + // restore total sample count + profiler.setTotalSampleCount(sampleCount); } return isSuccess; } diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/summary/profiling/ProfileDataMaker.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/summary/profiling/ProfileDataMaker.java index 7fbbbe6..2ab56cb 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/summary/profiling/ProfileDataMaker.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/summary/profiling/ProfileDataMaker.java @@ -205,14 +205,16 @@ public class ProfileDataMaker { count = data.getExCount(); if(totalSampleCount == 0) { rate = 0; - } - rate = count / (double) totalSampleCount * 100; + } else { + rate = count / (double) totalSampleCount * 100; + } } else { count = data.getInCount(); if(totalSampleCount == 0) { rate = 0; - } - rate = count / (double) totalSampleCount * 100; + } else { + rate = count / (double) totalSampleCount * 100; + } } return Formatter.toDoubleFormat2(Double.toString(rate));