external system: print to log elapsed time
authorFedor Korotkov <fedor.korotkov@gmail.com>
Thu, 3 Sep 2015 07:35:29 +0000 (10:35 +0300)
committernik <Nikolay.Chashnikov@jetbrains.com>
Thu, 3 Sep 2015 07:40:07 +0000 (10:40 +0300)
platform/external-system-impl/src/com/intellij/openapi/externalSystem/service/project/manage/ProjectDataManager.java

index d1a8457fda11fab638af4f904f020b31cb40fe47..9f595556800c6bd3a0a176d229e094fe92f975db 100644 (file)
@@ -200,12 +200,15 @@ public class ProjectDataManager {
     }
     else {
       for (ProjectDataService<?, ?> service : services) {
+        final long importStartTime = System.currentTimeMillis();
         if (service instanceof ProjectDataServiceEx) {
           ((ProjectDataServiceEx<T, ?>)service).importData(toImport, projectData, project, platformFacade, synchronous);
         }
         else {
           ((ProjectDataService<T, ?>)service).importData(toImport, project, synchronous);
         }
+        final long importTimeInSeconds = (System.currentTimeMillis() - importStartTime) / 1000;
+        LOG.debug(String.format("Service %s imported data in %d seconds", service.getClass().getSimpleName(), importTimeInSeconds));
       }
     }
 
@@ -214,10 +217,14 @@ public class ProjectDataManager {
     if (services != null && projectData != null) {
       for (ProjectDataService<?, ?> service : services) {
         if (service instanceof ProjectDataServiceEx) {
+          final long removeStartTime = System.currentTimeMillis();
           final ProjectDataServiceEx dataServiceEx = (ProjectDataServiceEx)service;
           final Computable<Collection<?>> orphanIdeDataComputable =
             dataServiceEx.computeOrphanData(toImport, projectData, project, platformFacade);
           dataServiceEx.removeData(orphanIdeDataComputable, toIgnore, projectData, project, platformFacade, synchronous);
+          final long removeTimeInSeconds = (System.currentTimeMillis() - removeStartTime) / 1000;
+          LOG.debug(String.format("Service %s computed and removed data in %d seconds",
+                                  service.getClass().getSimpleName(), removeTimeInSeconds));
         }
       }
     }
@@ -255,6 +262,7 @@ public class ProjectDataManager {
                                 boolean synchronous) {
     List<ProjectDataService<?, ?>> services = myServices.getValue().get(key);
     for (ProjectDataService service : services) {
+      final long removeStartTime = System.currentTimeMillis();
       if (service instanceof ProjectDataServiceEx) {
         ((ProjectDataServiceEx)service).removeData(new Computable.PredefinedValueComputable<Collection>(toRemove),
                                                    toIgnore, projectData, project, platformFacade, synchronous);
@@ -262,6 +270,8 @@ public class ProjectDataManager {
       else {
         service.removeData(toRemove, project, synchronous);
       }
+      final long removeTimeInSeconds = (System.currentTimeMillis() - removeStartTime) / 1000;
+      LOG.debug(String.format("Service %s removed data in %d seconds", service.getClass().getSimpleName(), removeTimeInSeconds));
     }
   }