21dc2336ca26affb02998997ca61a507cd7f302d
braney
  Fri Jul 5 09:36:13 2019 -0700
measure time of trackDb load separately from visibility settg

diff --git src/hg/hgTracks/hgTracks.c src/hg/hgTracks/hgTracks.c
index 32f3637..9ba550b 100644
--- src/hg/hgTracks/hgTracks.c
+++ src/hg/hgTracks/hgTracks.c
@@ -6834,30 +6834,32 @@
     if (matchTrack != NULL)
         tdbSetCartVisibility(matchTrack->tdb, cart, hCarefulTrackOpenVis(database, matchTrack->track));
     }
 }
 
 struct track *getTrackList( struct group **pGroupList, int vis)
 /* Return list of all tracks, organizing by groups.
  * If vis is -1, restore default groups to tracks.
  * Shared by hgTracks and configure page. */
 {
 struct track *track, *trackList = NULL;
 registerTrackHandlers();
 /* Load regular tracks, blatted tracks, and custom tracks.
  * Best to load custom last. */
 loadFromTrackDb(&trackList);
+if (measureTiming)
+    measureTime("Time after trackDbLoad ");
 if (pcrResultParseCart(database, cart, NULL, NULL, NULL))
     slSafeAddHead(&trackList, pcrResultTg());
 if (userSeqString != NULL)
     slSafeAddHead(&trackList, userPslTg());
 slSafeAddHead(&trackList, oligoMatchTg());
 if (restrictionEnzymesOk())
     {
     slSafeAddHead(&trackList, cuttersTg());
     }
 if (wikiTrackEnabled(database, NULL))
     {
     addWikiTrack(&trackList);
     struct sqlConnection *conn = wikiConnect();
     if (sqlTableExists(conn, "variome"))
         addVariomeWikiTrack(&trackList);
@@ -7493,31 +7495,31 @@
 	    }
     }
 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");
+	measureTime("Time after visibilities");
     makeGlobalTrackHash(trackList);
     }
 }
 
 struct track *getTrackListForOneTrack(char *trackName)
 /* Fetch trackList for a single trackName using hgt.trackNameFilter. */
 {
 struct track *saveTrackList = trackList;
 struct group *saveGroupList = groupList;
 char *saveTrackNameFilter = cloneString(cartOptionalString(cart, "hgt.trackNameFilter"));
 // This is an attempt to both get around the limitation imposed by ajax callback hgt.trackNameFilter,
 //  and also to try to optimize it a little so that callbacks only have to load a trackList containing
 //  only the emGeneTable.
 cartSetString(cart, "hgt.trackNameFilter", trackName);
 initTrackList(); // initialize trackList early if needed