有沒有一種很好的方法可以將某些函數調用從Haskell分析中排除?Haskell性能分析時排除開銷
我加載在字典中,這需要一對夫婦的第二個完全的大二進制轉儲月食我感興趣的代碼位。
COST CENTRE MODULE %time %alloc
read_wordlist Wordlists 93.6 98.3
solve Solver 1.3 0.0
anagrams Evaluation 0.8 1.4
[...]
僅供參考,我加載這樣的字典
read_wordlist = do
ls <- fmap Text.lines (Text.readFile "data/straight-wordlist")
(return . Data.Set.fromList . string_read . toString . Prelude.head) ls
和所有的代碼在模塊(但漂亮的香草等)分開。
是否有一些SCC註釋的安排,這意味着我可以做所有我的開銷加載偷偷摸摸,沒有它計入我的整體統計?
你有沒有試過移動'Data.Set.fromList。 string_read。 toString。 Prelude.head。 Text.lines'變成一個單獨的函數,這樣所有'read_wordlist'都會從文件中讀取,然後調用這個函數?我會用'BangPatterns'提出一些嚴格的註釋,以便你能準確地確定你的時間花在哪裏。 – bheklilr