Snapshot : fix bug and apply Process memory size 97/27797/1
authorjungwook.ryu <jungwook.ryu@samsung.com>
Fri, 19 Sep 2014 07:56:32 +0000 (16:56 +0900)
committerjungwook.ryu <jungwook.ryu@samsung.com>
Fri, 19 Sep 2014 08:05:58 +0000 (17:05 +0900)
Change-Id: I372e4b62e2216086c3b08c77c0f3bad9a2a6681e
Signed-off-by: jungwook.ryu <jungwook.ryu@samsung.com>
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/info/screenshot/ScreenshotDataManager.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/info/screenshot/ScreenshotView.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/common/TimelineChartManager.java

index 5501841..d30f449 100644 (file)
@@ -9,12 +9,13 @@ import org.tizen.dynamicanalyzer.swap.logparser.LogPackage;
 import org.tizen.dynamicanalyzer.swap.logparser.Logs;
 import org.tizen.dynamicanalyzer.swap.logparser.PageDataManager;
 import org.tizen.dynamicanalyzer.swap.model.data.LogData;
+import org.tizen.dynamicanalyzer.swap.model.data.ProcessProfileData;
 import org.tizen.dynamicanalyzer.swap.model.data.SystemData;
 
 public class ScreenshotDataManager extends PageDataManager {
        private static ScreenshotDataManager instance = null;
        private List<Long> lastCpuRate = null;
-       private int lastProcessMemory = 0;
+       private long lastProcessMemory = 0;
        private long lastStartTime = 0;
        
        private ScreenshotDataManager() {
@@ -32,7 +33,7 @@ public class ScreenshotDataManager extends PageDataManager {
                return lastCpuRate;
        }
        
-       public int getLastProcessMemory() {
+       public long getLastProcessMemory() {
                return lastProcessMemory;
        }
 
@@ -43,22 +44,25 @@ public class ScreenshotDataManager extends PageDataManager {
        @Override
        protected void makeData(LogPackage pack) {
                Logs logs = pack.getLogs(DataChannelConstants.MSG_DATA_SYSTEM);
+               lastCpuRate.clear();
                if (null != logs && null != logs.getRawLogs()   && !logs.getRawLogs().isEmpty()) {
                        List<LogData> inputs = logs.getRawLogs();
                        int lastIndex = inputs.size() - 1;
                        SystemData input = (SystemData) inputs.get(lastIndex);
                        
                        String[] cpuRates = input.getCpuLoad().split(CommonConstants.COMMA);
-                       for (int i = 0; i < cpuRates.length - 1; i++) {
+                       for (int i = 0; i < cpuRates.length; i++) {
                                String cpu = cpuRates[i].trim();
                                lastCpuRate.add(new Long((long)Float.parseFloat(cpu)));
                        }
                        
-                       /*
-                        * TODO interface of SystemData is changed(by jungwook). removed getResidentMemory().
-                        * residentMemory is possible one more per multi process.
-                        */
-//                     lastProcessMemory = input.getResidentMemory();  
+                       ProcessProfileData[] processInfoList = input.getProcessProfileDataList();
+                       if (processInfoList != null) {
+                               lastProcessMemory = 0;
+                               for (int i = 0; i < processInfoList.length; i++) {
+                                       lastProcessMemory += processInfoList[i].getResidentMemory();
+                               }
+                       }
                        lastStartTime = input.getTime();
                }
        }
index a89a52e..dab48e1 100644 (file)
@@ -283,10 +283,10 @@ public class ScreenshotView extends DAViewComposite {
                if (row.isEmpty()) {
                        return;
                }
-       
                @SuppressWarnings("unchecked")
                List<Object> cpuLoadList = (List<Object>) row.get(SystemDataDBTable.COLUMN.CPU_LOAD
                                .ordinal());
+               cpuUsage.clear();
                for (int ii = 0; ii < cpuLoadList.size(); ii++) {
                        double cpu = (Double)cpuLoadList.get(ii);
                        long value = (long)cpu;
@@ -295,13 +295,8 @@ public class ScreenshotView extends DAViewComposite {
                
                long totalMem = AnalyzerManager.getProject().getDeviceStatusInfo().getSystemMemorySize();
                maxMem = totalMem;
-
-               /*
-                * TODO interface of SystemData is changed(by jungwook). removed
-                * getResidentMemory(). residentMemory is possible one more per multi
-                * process.
-                */
-               // processMem = ((SystemData) input).getResidentMemory();
+               
+               processMem = TimelineChartManager.getInstance().getProcessMemoriesFromDB(startTime);
        }
 
        @Override
@@ -323,9 +318,9 @@ public class ScreenshotView extends DAViewComposite {
                                setStartTime(selectTime);
                                updateView(false);
                        } else {
-                               if (selStartTime > lastStartTime) {
-                                       selStartTime = lastStartTime;
-                               }
+//                             if (selStartTime > lastStartTime) {
+//                                     selStartTime = lastStartTime;
+//                             }
                                setSelectTime(selStartTime);
                                setStartTime(selectTime);
                                updateView(true);
@@ -419,7 +414,7 @@ public class ScreenshotView extends DAViewComposite {
                        List<Long> cpuRates = dataManager.getLastCpuRate();
                        int size = cpuRates.size();
                        cpuUsage.clear();
-                       for (int i = 0; i < size - 1; i++) {
+                       for (int i = 0; i < size; i++) {
                                cpuUsage.add(cpuRates.get(i));
                        }
 
index cd341f1..0b306db 100644 (file)
@@ -28,6 +28,8 @@
 package org.tizen.dynamicanalyzer.ui.timeline.common;
 
 import java.io.File;
+import java.sql.ResultSet;
+import java.sql.SQLException;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.Iterator;
@@ -40,6 +42,7 @@ import org.tizen.dynamicanalyzer.common.GlobalInformation;
 import org.tizen.dynamicanalyzer.communicator.DACommunicator;
 import org.tizen.dynamicanalyzer.constant.CommonConstants;
 import org.tizen.dynamicanalyzer.database.DBTable;
+import org.tizen.dynamicanalyzer.database.SqlConnectionManager;
 import org.tizen.dynamicanalyzer.nl.TimelineChartLabels;
 import org.tizen.dynamicanalyzer.project.BinaryInfo;
 import org.tizen.dynamicanalyzer.project.LibraryObject;
@@ -794,6 +797,25 @@ public class TimelineChartManager extends PageDataManager implements IDAChartSer
                }
                return processedResult;
        }
+       
+       public long getProcessMemoriesFromDB(long time) {
+               long processMemories = 0;
+               String query = "SELECT " + TargetProcessDBTable.MEMORY_RESIDENT + 
+                               " FROM " + targetProcessDBTable.getTableName() +
+                               " WHERE TIME = (SELECT MAX(TIME) FROM " + targetProcessDBTable.getTableName() +
+                               " WHERE TIME <= " + time + ")";
+               ResultSet rs = SqlConnectionManager.executeQueryRS(query);
+               if (rs != null) {
+                       try {
+                               while (rs.next()) {
+                                       processMemories += rs.getLong(1);
+                               }
+                       } catch (SQLException e) {
+                               e.printStackTrace();
+                       }
+               }
+               return processMemories;
+       }
 
        @Override
        public void makeChartSeries(long startTime, long endTime) {