我在尋找中寫入以下功能的有效方式,如another question討論:重複(x).take(n)性能?
fn dots(n: usize) -> String {
std::iter::repeat('.').take(n).collect()
}
是否鏽蝕產生的具體類型的通用結構類型的實例?是repeat('.').take(n)
(該結構Take<Repeat<char>>
)的結果相當於
struct Take_Repeat_char {
element: char,
n: usize
}
所有方法的實現內聯 - 會不會有中Take::next()
已經Repeat::next()
內聯中有一個版本?
什麼是檢查自己的好方法?檢查LLVM IR?
我不得不-1,因爲它根本沒有性能不夠。我們不能斷然重複行「迭代器內嵌大」(他們這樣做)激勵的結論,如「它優化到好的代碼」,這是不正確的。 – bluss
相關鏽PR即改善'BufWriter'建設:看到這個差異大塊頭(https://github.com/rust-lang/rust/pull/26849/files#diff-a074b6c6ae44d9ac353aa145411afb53L65) – bluss
@bluss:不夠公平 - 請請注意,我並沒有說這在任何情況下都能正常工作,只是給出了具體的例子。 – llogiq