[Title]Add information for performance
authorshihyun <shihyun@shihyun-Samsung-Desktop-System.(none)>
Mon, 29 Jul 2013 08:19:33 +0000 (17:19 +0900)
committershihyun <shihyun@shihyun-Samsung-Desktop-System.(none)>
Mon, 29 Jul 2013 08:19:33 +0000 (17:19 +0900)
InstallManager_java/src/org/tizen/installmanager/core/InstallManager.java
InstallManager_java/src/org/tizen/installmanager/core/Options.java
InstallManager_java/src/org/tizen/installmanager/core/Performance.java
InstallManager_java/src/org/tizen/installmanager/ui/InstallManagerWindow.java
InstallManager_java/src/org/tizen/installmanager/ui/page/ViewController.java

index 68e9565..823b9e4 100644 (file)
@@ -711,6 +711,9 @@ public class InstallManager {
                        InstallProgressMonitor monitor) throws IMExitException, IMNetworkException{
                Log.log("InstallManager.install() installable packages : " + installablePackages);
                
+               //performance measurement
+               Performance.sdkPackageSize = packageManager.getTotalSizeOfInstallablePackages(installablePackages, true);
+               
                if (installablePackages == null || targetDir == null || targetDir.isEmpty()) {
                        Log.err("packaegs => " + installablePackages + ", targetDir => "
                                        + targetDir);
@@ -719,6 +722,8 @@ public class InstallManager {
                
                mConfig.setTargetDir(targetDir);
                
+               Performance.setDownloadStartTime();
+               
                // download packages from repository
                if (downloadPackages(installablePackages, monitor)) {
                        Log.log("Success to download packages from repository.");
@@ -740,7 +745,10 @@ public class InstallManager {
                                }
                        }
                }
+               
+               Performance.setDownloadEndTime();
 
+               Performance.setInstallationStartTime();
                // save target directory
                initializeTargetDir(targetDir);
                
@@ -841,6 +849,8 @@ public class InstallManager {
                        ErrorController.setInfoCode(InfoCode.RESTART_THE_COMPUTER);
                }
                
+               Performance.setInstallationEndTime();
+               
                return true;
        }
        
index 004e682..2d5b391 100644 (file)
@@ -117,10 +117,8 @@ public class Options {
        public static boolean printDepGraph = false;
        
        /**
-        * Initialize and exit install-manager for test.
-        */
-       public static boolean doInitTest = false;
-       
+        * start installmanager test
+        */     
        public static boolean doTest = false;
        
        /**
@@ -334,8 +332,6 @@ public class Options {
                                        Log.err("-distribution requires distribution description");
                                        throw new IMFatalException(OptionConstant.MSG_DISTRIBUTION_NOT_PROVIDED);
                                }
-                       } else if (arg.equals(OptionConstant.OPTION_INIT_TEST)) {
-                               doInitTest = true;
                        } else if (arg.equals(OptionConstant.OPTION_TEST)) {
                                doTest = true;
                        } else if (arg.equals("-removeOldSDK")) {
index b6d9875..1ea8739 100644 (file)
@@ -11,11 +11,31 @@ import org.tizen.installmanager.lib.Log;
 import org.tizen.installmanager.util.PathUtil;
 
 public class Performance {
+       //total time
        private static Date imStartTime = null;
        private static Date imEndTime = null;
+       
+       //initialize time
+       private static Date initializeStartTime = null;
+       private static Date initializeEndTime = null;
+       
+       //download time
+       private static Date downloadStartTime = null;
+       private static Date downloadEndTime = null;
+       
+       
+       //installation time
        private static Date installationStartTime = null;
        private static Date installationEndTime = null;
        
+       //uninstallation time
+       private static Date uninstallStartTime = null;
+       private static Date uninstallEndTime = null;
+       
+       //information
+       public static long sdkPackageSize = 0; 
+       
+       
        public static void setIMStartTime() {
                imStartTime = new Date();
        }
@@ -24,6 +44,22 @@ public class Performance {
                imEndTime = new Date();
        }
        
+       public static void setInitializeStartTime() {
+               initializeStartTime = new Date();
+       }
+       
+       public static void setInitializeEndTime() {
+               initializeEndTime = new Date();
+       }
+       
+       public static void setDownloadStartTime() {
+               downloadStartTime = new Date();
+       }
+       
+       public static void setDownloadEndTime() {
+               downloadEndTime = new Date();
+       }
+       
        public static void setInstallationStartTime() {
                installationStartTime = new Date();
        }
@@ -32,13 +68,21 @@ public class Performance {
                installationEndTime = new Date();
        }
        
+       public static void setUninstallStartTime() {
+               uninstallStartTime = new Date();
+       }
+       
+       public static void setUninstallEndTime() {
+               uninstallEndTime = new Date();
+       }
+       
        public static void printToLogFile() {
                Log.log("The installmanager start time : " + imStartTime);
                Log.log("The installmanager end time : " + imEndTime);
                Log.log("The installation start time : " + installationStartTime);
                Log.log("The installation end time : " + installationEndTime);
                
-               long progressSecond = getProgressTimeOfInstallation()/1000;
+               long progressSecond = getInstallationTime()/1000;
                
                if (progressSecond >= 0) {
                        Log.log("The progress time of the installation : About " + progressSecond/60 + " minutes"
@@ -64,20 +108,27 @@ public class Performance {
                try {
                        out = new BufferedWriter(new FileWriter(testResultFile));
                        
-                       out.write("*** InstallManager performance test ***");
+                       out.write("***  InstallManager performance test ***");
+                       out.newLine();
+                       out.write("The initialization time\t: " + getInitializeTime() + "sec");
+                       out.write("(" + getBitPerSecond(sdkPackageSize, getInitializeTime())+ "b/s)");
                        out.newLine();
+                       out.write("The download time\t: " + getDownloadTime() + "sec");
+                       out.write("(" + getBitPerSecond(sdkPackageSize, getDownloadTime())+ "b/s)");
                        out.newLine();
-                       out.write("The installmanager start time\t: " + imStartTime);
+                       out.write("The installation time\t: " + getInstallationTime() + "sec");
+                       out.write("(" + getBitPerSecond(sdkPackageSize, getInstallationTime())+ "b/s)");
                        out.newLine();
-                       out.write("The installmanager end time\t: " + imEndTime);
+                       out.write("The removal time\t: " + getUninstallTime() + "sec");
+                       out.write("(" + getBitPerSecond(sdkPackageSize, getUninstallTime())+ "b/s)");
                        out.newLine();
-                       out.write("The installation start time\t: " + installationStartTime);
+                       out.write("The install-manager start time\t: " + imStartTime);
                        out.newLine();
-                       out.write("The installation end time\t: " + installationEndTime);
+                       out.write("The install-manager end time\t: " + imEndTime);
                        out.newLine();
                        out.newLine();
                        
-                       long progressSecond = getProgressTimeOfInstallation()/1000;
+                       long progressSecond = getTotalTime();
                        
                        if (progressSecond >= 0) {
                                out.write("* Total time to install : About " + progressSecond/60 + " minutes"
@@ -101,12 +152,56 @@ public class Performance {
                }
        }
        
-       private static long getProgressTimeOfInstallation() {
+       private static long getInitializeTime() {
+               if (initializeStartTime == null || initializeEndTime == null) {
+                       return 0;
+               }
+               
+               long interval = (initializeEndTime.getTime() - initializeStartTime.getTime())/1000;
+               return interval;
+       }
+       
+       private static long getDownloadTime() {
+               if (downloadStartTime == null || downloadEndTime == null) {
+                       return 0;
+               }
+               
+               long interval = (downloadEndTime.getTime() - downloadStartTime.getTime())/1000;
+               return interval;
+       }
+       
+       private static long getTotalTime() {
+               if (imStartTime == null || imEndTime == null) {
+                       return 0;
+               }
+               
+               long interval = (imEndTime.getTime() - imStartTime.getTime())/1000;
+               return interval;
+       }
+       
+       private static long getInstallationTime() {
                if (installationStartTime == null || installationEndTime == null) {
-                       return -1;
+                       return 0;
                }
                
-               long interval = installationEndTime.getTime() - installationStartTime.getTime();
+               long interval = (installationEndTime.getTime() - installationStartTime.getTime())/1000;
                return interval;
        }
+       
+       private static long getUninstallTime() {
+               if (uninstallStartTime == null || uninstallEndTime == null) {
+                       return 0;
+               }
+               
+               long interval = (uninstallEndTime.getTime() - uninstallStartTime.getTime())/1000;
+               return interval;
+       }
+       
+       private static long getBitPerSecond(long size, long seconds) {
+               if (seconds == 0) {
+                       return 0;
+               } else {
+                       return size/seconds;
+               }
+       }
 }
index fb743c7..0ce899a 100644 (file)
@@ -170,9 +170,7 @@ public class InstallManagerWindow extends ApplicationWindow {
                shell.getDisplay().asyncExec(new Runnable(){
                        public void run() {                             
                                //initialize installmanager
-                               if (!Options.doInitTest) {
-                                       progressbar.updateName("Connecting to package server.\nIt may take a minute...");
-                               }
+                               progressbar.updateName("Connecting to package server.\nIt may take a minute...");
                                
                                shell.getDisplay().asyncExec(new Runnable() {
                                        public void run() {
@@ -182,16 +180,12 @@ public class InstallManagerWindow extends ApplicationWindow {
                                });
                                
                                //init end
-                               if (!Options.doInitTest) {
-                                       progressbar.finish();
-                               }
+                               progressbar.finish();
                        }
                });
                
                if (!shell.isDisposed()) {
-                       if (!Options.doInitTest) {
-                               progressbar.open();
-                       }
+                       progressbar.open();
                }
 
                Log.log("Window init end");
@@ -817,7 +811,9 @@ public class InstallManagerWindow extends ApplicationWindow {
         * @param args
         */
        public static void main(String args[]) {
+               //performance measurement
                Performance.setIMStartTime();
+               
                InstallManager.deleteTempFile();
                
                Log.open();
@@ -872,10 +868,6 @@ public class InstallManagerWindow extends ApplicationWindow {
                        
                        window.init();
                        
-                       if (Options.doInitTest) {
-                               System.exit(0);
-                       }
-                       
                        Log.log("after init");
                        if (Options.checkPackageUpdate) {
                                checkMetaPackageUpdate();
@@ -928,6 +920,7 @@ public class InstallManagerWindow extends ApplicationWindow {
                                ProgramController.createProgramController().removeSDKTempDir();
                        }
                        
+                       //performance measurement
                        Performance.setIMEndTime();
                        Performance.printToLogFile();
                        
index bde25a0..51e41a6 100644 (file)
@@ -288,9 +288,7 @@ public class ViewController {
         * @throws IMExitException 
         */
        public boolean install(Collection<String> installList, String targetPath,
-                       InstallProgressMonitor monitor) throws IMExitException {
-               Performance.setInstallationStartTime();
-               
+                       InstallProgressMonitor monitor) throws IMExitException {                
                Log.log("======== Start Installing ========");
                Log.log("Selected package list => " + installList);
                Log.log("target path => " + targetPath);
@@ -331,7 +329,6 @@ public class ViewController {
                        PathUtil.remove(Config.getInstance().getDownloadDirPath());
                }
                
-               Performance.setInstallationEndTime();
                return bResult;
        }
        
@@ -390,25 +387,36 @@ public class ViewController {
         * @return If uninstallation is succeed, return true. if not return false.
         * @see ViewController#uninstallPackages(PackageSet, IIMProgressMonitor)
         */
-       public boolean uninstall(List<String> uninstallList, IIMProgressMonitor monitor) {
-               Performance.setInstallationStartTime();
-               
+       public boolean uninstall(List<String> uninstallList, IIMProgressMonitor monitor) {              
                Log.log("ViewController Uninstall Start => " + uninstallList);
+               
+               //performance measurement
+               Performance.setUninstallStartTime();
                if (packageManager == null || uninstallList.size() == 0) {
                        Log.err("ViewController.uninstall() uninstalllist does not exist. => " + uninstallList);
                        ErrorController.setError(ErrorCode.UNKNOWN_ERROR);
+                       
+                       Performance.setUninstallEndTime();
                        return false;
                }
 
                if (Options.doRemoveOldSDK || (uninstallList.size() == 1 && uninstallList.get(0).equals(Config.SDK_NAME))) {
                        uninstallAll(monitor);
-                       Performance.setInstallationEndTime();
+                       
+                       //performance measurement
+                       Performance.setUninstallEndTime();
+                       
                        return true;
                } else {
                        PackageSet removablePackages = packageManager.getInstalledPackagesByName(uninstallList);
 
+                       //performance measurement
+                       Performance.sdkPackageSize = packageManager.getTotalSizeOfRemovablePackages(removablePackages);
+                       
                        boolean result = uninstallPackages(removablePackages, monitor);
-                       Performance.setInstallationEndTime();
+                       
+                       //performance measurement
+                       Performance.setUninstallEndTime();
                        return result;
                }
        }