Document the fast timer testing apparatus a bit.

Thu, 29 Aug 2013 13:04:05 -0400

author
Monty Brandenberg <monty@lindenlab.com>
date
Thu, 29 Aug 2013 13:04:05 -0400
changeset 40719
2001bebae60f
parent 40718
1248eee75671
child 40720
2ebe6a72a502

Document the fast timer testing apparatus a bit.

indra/newview/llmeshrepository.cpp file | annotate | diff | revisions
     1.1 --- a/indra/newview/llmeshrepository.cpp	Thu Aug 29 12:19:33 2013 -0400
     1.2 +++ b/indra/newview/llmeshrepository.cpp	Thu Aug 29 13:04:05 2013 -0400
     1.3 @@ -268,6 +268,9 @@
     1.4  //                   locally-generated 500 status.
     1.5  //   0x08            As with 0x04 but for the upload operation.
     1.6  //
     1.7 +//   For major changes, see the LL_MESH_FASTTIMER_ENABLE below and
     1.8 +//   instructions for looking for frame stalls using fast timers.
     1.9 +//
    1.10  // *TODO:  Work list for followup actions:
    1.11  //   * Review anything marked as unsafe above, verify if there are real issues.
    1.12  //   * See if we can put ::run() into a hard sleep.  May not actually perform better
    1.13 @@ -346,15 +349,25 @@
    1.14  boost::signals2::connection metrics_teleport_started_signal;
    1.15  static void teleport_started();
    1.16  static bool is_retryable(LLCore::HttpStatus status);
    1.17 +
    1.18 +// Enable here or in build environment to get fasttimer data on mesh fetches.
    1.19 +//
    1.20 +// Typically, this is used to perform A/B testing using the
    1.21 +// fasttimer console (shift-ctrl-9).  This is done by looking
    1.22 +// for stalls due to lock contention between the main thread
    1.23 +// and the repository and HTTP code.  In a release viewer,
    1.24 +// these appear as ping-time or worse spikes in frame time.
    1.25 +// With this instrumentation enabled, a stall will appear
    1.26 +// under the 'Mesh Fetch' timer which will be either top-level
    1.27 +// or under 'Render' time.
    1.28 +#define LL_MESH_FASTTIMER_ENABLE		1
    1.29 +#if LL_MESH_FASTTIMER_ENABLE
    1.30  static LLFastTimer::DeclareTimer FTM_MESH_FETCH("Mesh Fetch");
    1.31  
    1.32 -// Enable here or in build environment to get fasttimer data on mesh fetches.
    1.33 -#define LL_FASTTIMER_MESH_ENABLE		1
    1.34 -#if LL_FASTTIMER_MESH_ENABLE
    1.35  #define	MESH_FASTTIMER_DEFBLOCK			LLFastTimer meshtimer(FTM_MESH_FETCH)
    1.36  #else
    1.37  #define	MESH_FASTTIMER_DEFBLOCK
    1.38 -#endif // LL_FASTTIMER_MESH_ENABLE
    1.39 +#endif // LL_MESH_FASTTIMER_ENABLE
    1.40   
    1.41  //get the number of bytes resident in memory for given volume
    1.42  U32 get_volume_memory_size(const LLVolume* volume)

mercurial