Skip to content

Instantly share code, notes, and snippets.

@jwoertink
Created January 27, 2021 21:45
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jwoertink/bc7cce558dcb5e87706a0b92d216a6a2 to your computer and use it in GitHub Desktop.
Save jwoertink/bc7cce558dcb5e87706a0b92d216a6a2 to your computer and use it in GitHub Desktop.
These are build times using both Crystal 0.35.1 and Crystal 0.36.0. The "slow" represent running with no cache. The "fast" are after cache has been set. Also note that the versions of Crystal are downloaded and built against LLVM 6.0
❯ ~/Downloads/crystal-0.35.1-1/bin/crystal build --stats src/start_server.cr
Parse: 00:00:00.000236591 ( 0.25MB)
Semantic (top level): 00:00:01.762338946 ( 172.51MB)
Semantic (new): 00:00:00.005974432 ( 172.51MB)
Semantic (type declarations): 00:00:00.066838316 ( 188.51MB)
Semantic (abstract def check): 00:00:00.014552078 ( 188.51MB)
Semantic (ivars initializers): 00:00:00.110344603 ( 220.51MB)
Semantic (cvars initializers): 00:00:00.012155332 ( 220.51MB)
Semantic (main): 00:00:03.452409213 ( 701.45MB)
Semantic (cleanup): 00:00:00.006011599 ( 701.45MB)
Semantic (recursive struct check): 00:00:00.002269204 ( 701.45MB)
Codegen (crystal): 00:00:04.399804418 ( 784.45MB)
Codegen (bc+obj): 00:00:02.858672094 ( 784.45MB)
Codegen (linking): 00:00:00.786859617 ( 784.45MB)
dsymutil: 00:00:00.622021096 ( 784.45MB)
Macro runs:
- /Users/jeremywoertink/Sites/myapp/lib/teeplate/src/lib/file_tree/macros/directory.cr: reused previous compilation (00:00:00.029650961)
- /Users/jeremywoertink/Sites/myapp/lib/lucky/src/run_macros/generate_asset_helpers.cr: reused previous compilation (00:00:00.023275002)
- /Users/jeremywoertink/Sites/myapp/lib/avram/src/run_macros/infer_table_name.cr: reused previous compilation (00:00:00.023297881)
- /Users/jeremywoertink/Downloads/crystal-0.35.1-1/src/ecr/process.cr: reused previous compilation (00:00:00.039252417)
Codegen (bc+obj):
- 1936/1966 .o files were reused
These modules were not reused:
- _main (_main.bc)
- Process (P-rocess.bc)
- Crystal::Signal (C-rystal5858S-ignal.bc)
- Hash(Int32, PG::Decoders::Decoder) (H-ash40I-nt324432P-G-5858D-ecoders5858D-ecoder41.bc)
- ASN1::BER::Length (A-S-N-15858B-E-R-5858L-ength.bc)
- Tasker::CRON(Nil) (T-asker5858C-R-O-N-40N-il41.bc)
- Tasker::Future(Nil) (T-asker5858F-uture40N-il41.bc)
- Timer (T-imer.bc)
- Carbon::SpawnStrategy (C-arbon5858S-pawnS-trategy.bc)
- DB::Database (D-B-5858D-atabase.bc)
- Cable::Handler (C-able5858H-andler.bc)
- HTTP::Server (H-T-T-P-5858S-erver.bc)
- HTTP::WebSocketHandler (H-T-T-P-5858W-ebS-ocketH-andler.bc)
- Lucky::Params (L-ucky5858P-arams.bc)
- UserQuery (U-serQ-uery.bc)
- Cable::Server (C-able5858S-erver.bc)
- AwardJobWorker (A-wardJ-obW-orker.bc)
- Tasker::OneShot(Transaction) (T-asker5858O-neS-hot40T-ransaction41.bc)
- Tasker::Future(Transaction) (T-asker5858F-uture40T-ransaction41.bc)
- GraphQL::Schema (G-raphQ-L-5858S-chema.bc)
- GraphQL::Language::ParserContext (G-raphQ-L-5858L-anguage5858P-arserC-ontext.bc)
- TransactionQuery (T-ransactionQ-uery.bc)
- FollowQuery (F-ollowQ-uery.bc)
- Carbon::AwsSesAdapter::Email (C-arbon5858A-wsS-esA-dapter5858E-mail.bc)
- HTTP::Client (H-T-T-P-5858C-lient.bc)
- WelcomeNewUserEmail (W-elcomeN-ewU-serE-mail.bc)
- Carbon::SendGridAdapter::Email (C-arbon5858S-endG-ridA-dapter5858E-mail.bc)
- SceneQuery (S-ceneQ-uery.bc)
- Cable::WebsocketPinger (C-able5858W-ebsocketP-inger.bc)
- Schedule::Runner (S-chedule5858R-unner.bc)
❯ ~/Downloads/crystal-0.36.0-1/bin/crystal build --stats src/start_server.cr
Parse: 00:00:00.000148372 ( 0.75MB)
Semantic (top level): 00:00:01.062301612 ( 187.88MB)
Semantic (new): 00:00:00.006232666 ( 187.88MB)
Semantic (type declarations): 00:00:00.072828396 ( 187.88MB)
Semantic (abstract def check): 00:00:00.018430547 ( 203.88MB)
Semantic (ivars initializers): 00:00:00.259301250 ( 219.94MB)
Semantic (cvars initializers): 00:00:00.011298510 ( 219.94MB)
Semantic (main): 00:00:03.552291255 ( 764.81MB)
Semantic (cleanup): 00:00:00.007463072 ( 764.81MB)
Semantic (recursive struct check): 00:00:00.002635784 ( 764.81MB)
Codegen (crystal): 00:00:06.729741520 ( 879.81MB)
Codegen (bc+obj): 00:00:03.396509806 ( 879.81MB)
Codegen (linking): 00:00:00.822229971 ( 879.81MB)
dsymutil: 00:00:00.635218821 ( 879.81MB)
Macro runs:
- /Users/jeremywoertink/Sites/myapp/lib/teeplate/src/lib/file_tree/macros/directory.cr: reused previous compilation (00:00:00.020826823)
- /Users/jeremywoertink/Sites/myapp/lib/lucky/src/run_macros/generate_asset_helpers.cr: reused previous compilation (00:00:00.020556971)
- /Users/jeremywoertink/Sites/myapp/lib/avram/src/run_macros/infer_table_name.cr: reused previous compilation (00:00:00.022694378)
- /Users/jeremywoertink/Downloads/crystal-0.36.0-1/src/ecr/process.cr: reused previous compilation (00:00:00.021214358)
Codegen (bc+obj):
- 1956/1988 .o files were reused
These modules were not reused:
- _main (_main.bc)
- Process (P-rocess.bc)
- Crystal::Signal (C-rystal5858S-ignal.bc)
- Log::AsyncDispatcher (L-og5858A-syncD-ispatcher.bc)
- Hash(Int32, PG::Decoders::Decoder) (H-ash40I-nt324432P-G-5858D-ecoders5858D-ecoder41.bc)
- ASN1::BER::Length (A-S-N-15858B-E-R-5858L-ength.bc)
- Tasker::CRON(Nil) (T-asker5858C-R-O-N-40N-il41.bc)
- Tasker::Future(Nil) (T-asker5858F-uture40N-il41.bc)
- Timer (T-imer.bc)
- Carbon::SpawnStrategy (C-arbon5858S-pawnS-trategy.bc)
- DB::Database (D-B-5858D-atabase.bc)
- Cable::Handler (C-able5858H-andler.bc)
- HTTP::Server (H-T-T-P-5858S-erver.bc)
- HTTP::WebSocketHandler (H-T-T-P-5858W-ebS-ocketH-andler.bc)
- Lucky::Params (L-ucky5858P-arams.bc)
- UserQuery (U-serQ-uery.bc)
- Avram::QueryBuilder (A-vram5858Q-ueryB-uilder.bc)
- Cable::Server (C-able5858S-erver.bc)
- AwardJobWorker (A-wardJ-obW-orker.bc)
- Tasker::OneShot(Transaction) (T-asker5858O-neS-hot40T-ransaction41.bc)
- Tasker::Future(Transaction) (T-asker5858F-uture40T-ransaction41.bc)
- GraphQL::Schema (G-raphQ-L-5858S-chema.bc)
- GraphQL::Language::ParserContext (G-raphQ-L-5858L-anguage5858P-arserC-ontext.bc)
- TransactionQuery (T-ransactionQ-uery.bc)
- FollowQuery (F-ollowQ-uery.bc)
- Carbon::AwsSesAdapter::Email (C-arbon5858A-wsS-esA-dapter5858E-mail.bc)
- HTTP::Client (H-T-T-P-5858C-lient.bc)
- WelcomeNewUserEmail (W-elcomeN-ewU-serE-mail.bc)
- Carbon::SendGridAdapter::Email (C-arbon5858S-endG-ridA-dapter5858E-mail.bc)
- SceneQuery (S-ceneQ-uery.bc)
- Cable::WebsocketPinger (C-able5858W-ebsocketP-inger.bc)
- Schedule::Runner (S-chedule5858R-unner.bc)
❯ ~/Downloads/crystal-0.35.1-1/bin/crystal build --stats src/start_server.cr
Parse: 00:00:00.000128915 ( 0.25MB)
Semantic (top level): 00:00:37.181889609 ( 204.28MB)
Semantic (new): 00:00:00.005488563 ( 204.28MB)
Semantic (type declarations): 00:00:00.067231286 ( 204.28MB)
Semantic (abstract def check): 00:00:00.017986449 ( 204.28MB)
Semantic (ivars initializers): 00:00:00.154834239 ( 204.28MB)
Semantic (cvars initializers): 00:00:00.010962366 ( 204.28MB)
Semantic (main): 00:00:14.245548338 ( 750.16MB)
Semantic (cleanup): 00:00:00.008110214 ( 750.16MB)
Semantic (recursive struct check): 00:00:00.002972098 ( 750.16MB)
Codegen (crystal): 00:00:03.773053983 ( 768.16MB)
Codegen (bc+obj): 00:00:08.397042393 ( 768.16MB)
Codegen (linking): 00:00:00.901332765 ( 768.16MB)
dsymutil: 00:00:00.640395170 ( 768.16MB)
Macro runs:
- /Users/jeremywoertink/Sites/myapp/lib/teeplate/src/lib/file_tree/macros/directory.cr: 00:00:10.949660406
- /Users/jeremywoertink/Sites/myapp/lib/lucky/src/run_macros/generate_asset_helpers.cr: 00:00:12.451161434
- /Users/jeremywoertink/Sites/myapp/lib/avram/src/run_macros/infer_table_name.cr: 00:00:12.232190998
- /Users/jeremywoertink/Downloads/crystal-0.35.1-1/src/ecr/process.cr: 00:00:10.858106171
Codegen (bc+obj):
- no previous .o files were reused
❯ ~/Downloads/crystal-0.36.0-1/bin/crystal build --stats src/start_server.cr
Parse: 00:00:00.001355816 ( 0.75MB)
Semantic (top level): 00:00:43.898498318 ( 284.82MB)
Semantic (new): 00:00:00.008570421 ( 284.82MB)
Semantic (type declarations): 00:00:00.080495174 ( 284.82MB)
Semantic (abstract def check): 00:00:00.020143890 ( 284.82MB)
Semantic (ivars initializers): 00:00:00.118489237 ( 300.82MB)
Semantic (cvars initializers): 00:00:00.020705474 ( 300.82MB)
Semantic (main): 00:00:15.583991795 ( 943.82MB)
Semantic (cleanup): 00:00:00.007075082 ( 943.82MB)
Semantic (recursive struct check): 00:00:00.002646785 ( 943.82MB)
Codegen (crystal): 00:00:06.527002086 ( 979.82MB)
Codegen (bc+obj): 00:00:08.399942356 ( 979.82MB)
Codegen (linking): 00:00:00.817839548 ( 979.82MB)
dsymutil: 00:00:00.603800040 ( 979.82MB)
Macro runs:
- /Users/jeremywoertink/Sites/myapp/lib/teeplate/src/lib/file_tree/macros/directory.cr: 00:00:13.235931215
- /Users/jeremywoertink/Sites/myapp/lib/lucky/src/run_macros/generate_asset_helpers.cr: 00:00:14.565926805
- /Users/jeremywoertink/Sites/myapp/lib/avram/src/run_macros/infer_table_name.cr: 00:00:14.109444923
- /Users/jeremywoertink/Downloads/crystal-0.36.0-1/src/ecr/process.cr: 00:00:12.417441410
Codegen (bc+obj):
- no previous .o files were reused
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment