opengl : refactoring 99/23799/2
authorHyunjong.park <phjwithyou.park@samsung.com>
Thu, 3 Jul 2014 07:09:18 +0000 (16:09 +0900)
committerHyunjong.park <phjwithyou.park@samsung.com>
Thu, 3 Jul 2014 07:38:40 +0000 (16:38 +0900)
extract method for better explain makeGLData()
measured with the previous code
old (Mothod total call count : 130, Roof total count : 232941, total execution time : 54255)
new (Mothod total call count : 130, Roof total count : 234061, total execution time : 45943)

Change-Id: I765c46a500844d0b0d44967126b93df63c19c5d1

org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/opengl/data/GLDataManager.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/opengl/table/state/GLContextTable.java

index 8c0e136..2616388 100644 (file)
@@ -48,19 +48,19 @@ import org.tizen.dynamicanalyzer.ui.timeline.common.TimelineConstants;
 
 public class GLDataManager extends PageDataManager {
        private static GLDataManager instance = null;
-       private GLStateDataMaker GLStateDataMaker = null;
 
-       private List<FrameRateInfo> frameRateDataList;
+       private GLStateDataMaker stateDataMaker = null;
+       private List<FrameRateInfo> frameRateDataList = null;
+       private List<GLSharingContextType> sharingContextList = null;
        private int startFrameRateTime = 1;
        private int selectedContextID = -1;
-       private int currentFrameIndex = 1;
+       protected int currentFrameIndex = 1;
        private boolean isSelectFrameRateChart = true;
-       List<GLSharingContextType> sharingContextList = null;
 
        private GLAPIDBTableManager apiDBTable = null;
        private GLFrameRateDBTableManager frameRateDBTable = null;
        private GLFrameTimeDBTableManager frameTimeDBTable = null;
-       private GLStateDBTableManager contextDBTable = null;
+       private GLStateDBTableManager stateDBTable = null;
        private GLStateProgramDBTableManager stateProgramDBTable = null;
        private GLStateHistoryDBTableManager stateHistoryDBTable = null;
        private GLStateTextureDBTableManager stateTextureDBTable = null;
@@ -73,17 +73,15 @@ public class GLDataManager extends PageDataManager {
                return instance;
        }
 
-       private GLDataManager() {
-               frameRateDataList = new ArrayList<FrameRateInfo>();
-               GLStateDataMaker = new GLStateDataMaker();
+       protected GLDataManager() {
                apiDBTable = new GLAPIDBTableManager();
                addDBTable(apiDBTable);
                frameRateDBTable = new GLFrameRateDBTableManager();
                addDBTable(frameRateDBTable);
                frameTimeDBTable = new GLFrameTimeDBTableManager();
                addDBTable(frameTimeDBTable);
-               contextDBTable = new GLStateDBTableManager();
-               addDBTable(contextDBTable);
+               stateDBTable = new GLStateDBTableManager();
+               addDBTable(stateDBTable);
                stateProgramDBTable = new GLStateProgramDBTableManager();
                addDBTable(stateProgramDBTable);
                stateHistoryDBTable = new GLStateHistoryDBTableManager();
@@ -94,19 +92,14 @@ public class GLDataManager extends PageDataManager {
                addDBTable(stateSharingDBTable);
        }
 
-       @Override
-       protected void makeData(LogPackage pack) {
-               Logs glesLogs = pack.getLogs(DataChannelConstants.MSG_PROBE_GLES20);
-               if (glesLogs != null && glesLogs.getRawLogs().size() != 0) {
-                       makeGLData(glesLogs);
-               }
-       }
-
        public void clear() {
+               stateDataMaker = new GLStateDataMaker();
                frameRateDataList = new ArrayList<FrameRateInfo>();
-               GLStateDataMaker.clear();
                sharingContextList = new ArrayList<GLSharingContextType>();
+               startFrameRateTime = 1;
+               selectedContextID = -1;
                currentFrameIndex = 1;
+               isSelectFrameRateChart = true;
        }
 
        public void saveData(Map<String, String> dataMap) {
@@ -118,7 +111,7 @@ public class GLDataManager extends PageDataManager {
        }
 
        public void openProcess() {
-               updateFrameTimeChartEndTime();
+               updateFrameTimeChartEndTimeAtOpen();
                stateProgramDBTable.initProgramData();
        }
 
@@ -126,25 +119,100 @@ public class GLDataManager extends PageDataManager {
                stateProgramDBTable.insertData();
        }
 
+       @Override
+       protected void makeData(LogPackage pack) {
+               Logs glesLogs = pack.getLogs(DataChannelConstants.MSG_PROBE_GLES20);
+               if (glesLogs != null && glesLogs.getRawLogs().size() != 0) {
+                       makeGLData(glesLogs);
+               }
+       }
+
        public void makeGLData(Logs glesLogs) {
-               List<List<Object>> insetFrameTimeChartDataList = new ArrayList<List<Object>>();
-               List<GLAPIType> insetAPIDataList = new ArrayList<GLAPIType>();
-               GLCurrentFrameDataManger currentFrameData = new GLCurrentFrameDataManger();
+               addAPIDBData(glesLogs);
+               addFrameTimeChartDBData(glesLogs);
+               addFrameRateChartDBData(glesLogs);
+               addStateDBData(glesLogs);
+               addFailedAPIData(glesLogs);
+               updateCurrentFrameIndex(glesLogs);
+       }
+
+       private void updateCurrentFrameIndex(Logs glesLogs) {
                for (LogData data : glesLogs.getRawLogs()) {
                        GLES20LogData logData = (GLES20LogData) data;
-                       GLAPIType apiType = new GLAPIType(logData, currentFrameIndex);
-                       GLStateDataMaker.makeStateData(logData, currentFrameIndex);
-                       insetAPIDataList.add(apiType);
-                       currentFrameData.addAPIData(apiType);
-                       checkFailedAPI(logData);
                        if (GLUtil.isLastAPIOfFrame(logData.getApiName())) {
-                               makeFrameTimeData(insetFrameTimeChartDataList, currentFrameData);
-                               makeFrameRateChartDataList(logData);
                                currentFrameIndex++;
                        }
                }
+       }
+
+       private void addFailedAPIData(Logs glesLogs) {
+               for (LogData data : glesLogs.getRawLogs()) {
+                       GLES20LogData logData = (GLES20LogData) data;
+                       if (checkFailedAPI(logData)) {
+                               SummaryDataManager.getInstance().getFailedApiDataMaker()
+                                               .makeData(logData);
+                       }
+               }
+       }
+
+       private void addStateDBData(Logs glesLogs) {
+               int currentFrameIndexOfState = currentFrameIndex;
+               for (LogData data : glesLogs.getRawLogs()) {
+                       GLES20LogData logData = (GLES20LogData) data;
+                       stateDataMaker.makeStateData(logData, currentFrameIndexOfState);
+                       if (GLUtil.isLastAPIOfFrame(logData.getApiName())) {
+                               currentFrameIndexOfState++;
+                       }
+               }
+       }
+
+       private void addAPIDBData(Logs glesLogs) {
+               int currentFrameIndexOfAPI = currentFrameIndex;
+               List<GLAPIType> insetAPIDataList = new ArrayList<GLAPIType>();
+               for (LogData data : glesLogs.getRawLogs()) {
+                       GLES20LogData logData = (GLES20LogData) data;
+                       insetAPIDataList
+                                       .add(new GLAPIType(logData, currentFrameIndexOfAPI));
+                       if (GLUtil.isLastAPIOfFrame(logData.getApiName())) {
+                               currentFrameIndexOfAPI++;
+                       }
+               }
                apiDBTable.insert(insetAPIDataList);
+       }
+
+       private void addFrameTimeChartDBData(Logs glesLogs) {
+               int currentFrameIndexOfFrameTime = currentFrameIndex;
+               List<List<Object>> insetFrameTimeChartDataList = new ArrayList<List<Object>>();
+               GLCurrentFrameDataManger currentFrameData = new GLCurrentFrameDataManger();
+               for (LogData data : glesLogs.getRawLogs()) {
+                       GLES20LogData logData = (GLES20LogData) data;
+                       currentFrameData.addAPIData(new GLAPIType(logData,
+                                       currentFrameIndexOfFrameTime));
+                       if (GLUtil.isLastAPIOfFrame(logData.getApiName())) {
+                               makeFrameTimeData(insetFrameTimeChartDataList,
+                                               currentFrameData, currentFrameIndexOfFrameTime);
+                               currentFrameIndexOfFrameTime++;
+                       }
+               }
                frameTimeDBTable.insertData(insetFrameTimeChartDataList);
+       }
+
+       private void addFrameRateChartDBData(Logs glesLogs) {
+               int currentFrameIndexOfFrameRate = currentFrameIndex;
+               boolean hasFailedAPIofCurrentFrame = false;
+               for (LogData data : glesLogs.getRawLogs()) {
+                       GLES20LogData logData = (GLES20LogData) data;
+                       if (checkFailedAPI(logData)) {
+                               hasFailedAPIofCurrentFrame = true;
+                       }
+                       if (GLUtil.isLastAPIOfFrame(logData.getApiName())) {
+                               makeFrameRateChartDataList(logData,
+                                               currentFrameIndexOfFrameRate,
+                                               hasFailedAPIofCurrentFrame);
+                               hasFailedAPIofCurrentFrame = false;
+                               currentFrameIndexOfFrameRate++;
+                       }
+               }
                insertTraceFrameChartData((GLES20LogData) glesLogs.getRawLogs().get(
                                glesLogs.getRawLogs().size() - 1));
        }
@@ -152,15 +220,14 @@ public class GLDataManager extends PageDataManager {
        private boolean checkFailedAPI(GLES20LogData logData) {
                if (logData.getErrno() != GLES20ErrorDefine.EGL_SUCCESS
                                && logData.getErrno() != GLES20ErrorDefine.GL_SUCCESS) {
-                       SummaryDataManager.getInstance().getFailedApiDataMaker()
-                                       .makeData(logData);
                        return true;
                } else {
                        return false;
                }
        }
 
-       private void makeFrameRateChartDataList(GLES20LogData logData) {
+       private void makeFrameRateChartDataList(GLES20LogData logData,
+                       int currentFrameIndexOfFrameRate, boolean hasFailedAPIofCurrentFrame) {
                int time = GLUtil.getTimeLineTime(logData);
                for (FrameRateInfo data : frameRateDataList) {
                        if (data.getTime() == time) {
@@ -170,14 +237,14 @@ public class GLDataManager extends PageDataManager {
                }
                FrameRateInfo frameRateData = new FrameRateInfo();
                frameRateData.setTime(GLUtil.getTimeLineTime(logData));
-               frameRateData.setStartFrameIndex(currentFrameIndex);
-               frameRateData.setErrno(false);
+               frameRateData.setStartFrameIndex(currentFrameIndexOfFrameRate);
+               frameRateData.setErrno(hasFailedAPIofCurrentFrame);
                frameRateData.setPid(logData.getPid());
                frameRateData.addFrameCount();
                frameRateDataList.add(frameRateData);
        }
 
-       public void insertTraceFrameChartData(GLES20LogData lastLog) {
+       private void insertTraceFrameChartData(GLES20LogData lastLog) {
                List<List<Object>> insetData = new ArrayList<List<Object>>();
                List<FrameRateInfo> removeframeInfoList = new ArrayList<FrameRateInfo>();
                for (FrameRateInfo data : frameRateDataList) {
@@ -200,12 +267,12 @@ public class GLDataManager extends PageDataManager {
 
        private void makeFrameTimeData(
                        List<List<Object>> insetFrameTimeChartDataList,
-                       GLCurrentFrameDataManger glCurrentFrameData) {
-               int frameNumber = currentFrameIndex;
+                       GLCurrentFrameDataManger glCurrentFrameData,
+                       int currentFrameIndexOfFrameTime) {
                long frameValue = glCurrentFrameData.getFrametime()
                                / TimelineConstants.KILO_LONG;
                List<Object> framTimeChartData = new ArrayList<Object>();
-               framTimeChartData.add(frameNumber);
+               framTimeChartData.add(currentFrameIndexOfFrameTime);
                framTimeChartData.add(GLUtil.getTimeLineTime(glCurrentFrameData
                                .getFirstLogData()));
                framTimeChartData.add((int) frameValue);
@@ -217,14 +284,33 @@ public class GLDataManager extends PageDataManager {
                insetFrameTimeChartDataList.add(framTimeChartData);
        }
 
+       public void updateSharingContextList() {
+               this.sharingContextList = GLDataManager.getInstance()
+                               .getStateSharingDBTableManage().selectSharingData();
+       }
+
+       public boolean isSharingData(long itemContextId) {
+               if (null == sharingContextList) {
+                       return false;
+               }
+               for (int i = 0; i < sharingContextList.size(); i++) {
+                       long contextId = sharingContextList.get(i).getContextId();
+                       long sharingContextId = sharingContextList.get(i)
+                                       .getSharingContextId();
+                       if (contextId == selectedContextID
+                                       && sharingContextId == itemContextId) {
+                               return true;
+                       }
+               }
+               return false;
+       }
+
        public int getFrameSize() {
                return currentFrameIndex;
        }
 
-       private void updateFrameTimeChartEndTime() {
-               if (currentFrameIndex == 1) {
-                       currentFrameIndex = frameTimeDBTable.getFrameSize();
-               }
+       private void updateFrameTimeChartEndTimeAtOpen() {
+               currentFrameIndex = frameTimeDBTable.getFrameSize();
        }
 
        public FrameRateInfo getFrameRateStartIndex(int startIndex, int endIndex) {
@@ -244,7 +330,7 @@ public class GLDataManager extends PageDataManager {
        }
 
        public GLStateDataMaker getStateDataMake() {
-               return GLStateDataMaker;
+               return stateDataMaker;
        }
 
        public GLFrameRateDBTableManager getFrameRateDBTableManager() {
@@ -256,7 +342,7 @@ public class GLDataManager extends PageDataManager {
        }
 
        public GLStateDBTableManager getContextDBTableManage() {
-               return contextDBTable;
+               return stateDBTable;
        }
 
        public GLStateProgramDBTableManager getStateProgramDBTableManage() {
@@ -291,25 +377,4 @@ public class GLDataManager extends PageDataManager {
                this.startFrameRateTime = startFrameRateTime;
        }
 
-       public void updateSharingContextList() {
-               this.sharingContextList = GLDataManager.getInstance()
-                               .getStateSharingDBTableManage().selectSharingData();
-       }
-
-       public boolean isSharingData(long itemContextId) {
-               if (null == sharingContextList) {
-                       return false;
-               }
-               for (int i = 0; i < sharingContextList.size(); i++) {
-                       long contextId = sharingContextList.get(i).getContextId();
-                       long sharingContextId = sharingContextList.get(i)
-                                       .getSharingContextId();
-                       if (contextId == GLDataManager.getInstance().getSelectedContextID()
-                                       && sharingContextId == itemContextId) {
-                               return true;
-                       }
-               }
-               return false;
-       }
-
 }
index c717aab..eee3d16 100644 (file)
@@ -64,7 +64,7 @@ import org.tizen.dynamicanalyzer.widgets.button.DACustomButtonClickEventListener
 
 public class GLContextTable extends DATableComposite {
 
-       private final static String STATE_CHANDE = "STATE_CHANDE";//$NON-NLS-1$
+       private final static String STATE_CHANGE = "STATE_CHANGE";//$NON-NLS-1$
        private boolean isCheckedBox = true;
        private String selectedSeq = CommonConstants.EMPTY;
        private List<String> stateValueList = null;
@@ -111,7 +111,7 @@ public class GLContextTable extends DATableComposite {
                                                + table.getColumn(1).getWidth();
 
                                if (secondeColumnStartX <= e.x && e.x <= secondeColumnEndX
-                                               && gridItem.getText(3).equals(STATE_CHANDE)) {
+                                               && gridItem.getText(3).equals(STATE_CHANGE)) {
                                        String stateName = gridItem.getText(0);
                                        createNaviButtons(gridItem, stateName);
                                } else {
@@ -172,7 +172,7 @@ public class GLContextTable extends DATableComposite {
                                                        CommonConstants.OPEN_SQUARE_BRACKET,
                                                        CommonConstants.CLOSE_SQUARE_BRACKET }));
                        if (isChangeStateValue(defaultState, currenteState)) {
-                               text.add(STATE_CHANDE);
+                               text.add(STATE_CHANGE);
                        } else {
                                text.add(CommonConstants.EMPTY);
                        }