我只是想知道Crystal編程語言的編譯速度。感覺比較慢:Crystal Lang編譯器速度
➜ ~/Code/crystal/crystal_scheduler (master ✘)✹✭ ᐅ time crystal build --release src/crystal_scheduler.cr
34.64s user 1.10s system 93% cpu 38.174 total
➜ ~/Code/crystal/crystal_scheduler (master ✘)✹✭ ᐅ time crystal build --release src/crystal_scheduler.cr
36.11s user 0.83s system 93% cpu 39.465 total
➜ ~/Code/crystal/crystal_scheduler (master ✘)✹✭ ᐅ time crystal build src/crystal_scheduler.cr
8.09s user 0.89s system 181% cpu 4.956 total
代碼相對較小,兩個分片,兩個類。與我從Java中知道的其他編譯時間相比,這感覺好像很長時間。
我得到這個版本的編譯速度很慢,但混帳書指出:
這樣做的理由是不充分的優化,性能 還是蠻不錯的,並提供快速的編譯時間,這樣你就可以使用幾乎就像是一名口譯員。
但8s覺得有點慢,聲稱你可以使用它「幾乎就像它是一個解釋器」。
我只是想知道如果 - 一)我的編譯是特別慢/編譯時間是正常 - B)如何比較其他語言在你的經驗
彙編統計:
Parse: 00:00:00.0007470 ( 0.25MB)
Semantic (top level): 00:00:00.3968920 ( 36.08MB)
Semantic (new): 00:00:00.0019210 ( 44.08MB)
Semantic (type declarations): 00:00:00.0355760 ( 44.08MB)
Semantic (abstract def check): 00:00:00.0012690 ( 44.08MB)
Semantic (ivars initializers): 00:00:00.0094640 ( 44.08MB)
Semantic (cvars initializers): 00:00:00.0394420 ( 44.08MB)
Semantic (main): 00:00:00.6025030 (108.14MB)
Semantic (cleanup): 00:00:00.0012750 (108.14MB)
Semantic (recursive struct check): 00:00:00.0018930 (108.14MB)
Codegen (crystal): 00:00:00.7354530 (140.27MB)
Codegen (bc+obj): 00:00:33.2533520 (140.27MB)
Codegen (linking): 00:00:00.3647440 (140.27MB)
我的系統:
➜ crystal -v
Crystal 0.22.0 (2017-04-20) LLVM 4.0.0
硬件概述:
Model Name: MacBook Pro
Model Identifier: MacBookPro11,1
Processor Name: Intel Core i5
Processor Speed: 2,8 GHz
Number of Processors: 1
Total Number of Cores: 2
L2 Cache (per Core): 256 KB
L3 Cache: 3 MB
Memory: 16 GB
這聽起來有點慢對我來說,你可以使用'--stats'參數晶體編譯器以估算緩慢從何而來。在沒有任何細節或代碼的情況下調試「緩慢」是非常困難的,所以我不能做太多的事情,其他人可能會覺得這很慢並且很奇怪。 – RX14
我加了'--stats'輸出。我使用kemal.cr,但它基本上只有一個路由,沒有類,沒有任何東西。 – tpei
與其餘的pass相比,LLVM codegen階段看起來太長了。這是一個發佈版本嗎?例如,這是構建整個編譯器(這是更多代碼)的統計輸出,請注意每個部分相對於彼此花費的時間量:https://aww.moe/5n3ql4.txt – RX14