# Global Metrics

path: .metrics.loc.cloc
old: 20.0
new: 12.0
path: .metrics.loc.sloc
old: 34.0
new: 37.0
path: .metrics.loc.ploc
old: 9.0
new: 19.0
path: .metrics.loc.blank
old: 5.0
new: 6.0
path: .metrics.halstead.difficulty
old: 5.090909090909091
new: 4.4
path: .metrics.halstead.purity_ratio
old: 1.9235077419804496
new: 1.6483367447424964
path: .metrics.halstead.estimated_program_length
old: 57.70523225941349
new: 110.43856189774723
path: .metrics.halstead.length
old: 30.0
new: 67.0
path: .metrics.halstead.volume
old: 125.09775004326936
new: 322.09277977785945
path: .metrics.halstead.vocabulary
old: 18.0
new: 28.0
path: .metrics.halstead.effort
old: 636.8612729475532
new: 1417.2082310225817
path: .metrics.halstead.N1
old: 14.0
new: 45.0
path: .metrics.halstead.N2
old: 16.0
new: 22.0
path: .metrics.halstead.level
old: 0.19642857142857145
new: 0.2272727272727273
path: .metrics.halstead.bugs
old: 0.02467413703165384
new: 0.04205663512451611
path: .metrics.halstead.n1
old: 7.0
new: 8.0
path: .metrics.halstead.n2
old: 11.0
new: 20.0
path: .metrics.halstead.time
old: 35.38118183041962
new: 78.73379061236565
path: .metrics.cyclomatic.sum
old: 4.0
new: 2.0
path: .metrics.mi.mi_visual_studio
old: 51.3693937161296
new: 47.96138227320326
path: .metrics.mi.mi_original
old: 87.84166325458162
new: 82.01396368717758
path: .metrics.mi.mi_sei
old: 97.81965482115234
new: 81.43269202093245

# Spaces Data

## Minimal test - lines (12, 35)

path: .spaces[0].metrics.mi.mi_visual_studio
old: null
new: 52.45228997186754
path: .spaces[0].metrics.mi.mi_sei
old: null
new: 86.28306107131311
path: .spaces[0].metrics.mi.mi_original
old: null
new: 89.69341585189349
path: .spaces[0].metrics.halstead.purity_ratio
old: null
new: 1.5723595242216128
path: .spaces[0].metrics.halstead.effort
old: 0.0
new: 1250.3169650255306
path: .spaces[0].metrics.halstead.time
old: 0.0
new: 69.46205361252947
path: .spaces[0].metrics.halstead.estimated_program_length
old: null
new: 99.0586500259616
path: .spaces[0].metrics.halstead.level
old: null
new: 0.23684210526315788
path: .spaces[0].metrics.halstead.bugs
old: 0.0
new: 0.03868644543189934
path: .spaces[0].metrics.halstead.N2
old: 1.0
new: 19.0
path: .spaces[0].metrics.halstead.n2
old: 1.0
new: 18.0
path: .spaces[0].metrics.halstead.length
old: 1.0
new: 63.0
path: .spaces[0].metrics.halstead.n1
old: 0.0
new: 8.0
path: .spaces[0].metrics.halstead.N1
old: 0.0
new: 44.0
path: .spaces[0].metrics.halstead.vocabulary
old: 1.0
new: 26.0
path: .spaces[0].metrics.halstead.volume
old: 0.0
new: 296.1277022428888
path: .spaces[0].metrics.halstead.difficulty
old: 0.0
new: 4.222222222222222
path: .spaces[0].metrics.loc.sloc
old: 1.0
new: 24.0
path: .spaces[0].metrics.loc.ploc
old: 1.0
new: 14.0
path: .spaces[0].metrics.loc.blank
old: 0.0
new: 5.0
path: .spaces[0].metrics.loc.cloc
old: 0.0
new: 5.0

### Code

    class nsTraceRefcnt {
     public:
      static void Shutdown();

      static nsresult DumpStatistics();

      static void ResetStatistics();

      static void WalkTheStack(FILE* aStream, uint32_t aMaxFrames = 0);
    #ifdef ANDROID
      static void WalkTheStack(void (*aWriter)(uint32_t, void*, void*, void*));
    #endif

      /**
       * Tell nsTraceRefcnt whether refcounting, allocation, and destruction
       * activity is legal.  This is used to trigger assertions for any such
       * activity that occurs because of static constructors or destructors.
       */
      static void SetActivityIsLegal(bool aLegal);

    #ifdef MOZ_ENABLE_FORKSERVER
      static void ResetLogFiles(const char* aProcType = nullptr);
    #endif
    };