[GHC] #13535: vector test suite uses excessive memory on GHC 8.2

GHC ghc-devs at haskell.org
Thu Apr 13 22:58:54 UTC 2017


#13535: vector test suite uses excessive memory on GHC 8.2
-------------------------------------+-------------------------------------
        Reporter:  RyanGlScott       |                Owner:  (none)
            Type:  bug               |               Status:  new
        Priority:  highest           |            Milestone:  8.2.1
       Component:  Compiler          |              Version:  8.1
      Resolution:                    |             Keywords:
Operating System:  Unknown/Multiple  |         Architecture:
 Type of failure:  Compile-time      |  Unknown/Multiple
  performance bug                    |            Test Case:
      Blocked By:                    |             Blocking:
 Related Tickets:  #10800            |  Differential Rev(s):
       Wiki Page:                    |
-------------------------------------+-------------------------------------

Comment (by bgamari):

 I setup a test environment to build just `tests/Utilities.hs`,
 `tests/Boilerplater.hs`, and `tests/Tests/Vector.hs` with both GHC 8.3
 (13131ce9165b4e5e5193dc381f6f3d021e53792f and 8.0.2. In addition to
 building `Tests.Vector` as-is, I also built it enabling each of the
 testcases in the `tests` list individually (that is, commenting out all
 but one). The result is interesting: While compilation on `master` is
 significantly faster than 8.0.2 in the individual cases, it is
 significantly slower when all of the testcases are enabled. Clearly there
 is something non-linear going on here. I'm on the case.

 {{{
 Building Utilities, Boilerplater, and Tests.Vector of vector
 1d208ee9e3a252941ebd112e14e8cd5a982ac2bb

 GHC 8.3 (13131ce9165b4e5e5193dc381f6f3d021e53792f
 nothing:                                   <<ghc:   2925044864 bytes,
 278 GCs,  22310773/  86050104 avg/max bytes residency (10 samples),  185M
 in use, 0.001 INIT (0.001 elapsed),   3.107 MUT   (3.960 elapsed),   1.025
 GC  (1.047 elapsed) :ghc>>
 Data.Vector.Vector (Bool)                  <<ghc:  25467716144 bytes,
 1155 GCs,  89898567/ 202234368 avg/max bytes residency (19 samples),  558M
 in use, 0.000 INIT (0.000 elapsed),  23.601 MUT  (24.429 elapsed),   9.281
 GC  (9.277 elapsed) :ghc>>
 Data.Vector.Vector (Int)                   <<ghc:  25538028952 bytes,
 1060 GCs,  87592922/ 201496320 avg/max bytes residency (19 samples),  530M
 in use, 0.000 INIT (0.001 elapsed),  23.226 MUT  (24.239 elapsed),   8.672
 GC  (8.674 elapsed) :ghc>>
 Data.Vector.Primitive.Vector (Int)         <<ghc:  21588867344 bytes,
 1004 GCs,  78872219/ 167736032 avg/max bytes residency (18 samples),  468M
 in use, 0.000 INIT (0.000 elapsed),  20.046 MUT  (20.788 elapsed),   7.783
 GC  (7.779 elapsed) :ghc>>
 Data.Vector.Primitive.Vector (Double)      <<ghc:  22386494072 bytes,
 1070 GCs,  81997699/ 179105312 avg/max bytes residency (18 samples),  501M
 in use, 0.001 INIT (0.001 elapsed),  21.594 MUT  (22.527 elapsed),   8.253
 GC  (8.260 elapsed) :ghc>>
 Data.Vector.Storable.Vector (Int)          <<ghc:  22169976680 bytes,
 972 GCs,  80817260/ 175301760 avg/max bytes residency (18 samples),  476M
 in use, 0.000 INIT (0.000 elapsed),  21.496 MUT  (22.450 elapsed),   8.426
 GC  (8.433 elapsed) :ghc>>
 Data.Vector.Storable.Vector (Double)       <<ghc:  23029038616 bytes,
 1001 GCs,  85430763/ 193090296 avg/max bytes residency (18 samples),  521M
 in use, 0.001 INIT (0.001 elapsed),  22.058 MUT  (23.002 elapsed),   8.746
 GC  (8.769 elapsed) :ghc>>
 Data.Vector.Unboxed.Vector ()              <<ghc:  17260324632 bytes,
 797 GCs,  64556858/ 149284504 avg/max bytes residency (16 samples),  410M
 in use, 0.001 INIT (0.005 elapsed),  13.861 MUT  (14.588 elapsed),   4.881
 GC  (5.020 elapsed) :ghc>>
 Data.Vector.Unboxed.Vector (Bool)          <<ghc:  22619684880 bytes,
 918 GCs,  78584919/ 172329120 avg/max bytes residency (18 samples),  479M
 in use, 0.001 INIT (0.000 elapsed),  16.857 MUT  (17.451 elapsed),   6.200
 GC  (6.195 elapsed) :ghc>>
 Data.Vector.Unboxed.Vector (Int)           <<ghc:  22019118280 bytes,
 1077 GCs,  80830924/ 183396408 avg/max bytes residency (18 samples),  489M
 in use, 0.000 INIT (0.000 elapsed),  15.595 MUT  (16.157 elapsed),   6.095
 GC  (6.093 elapsed) :ghc>>
 Data.Vector.Unboxed.Vector (Double)        <<ghc:  22359631568 bytes,
 1046 GCs,  82354182/ 189338112 avg/max bytes residency (18 samples),  508M
 in use, 0.000 INIT (0.000 elapsed),  16.458 MUT  (17.004 elapsed),   6.365
 GC  (6.361 elapsed) :ghc>>
 Data.Vector.Unboxed.Vector (Int,Bool)      <<ghc:  34451441464 bytes,
 1265 GCs, 111090192/ 271240872 avg/max bytes residency (21 samples),  700M
 in use, 0.000 INIT (0.000 elapsed),  23.294 MUT  (24.014 elapsed),   9.330
 GC  (9.324 elapsed) :ghc>>
 Data.Vector.Unboxed.Vector (Int,Bool,Int)  <<ghc:  43613769744 bytes,
 1304 GCs, 129477158/ 317303208 avg/max bytes residency (23 samples),  813M
 in use, 0.001 INIT (0.000 elapsed),  29.817 MUT  (30.697 elapsed),  12.156
 GC (12.147 elapsed) :ghc>>
 everything                                 <<ghc: 264695216008 bytes,
 4003 GCs, 547291435/1356463272 avg/max bytes residency (35 samples), 3566M
 in use, 0.000 INIT (0.000 elapsed), 227.028 MUT (236.855 elapsed),  97.713
 GC (97.751 elapsed) :ghc>>


 GHC 8.0.2
 nothing                                    <<ghc:   3602875384 bytes,  424
 GCs,   19427090/  80066928 avg/max bytes residency (10 samples),  172M in
 use, 0.000 INIT (0.001 elapsed),   0.011 MUT   (2.709 elapsed),   0.001 GC
 (0.696 elapsed) :ghc>>
 Data.Vector.Vector (Bool)                  <<ghc:  36799624512 bytes, 1640
 GCs,  126755494/ 312669744 avg/max bytes residency (23 samples),  790M in
 use, 0.000 INIT (0.001 elapsed),   0.219 MUT  (27.706 elapsed),   0.069 GC
 (13.049 elapsed) :ghc>>
 Data.Vector.Vector (Int)                   <<ghc:  36339886904 bytes, 1640
 GCs,  122810903/ 305389720 avg/max bytes residency (24 samples),  758M in
 use, 0.000 INIT (0.001 elapsed),   0.242 MUT  (26.717 elapsed),   0.054 GC
 (12.381 elapsed) :ghc>>
 Data.Vector.Primitive.Vector (Int)         <<ghc:  37367710936 bytes, 1765
 GCs,  127647151/ 255413768 avg/max bytes residency (23 samples),  710M in
 use, 0.000 INIT (0.001 elapsed),   0.076 MUT  (28.191 elapsed),   0.036 GC
 (13.306 elapsed) :ghc>>
 Data.Vector.Primitive.Vector (Double)      <<ghc:  41169666648 bytes, 1936
 GCs,  136122135/ 336152832 avg/max bytes residency (24 samples),  837M in
 use, 0.000 INIT (0.001 elapsed),   0.149 MUT  (38.908 elapsed),   0.051 GC
 (17.125 elapsed) :ghc>>
 Data.Vector.Storable.Vector (Int)          <<ghc:  40219735080 bytes, 1978
 GCs,  132890651/ 362367016 avg/max bytes residency (24 samples),  858M in
 use, 0.000 INIT (0.002 elapsed),   0.875 MUT  (43.129 elapsed),   0.393 GC
 (18.668 elapsed) :ghc>>
 Data.Vector.Storable.Vector (Double)       <<ghc:  44209977992 bytes, 1993
 GCs,  140871502/ 369615896 avg/max bytes residency (25 samples),  887M in
 use, 0.000 INIT (0.001 elapsed),   0.155 MUT  (41.027 elapsed),   0.093 GC
 (18.374 elapsed) :ghc>>
 Data.Vector.Unboxed.Vector ()              <<ghc:  29436191560 bytes, 1532
 GCs,  102427352/ 241113128 avg/max bytes residency (21 samples),  636M in
 use, 0.000 INIT (0.001 elapsed),   0.278 MUT  (29.596 elapsed),   0.102 GC
 (11.599 elapsed) :ghc>>
 Data.Vector.Unboxed.Vector (Bool)          <<ghc:  40109059768 bytes, 1923
 GCs,  126872809/ 251075736 avg/max bytes residency (24 samples),  662M in
 use, 0.000 INIT (0.001 elapsed),   0.204 MUT  (38.656 elapsed),   0.044 GC
 (15.936 elapsed) :ghc>>
 Data.Vector.Unboxed.Vector (Int)           <<ghc:  38385729456 bytes, 1772
 GCs,  126917981/ 319870600 avg/max bytes residency (23 samples),  838M in
 use, 0.000 INIT (0.000 elapsed),   0.285 MUT  (36.855 elapsed),   0.075 GC
 (15.675 elapsed) :ghc>>
 Data.Vector.Unboxed.Vector (Double)        <<ghc:  41411280800 bytes, 1807
 GCs,  134424736/ 373355704 avg/max bytes residency (24 samples),  890M in
 use, 0.000 INIT (0.001 elapsed),   0.296 MUT  (40.076 elapsed),   0.180 GC
 (17.301 elapsed) :ghc>>
 Data.Vector.Unboxed.Vector (Int,Bool)      <<ghc:  64510301216 bytes, 2629
 GCs,  175595458/ 458265816 avg/max bytes residency (28 samples), 1148M in
 use, 0.000 INIT (0.001 elapsed),   0.354 MUT  (60.415 elapsed),   0.154 GC
 (26.855 elapsed) :ghc>>
 Data.Vector.Unboxed.Vector (Int,Bool,Int)  <<ghc:  82592190776 bytes, 2955
 GCs,  211131511/ 486148096 avg/max bytes residency (29 samples), 1259M in
 use, 0.000 INIT (0.001 elapsed),   0.440 MUT  (73.214 elapsed),   0.192 GC
 (33.230 elapsed) :ghc>>
 everything                                 <<ghc:  65784761184 bytes, 2602
 GCs,  180664844/ 403016968 avg/max bytes residency (29 samples),  994M in
 use, 0.000 INIT (0.001 elapsed),   0.469 MUT  (52.120 elapsed),   0.259 GC
 (24.801 elapsed) :ghc>>
 }}}

--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/13535#comment:7>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler


More information about the ghc-tickets mailing list