मैं मौजूदा एरलांग प्रोग्राम की दक्षता को आगे बढ़ाने के लिए चाहता हूं। सबसे पहले मैं बाधाओं की पहचान करना चाहता हूं और फिर निर्णय लेना चाहता हूं कि आगे कहां अनुकूलित करना है।मेमोरी उपयोग के मामले में एक एरलांग प्रोग्राम कैसे प्रोफाइल करें?
मैंने fprof
का प्रयास किया है, लेकिन यह केवल कुल और औसत रनटाइम पर जानकारी देता है। मैं सबसे अधिक fprof के आउटपुट के समान लॉग देखना चाहता हूं, लेकिन कार्यों और प्रक्रियाओं के संबंध में औसत और कुल स्मृति उपयोग के संदर्भ में।
शुरुआत यह एक एकल मॉड्यूल, कि प्रक्रियाओं अंडे नहीं है प्रोफ़ाइल के लिए काफ़ी है के लिए, केवल यह कार्यों के नाम से जाना जाएगा। इससे पहले से ही मदद मिलेगी, क्योंकि मैं प्रोग्राम को परीक्षण के लिए अलग मॉड्यूल में अलग कर सकता हूं।
विशिष्ट संदिग्ध बिंदु हैं, जहां बड़ी सूचियां संभाली जा रही हैं।
यहां ++
का उपयोग lists:reverse([Head|Tail])
द्वारा सिंटैक्स की तरह हल किया गया है।
मैं कुछ सौ तत्वों वाले मामलों के लिए सूचियों के बजाय ईटीएस तालिकाओं का उपयोग करने पर भी विचार कर रहा हूं।
अग्रिम धन्यवाद!
http://www.erlang.org/doc/efficiency_guide/profiling.html
+1। प्रोफाइलिंग का समर्थन करने के लिए :) –
मुझे संदेह है कि सूचियों पर इट्स टेबल का उपयोग अंतरिक्ष के संदर्भ में एक लाभ होगा, इससे कोई फर्क नहीं पड़ता कि सूची/इट्स टेबल कितनी बड़ी है (एक सूची में प्रति तत्व एक पॉइंटर का ओवरहेड होता है) - आमतौर पर टेबल टेबल केवल आपको समय में लाभ प्रदान करते हैं। – Amadiro