f84bcb27620a7a967da8083791faca25dd2f0dd7
galt
  Wed Mar 30 14:36:27 2016 -0700
Suppressing measureTiming track output averages when NOT in virtMode since these are redundant.

diff --git src/hg/hgTracks/hgTracks.c src/hg/hgTracks/hgTracks.c
index 3ba902a..92aca84 100644
--- src/hg/hgTracks/hgTracks.c
+++ src/hg/hgTracks/hgTracks.c
@@ -6947,72 +6947,102 @@
 
 static int avgDrawTime(struct track *track)
 /* calculate average drawtime across all windows */
 {
 int totalDrawTime = 0;
 int winCount = 0;
 while(track)
     {
     ++winCount;
     totalDrawTime += track->drawTime;
     track = track->nextWindow;
     }
 return (((float)totalDrawTime / winCount) + 0.5);
 }
 
+static int avgWigMafLoadTime(struct track *track)
+/* calculate average wigMaf loadtime across all windows */
+{
+int totalLoadTime = 0;
+int winCount = 0;
+while(track)
+    {
+    ++winCount;
+    if (startsWith("wigMaf", track->tdb->type))
+	if (track->subtracks)
+	    if (track->subtracks->loadTime)
+		totalLoadTime += track->subtracks->loadTime;
+    track = track->nextWindow;
+    }
+return (((float)totalLoadTime / winCount) + 0.5);
+}
+
 static void printTrackTiming()
 {
 hPrintf("<span class='trackTiming'>track, load time, draw time, total (first window)<br />\n");
+if (virtMode)
     hPrintf("<span class='trackTiming'><idiv style='color:red' >average for all windows in red</idiv><br />\n");
 struct track *track;
 for (track = trackList; track != NULL; track = track->next)
     {
     if (track->visibility == tvHide)
         continue;
     if (trackIsCompositeWithSubtracks(track))  //TODO: Change when tracks->subtracks are always set for composite
         {
         struct track *subtrack;
         for (subtrack = track->subtracks; subtrack != NULL;
              subtrack = subtrack->next)
             if (isSubtrackVisible(subtrack))
 		{
                 hPrintf("%s, %d, %d, %d<br />\n", subtrack->shortLabel,
                             subtrack->loadTime, subtrack->drawTime,
                             subtrack->loadTime + subtrack->drawTime);
+		if (virtMode)
+		    {
 		    int avgLoad = avgLoadTime(subtrack);
 		    int avgDraw = avgDrawTime(subtrack);
 		    hPrintf("<idiv style='color:red' >%s, %d, %d, %d</idiv><br />\n", subtrack->shortLabel,
 				avgLoad, avgDraw,
 				avgLoad + avgDraw);
 		    }
 		}
+        }
     else
         {
         hPrintf("%s, %d, %d, %d<br />\n",
 		    track->shortLabel, track->loadTime, track->drawTime,
 		    track->loadTime + track->drawTime);
-	int avgLoad = avgLoadTime(track);
-	int avgDraw = avgDrawTime(track);
-	hPrintf("<idiv style='color:red' >%s, %d, %d, %d</idiv><br />\n", track->shortLabel,
-		    avgLoad, avgDraw,
-		    avgLoad + avgDraw);
         if (startsWith("wigMaf", track->tdb->type))
             if (track->subtracks)
                 if (track->subtracks->loadTime)
                     hPrintf("&nbsp; &nbsp; %s wiggle, load %d<br />\n",
                                 track->shortLabel, track->subtracks->loadTime);
         }
+	if (virtMode)
+	    {
+	    int avgLoad = avgLoadTime(track);
+	    int avgDraw = avgDrawTime(track);
+	    hPrintf("<idiv style='color:red' >%s, %d, %d, %d</idiv><br />\n", track->shortLabel,
+			avgLoad, avgDraw,
+			avgLoad + avgDraw);
+	    int avgWigMafLoad = avgWigMafLoadTime(track);
+	    if (avgWigMafLoad > 0)
+		{
+		hPrintf("<idiv style='color:red' >&nbsp; &nbsp; %s wiggle, load %d</idiv><br />\n",
+			    track->shortLabel, avgWigMafLoad);
+		}
+	    }
     }
 hPrintf("</span>\n");
 }
 
 void initTrackList()
 /* need to init tracklist, sometimes early */
 {
 if (!trackList)
     { 
     if (measureTiming)
 	measureTime("Time before getTrackList");
     boolean defaultTracks = cgiVarExists("hgt.reset");
     trackList = getTrackList(&groupList, defaultTracks ? -1 : -2);
     if (measureTiming)
 	measureTime("getTrackList");