Skip to content
Justin Randall edited this page Jan 17, 2018 · 9 revisions

Jobs

A job is a compilation request. A command line like:

cl /c a.cpp b.cpp

creates 2 jobs:

  • one for a.cpp
  • one for b.cpp

Job hit

The number of cache hits for job requests.

Job hit remote

Similar to job hit, except this counter increments when a job was resolved using the distributed Stash.

Job miss

The number of cache misses for job requests.

Job unsupported

The number of jobs that were discarded because some combination of options were not supported.

This happens, for example, when using PDB (program database with /Zi) and PCH (pre-compiled header with /Yc) options at the same time. Using PDB's and PCH's individually are supported, but not both options simultaneously. In this scenario, caching is disabled but compilation will still benefit from automatic multi-threading and the correct output will be generated.

Other unsupported options include:

  • /ZI: generating PDBs for edit and continue. This often does not work well for projects of any complexity and using /Zi or /Z7 is preferred.
  • /Fi: set pre-processed output file
  • /Fm: create a map file
  • /FR: generate a browse file

and options that generate no output like /Zs (syntax check only)

The statistics page in the dashboard will list a running count of unsupported jobs. To improve performance modify the build system to exclude the use of parameter combinations that force Stashed to abandon caching work.

Blobs

Blobs represent any compilation outputs: .obj, .pch, .pdb files.

A command line like:

cl /c /Yc a.cpp

would request 2 blobs:

  • one for a.obj
  • one for a.pch

Blob Hit

The number of cache hits for blob requests

Blob hit remote

Similar to blob hit, except this counter increments when a blob was fetched from the distributed Stash.

Blob Miss

The number of cache misses for blob requests

CPU Time

The CPU time is measured per job. The real compilation time might be shorter as jobs are run in parallel.

CPU Time Compiling

Time spent compiling. This time is often larger than real time as it measures time for jobs run in parallel. E.g.: 8 compile jobs that take 30 seconds each tallies 240 seconds of CPU compile time, but may finish around 30 seconds later because they each are running simultaneously.

CPU Time Saved

This is the time saved by fetching from the cache. It takes the real CPU time it took to generate the requested output then subtracts the time it took to locate the cache entry and return it to the user.