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