timotheecour / Nim

Nim is a compiled, garbage-collected systems programming language with a design that focuses on efficiency, expressiveness, and elegance (in that order of priority).
http://nim-lang.org/
Other
2 stars 0 forks source link

make windows CI faster #326

Open timotheecour opened 4 years ago

timotheecour commented 4 years ago

windows CI is the bottleneck; eg https://dev.azure.com/nim-lang/Nim/_build/results?buildId=6378&view=logs&jobId=1effb61f-3820-5ca5-606b-caa183b197b5&j=1effb61f-3820-5ca5-606b-caa183b197b5&t=f5fa2c17-e33f-5e55-c057-4657fef6c5dd

2020-06-25T18:49:01.1817084Z ##[section]Starting: Run CI
2020-06-25T18:49:01.1930733Z ==============================================================================
2020-06-25T18:49:01.1931068Z Task         : Bash
2020-06-25T18:49:01.1931367Z Description  : Run a Bash script on macOS, Linux, or Windows
2020-06-25T18:49:01.1931814Z Version      : 3.171.1
2020-06-25T18:49:01.1932184Z Author       : Microsoft Corporation
2020-06-25T18:49:01.1932514Z Help         : https://docs.microsoft.com/azure/devops/pipelines/tasks/utility/bash
2020-06-25T18:49:01.1932911Z ==============================================================================
2020-06-25T18:49:01.4049783Z Generating script.
2020-06-25T18:49:01.4209417Z [command]"C:\Program Files\Git\bin\bash.exe" --noprofile --norc -c pwd
2020-06-25T18:49:01.4553654Z /d/a/_temp
2020-06-25T18:49:01.4597875Z 
2020-06-25T18:49:01.4626755Z ========================== Starting Command Output ===========================
2020-06-25T18:49:01.4632823Z [command]"C:\Program Files\Git\bin\bash.exe" --noprofile --norc /d/a/_temp/540e971b-5058-4b43-b1bf-53105fd0f102.sh
2020-06-25T18:49:01.5290550Z runCI: 
2020-06-25T18:49:01.5291197Z hostOS: windows, hostCPU: amd64, int: 8, float: 8, cpuEndian: littleEndian, cwd: d:\a\1\s
2020-06-25T18:49:01.5295884Z ##[group]Boot in release mode
2020-06-25T18:51:49.3371093Z ##[group]Build Nimble
2020-06-25T18:52:07.7736523Z ##[group]Compile nimsuggest
2020-06-25T18:52:50.8837841Z ##[group]Compile nimgrep
2020-06-25T18:52:56.8868390Z ##[group]Compile Vcc
2020-06-25T18:52:59.4166557Z ##[group]Compile nimpretty
2020-06-25T18:53:09.1669027Z ##[group]Compile nimfind
2020-06-25T18:54:05.1734648Z ##[group]Compile testament
2020-06-25T18:54:19.9052357Z ##[group]Test nimscript
2020-06-25T18:54:21.7771210Z ##[group]Compile tester
2020-06-25T18:54:26.1649453Z ##[group]Run tester
2020-06-25T19:19:49.1000791Z ##[group]Run nimdoc tests
2020-06-25T19:19:55.5773457Z ##[group]Run nimpretty tests
2020-06-25T19:19:57.5281256Z 
2020-06-25T19:19:57.5375314Z ##[section]Finishing: Run CI

breakdown: the 2 big things are:

2020-06-25T18:49:01.5295884Z ##[group]Boot in release mode 2020-06-25T18:51:49.3371093Z ##[group]Build Nimble => 2m48

2020-06-25T18:54:26.1649453Z ##[group]Run tester 2020-06-25T19:19:49.1000791Z ##[group]Run nimdoc tests

=> 25m

timotheecour commented 4 years ago
/Users/timothee/git_clone/nim/timn/tests/nim/all/t11006.nim:33:6 s.len: 290914;
2020-06-25T19:01:45.0069010Z ( 0.35 sec)
2020-06-25T19:08:16.9917585Z ( 3.55 sec)
2020-06-25T19:19:48.9535411Z ( 1.99 sec)
3053.269999999995
 99.57   0.03 99.56999999999999 tests/stdlib/tfdleak_multiple.nim 2020-06-25T19:15:31.7993740Z PASS: tests/stdlib/tfdleak_multiple.nim C                          (99.57 sec)
153.18   0.05 53.61 tests/misc/trunner.nim 2020-06-25T19:08:09.4777564Z PASS: tests/misc/trunner.nim C++                                   (53.61 sec)
193.38   0.06 40.2 tests/stdlib/tosprocterminate.nim 2020-06-25T19:15:31.8032549Z PASS: tests/stdlib/tosprocterminate.nim C++                        (40.20 sec)
229.37   0.08 35.99 tests/compilerapi/tcompilerapi.nim 2020-06-25T18:57:49.2581595Z PASS: tests/compilerapi/tcompilerapi.nim C                         (35.99 sec)
261.13   0.09 31.76 tests/stdlib/tosprocterminate.nim 2020-06-25T19:15:31.8031980Z PASS: tests/stdlib/tosprocterminate.nim C                          (31.76 sec)
288.70   0.09 27.57 tests/misc/trunner.nim 2020-06-25T19:08:09.4777035Z PASS: tests/misc/trunner.nim C                                     (27.57 sec)
312.25   0.10 23.55 tests/stdlib/tosprocterminate.nim 2020-06-25T19:15:31.8031444Z PASS: tests/stdlib/tosprocterminate.nim C++                        (23.55 sec)
332.40   0.11 20.15 tests/stdlib/tasynchttpserver.nim 2020-06-25T19:15:29.0439416Z PASS: tests/stdlib/tasynchttpserver.nim C                          (20.15 sec)
352.01   0.12 19.61 tests/dll/nimhcr_integration.nim 2020-06-25T19:01:28.2005998Z PASS: tests/dll/nimhcr_integration.nim C  -d:release --forceBuild --hotCodeReloading:on (19.61 sec)
368.47   0.12 16.46 tests/dll/nimhcr_integration.nim 2020-06-25T19:01:28.2002225Z PASS: tests/dll/nimhcr_integration.nim C  --forceBuild --hotCodeReloading:on (16.46 sec)
384.47   0.13 16.0 tests/testament/tshould_not_work.nim 2020-06-25T19:12:18.5615960Z PASS: tests/testament/tshould_not_work.nim C                       (16.00 sec)
398.45   0.13 13.98 tests/stdlib/tjsonutils.nim 2020-06-25T19:15:31.8020238Z PASS: tests/stdlib/tjsonutils.nim JS                               (13.98 sec)
411.67   0.13 13.22 lib/nimrtl.nim 2020-06-25T19:01:28.2002652Z PASS: lib/nimrtl.nim C  -d:release --outdir:tests/dll              (13.22 sec)
424.71   0.14 13.04 tests/gc/thavlak 2020-06-25T19:08:16.9984127Z PASS: tests/gc/thavlak C                                           (13.04 sec)
437.63   0.14 12.92 tests/niminaction/Chapter3/various3.nim 2020-06-25T19:10:15.0440889Z PASS: tests/niminaction/Chapter3/various3.nim C  --nilseqs:on      (12.92 sec)
450.35   0.15 12.72 tests/stdlib/tvarints.nim 2020-06-25T19:16:37.1255744Z PASS: tests/stdlib/tvarints.nim C++                                (12.72 sec)
462.85   0.15 12.5 tests/stdlib/tosproc.nim 2020-06-25T19:15:31.8030361Z PASS: tests/stdlib/tosproc.nim C                                   (12.50 sec)
475.11   0.16 12.26 tests/niminaction/Chapter3/ChatApp/src/client.nim 2020-06-25T19:10:15.0413436Z PASS: tests/niminaction/Chapter3/ChatApp/src/client.nim C  --nilseqs:on (12.26 sec)
487.35   0.16 12.24 tests/stdlib/tfdleak.nim 2020-06-25T19:15:31.7992594Z PASS: tests/stdlib/tfdleak.nim C                                   (12.24 sec)
499.46   0.16 12.11 tests/stdlib/tjsonutils.nim 2020-06-25T19:15:31.8019600Z PASS: tests/stdlib/tjsonutils.nim C++                              (12.11 sec)
511.21   0.17 11.75 tests/niminaction/Chapter7/Tweeter/src/tweeter.nim 2020-06-25T19:10:15.0465671Z PASS: tests/niminaction/Chapter7/Tweeter/src/tweeter.nim C  --nilseqs:on (11.75 sec)
522.71   0.17 11.5 tests/gc/thavlak 2020-06-25T19:08:16.9987376Z PASS: tests/gc/thavlak C  --gc:markAndSweep                        (11.50 sec)
533.70   0.17 10.99 tests/stdlib/tosprocterminate.nim 2020-06-25T19:15:31.8030897Z PASS: tests/stdlib/tosprocterminate.nim C                          (10.99 sec)
544.65   0.18 10.95 tests/stdlib/ttimes.nim 2020-06-25T19:16:37.1252661Z PASS: tests/stdlib/ttimes.nim JS                                   (10.95 sec)
554.31   0.18 9.66 tests/gc/gcbench 2020-06-25T19:05:41.4230914Z PASS: tests/gc/gcbench C                                           ( 9.66 sec)
563.82   0.18 9.51 tests/stdlib/tvarints.nim 2020-06-25T19:16:37.1255360Z PASS: tests/stdlib/tvarints.nim C                                  ( 9.51 sec)
573.23   0.19 9.41 tests/stdlib/tnetdial.nim 2020-06-25T19:15:31.8028539Z PASS: tests/stdlib/tnetdial.nim C                                  ( 9.41 sec)
582.29   0.19 9.06 tests/nimdoc/trunnableexamples.nim 2020-06-25T19:08:34.0462390Z PASS: tests/nimdoc/trunnableexamples.nim C                         ( 9.06 sec)
591.31   0.19 9.02 tests/async/twinasyncrw.nim 2020-06-25T18:59:29.2393589Z PASS: tests/async/twinasyncrw.nim C                                ( 9.02 sec)
599.99   0.20 8.68 tests/gc/gcbench 2020-06-25T19:05:41.4234260Z PASS: tests/gc/gcbench C  --gc:markAndSweep                        ( 8.68 sec)
608.65   0.20 8.66 tests/async/tasync_gcsafe.nim 2020-06-25T18:59:24.8667175Z PASS: tests/async/tasync_gcsafe.nim C                              ( 8.66 sec)
617.19   0.20 8.539999999999999 tests/stdlib/tfrexp1.nim 2020-06-25T19:15:31.7999449Z PASS: tests/stdlib/tfrexp1.nim JS                                  ( 8.54 sec)
625.62   0.20 8.43 tests/gc/thavlak 2020-06-25T19:08:16.9985272Z PASS: tests/gc/thavlak C  --gc:orc                                 ( 8.43 sec)
634.05   0.21 8.43 tools/nimgrep 2020-06-25T19:15:51.9630960Z PASS: tools/nimgrep C  --debugger:on                               ( 8.43 sec)
642.44   0.21 8.390000000000001 tests/stdlib/ttimes.nim 2020-06-25T19:16:37.1252239Z PASS: tests/stdlib/ttimes.nim C                                    ( 8.39 sec)
650.74   0.21 8.300000000000001 tests/manyloc/keineschweine/keineschweine.nim 2020-06-25T19:06:07.8930632Z PASS: tests/manyloc/keineschweine/keineschweine.nim C              ( 8.30 sec)
658.98   0.22 8.24 tests/ccgbugs/t8967.nim 2020-06-25T18:56:27.8974896Z PASS: tests/ccgbugs/t8967.nim C++                                  ( 8.24 sec)
666.97   0.22 7.99 tests/collections/ttablesthreads.nim 2020-06-25T18:57:16.5968883Z PASS: tests/collections/ttablesthreads.nim C                       ( 7.99 sec)
674.96   0.22 7.99 lib/nimrtl.nim 2020-06-25T19:01:28.1877156Z PASS: tests/destructor/tprevent_assign.nim C                       PASS: lib/nimrtl.nim C  --outdir:tests/dll                         ( 7.99 sec)
682.59   0.22 7.63 tests/arc/tthread.nim 2020-06-25T18:55:20.1476536Z PASS: tests/arc/tthread.nim C                                      ( 7.63 sec)
690.20   0.23 7.61 tests/system/tdollars.nim 2020-06-25T19:11:53.6332464Z PASS: tests/system/tdollars.nim JS                                 ( 7.61 sec)
697.77   0.23 7.57 tests/async/tasyncawait_cyclebreaker.nim 2020-06-25T18:59:24.8658331Z PASS: tests/async/tasyncawait_cyclebreaker.nim C                   ( 7.57 sec)
705.27   0.23 7.5 tests/stdlib/tjsonmacro.nim 2020-06-25T19:15:31.8016395Z PASS: tests/stdlib/tjsonmacro.nim JS                               ( 7.50 sec)
712.70   0.23 7.43 tests/stdlib/tfdleak.nim 2020-06-25T19:15:31.7990983Z PASS: tests/stdlib/tfdleak.nim C                                   ( 7.43 sec)
719.94   0.24 7.24 tests/async/tasyncrecursion.nim 2020-06-25T18:59:24.8663075Z PASS: tests/async/tasyncrecursion.nim C                            ( 7.24 sec)
727.18   0.24 7.24 tests/parallel/tsendtwice.nim 2020-06-25T19:11:42.5566359Z PASS: tests/parallel/tsendtwice.nim C                              ( 7.24 sec)
734.42   0.24 7.24 tests/stdlib/texitprocs.nim 2020-06-25T19:15:31.7986659Z PASS: tests/stdlib/texitprocs.nim JS                               ( 7.24 sec)
741.52   0.24 7.1 tests/cpp/tasync_cpp.nim 2020-06-25T18:59:51.2157294Z PASS: tests/cpp/tasync_cpp.nim C++                                 ( 7.10 sec)
748.52   0.25 7.0 tests/async/t7758.nim 2020-06-25T18:59:24.8655090Z PASS: tests/async/t7758.nim C                                      ( 7.00 sec)
755.44   0.25 6.92 tests/stdlib/thtmlparser.nim 2020-06-25T19:15:31.8003867Z PASS: tests/stdlib/thtmlparser.nim JS                              ( 6.92 sec)
762.35   0.25 6.91 tests/collections/ttables.nim 2020-06-25T18:57:16.5924483Z PASS: tests/collections/ttables.nim C                              ( 6.91 sec)
769.22   0.25 6.87 tests/async/tioselectors.nim 2020-06-25T18:59:29.2354882Z PASS: tests/async/tioselectors.nim C                               ( 6.87 sec)
776.04   0.25 6.82 tests/parallel/twaitany.nim 2020-06-25T19:11:43.1779181Z PASS: tests/parallel/twaitany.nim C                                ( 6.82 sec)
782.78   0.26 6.74 tests/system/tdollars.nim 2020-06-25T19:11:53.5687635Z PASS: tests/system/tdollars.nim C++                                ( 6.74 sec)
timotheecour commented 4 years ago

mitigated by https://github.com/nim-lang/Nim/pull/14823 but underlying performance root cause remains