# Global Metrics

path: .metrics.halstead.difficulty
old: 11.940298507462687
new: 5.75
path: .metrics.halstead.n2
old: 67.0
new: 18.0
path: .metrics.halstead.level
old: 0.08374999999999999
new: 0.17391304347826086
path: .metrics.halstead.n1
old: 16.0
new: 9.0
path: .metrics.halstead.estimated_program_length
old: 470.42797576067073
new: 103.58797503894242
path: .metrics.halstead.time
old: 1298.266736599341
new: 71.38935263664875
path: .metrics.halstead.N2
old: 100.0
new: 23.0
path: .metrics.halstead.N1
old: 207.0
new: 24.0
path: .metrics.halstead.purity_ratio
old: 1.5323386832595138
new: 2.2039994689136684
path: .metrics.halstead.length
old: 307.0
new: 47.0
path: .metrics.halstead.volume
old: 1957.1371054235055
new: 223.47971260168305
path: .metrics.halstead.bugs
old: 0.2724601775876338
new: 0.039398774309435385
path: .metrics.halstead.vocabulary
old: 83.0
new: 27.0
path: .metrics.halstead.effort
old: 23368.80125878813
new: 1285.0083474596777
path: .metrics.nom.functions
old: 3.0
new: 0.0
path: .metrics.nom.total
old: 3.0
new: 0.0
path: .metrics.cognitive.average
old: 0.0
new: null
path: .metrics.mi.mi_original
old: 46.68301266026313
new: 79.6980763026942
path: .metrics.mi.mi_sei
old: 33.800318255975924
new: 77.57080624789778
path: .metrics.mi.mi_visual_studio
old: 27.30000740366265
new: 46.60706216531825
path: .metrics.nargs.average
old: 0.0
new: null
path: .metrics.nexits.average
old: 0.6666666666666666
new: null
path: .metrics.nexits.sum
old: 2.0
new: 0.0
path: .metrics.cyclomatic.sum
old: 7.0
new: 2.0
path: .metrics.loc.cloc
old: 68.0
new: 15.0
path: .metrics.loc.ploc
old: 72.0
new: 20.0
path: .metrics.loc.sloc
old: 171.0
new: 48.0
path: .metrics.loc.blank
old: 31.0
new: 13.0
path: .metrics.loc.lloc
old: 2.0
new: 0.0

# Spaces Data

## Minimal test - lines (20, 39)

path: .spaces[0].metrics.halstead.difficulty
old: 12.129032258064516
new: 5.7
path: .spaces[0].metrics.halstead.level
old: 0.08244680851063829
new: 0.17543859649122806
path: .spaces[0].metrics.halstead.bugs
old: 0.2691715938326667
new: 0.03546925239324862
path: .spaces[0].metrics.halstead.N2
old: 94.0
new: 19.0
path: .spaces[0].metrics.halstead.purity_ratio
old: 1.4390703363587585
new: 2.074587713026395
path: .spaces[0].metrics.halstead.time
old: 1274.8327625841466
new: 60.980001259591376
path: .spaces[0].metrics.halstead.vocabulary
old: 78.0
new: 24.0
path: .spaces[0].metrics.halstead.N1
old: 207.0
new: 23.0
path: .spaces[0].metrics.halstead.n1
old: 16.0
new: 9.0
path: .spaces[0].metrics.halstead.length
old: 301.0
new: 42.0
path: .spaces[0].metrics.halstead.effort
old: 22946.98972651464
new: 1097.6400226726448
path: .spaces[0].metrics.halstead.n2
old: 62.0
new: 15.0
path: .spaces[0].metrics.halstead.estimated_program_length
old: 433.1601712439862
new: 87.13268394710859
path: .spaces[0].metrics.halstead.volume
old: 1891.9060678775368
new: 192.56842503028855
path: .spaces[0].metrics.cyclomatic.sum
old: 6.0
new: 1.0
path: .spaces[0].metrics.nexits.sum
old: 2.0
new: 0.0
path: .spaces[0].metrics.nexits.average
old: 0.6666666666666666
new: null
path: .spaces[0].metrics.nargs.average
old: 0.0
new: null
path: .spaces[0].metrics.cognitive.average
old: 0.0
new: null
path: .spaces[0].metrics.nom.total
old: 3.0
new: 0.0
path: .spaces[0].metrics.nom.functions
old: 3.0
new: 0.0
path: .spaces[0].metrics.loc.ploc
old: 64.0
new: 13.0
path: .spaces[0].metrics.loc.blank
old: 28.0
new: 4.0
path: .spaces[0].metrics.loc.sloc
old: 146.0
new: 20.0
path: .spaces[0].metrics.loc.cloc
old: 54.0
new: 3.0
path: .spaces[0].metrics.loc.lloc
old: 2.0
new: 0.0
path: .spaces[0].metrics.mi.mi_visual_studio
old: 29.034973217045614
new: 55.48818077953985
path: .spaces[0].metrics.mi.mi_original
old: 49.649804201148
new: 94.88478913301314
path: .spaces[0].metrics.mi.mi_sei
old: 36.981191340168095
new: 89.52290627513655

### Code

    class nsMemoryInfoDumper : public nsIMemoryInfoDumper {
      virtual ~nsMemoryInfoDumper();

     public:
      NS_DECL_ISUPPORTS
      NS_DECL_NSIMEMORYINFODUMPER

      nsMemoryInfoDumper();

      static void Initialize();

    #ifdef MOZ_DMD
      // Open an appropriately named file for a DMD report.  If DMD is
      // disabled, return a null FILE* instead.
      static nsresult OpenDMDFile(const nsAString& aIdentifier, int aPid,
                                  FILE** aOutFile);
      // Write a DMD report to the given file and close it.
      static nsresult DumpDMDToFile(FILE* aFile);
    #endif
    };