मैं -prof
के साथ संकलित करके अपने हास्केल प्रोग्राम में अनुकूलन अवसरों की तलाश में हूं, लेकिन मुझे नहीं पता कि इलिप्स वाले लागत केंद्रों की व्याख्या कैसे करें। filter.(...)
और jankRoulette.select.(...)
क्या हैं?क्या करता है। (...) .prof रिपोर्ट में मतलब है?
COST CENTRE MODULE %time %alloc
filter.(...) Forest 46.5 22.3
set-union Forest 22.5 4.1
cache-lookup Forest 16.0 0.1
removeMany MultiMapSet 3.7 1.9
insertMany MultiMapSet 3.3 1.8
jankRoulette.select.(...) Forest 1.4 15.2
मैं उत्पन्न उस के साथ:
filter a b = blahblah where
foo = bar
bar = baz
baz = bing
लेकिन उन सभी को दिखाने के रूप में filter.foo
, filter.bar
, आदि: $ ghc --make -rtsopts -prof -auto-all main.hs && ./main +RTS -p && cat main.prof
समारोह filter
एक where
खंड में कुछ परिभाषाओं, इस तरह है
मैंने सोचा कि उन्हें अभिव्यक्तियों को घोंसला दिया जा सकता है, लेकिन jankRoulette.select
में कोई नहीं है। और मैंने उनमें से अधिकतर के सामने एससीसी निर्देश जोड़े हैं, बिना किसी भी लागत केंद्र शीर्ष पर बढ़ रहे हैं।
चूंकि अधिकांश समय filter.(...)
में बिताया जाता है, मैं जानना चाहता हूं कि यह क्या है। :)
कोड बेनोफ कोट्स में 'TODO' टिप्पणी के रूप में सुझाव देना चाहिए, जीएचसी प्रोफाइलर रिपोर्ट (और कंपाइलर आउटपुट में बहुत कुछ भी) हमेशा' ghc --version' के परिणाम के साथ होना चाहिए। – dfeuer
अनुस्मारक के लिए धन्यवाद! वंशावली के लिए, मैं शानदार ग्लासगो हास्केल संकलन प्रणाली, संस्करण 7.8.1 चला रहा हूं। – alltom