2010-04-29 15 views
9

मैं कैसे देख सकता हूं कि वर्तमान में मेरे डेल्फी ऐप में कितनी स्टैक स्पेस का उपयोग किया जाता है? मेरे पास बहुत अजीब त्रुटि है जो स्टैक परेशानी की तरह लगता है। मैं इसे अपने ऐप के लॉग में जोड़ना चाहता हूं ताकि कुछ पता चल सके कि कितनी स्टैक स्पेस उपयोग में है/शेष है। डीबगर का उपयोग करना शायद इतना अच्छा नहीं है क्योंकि दिनचर्या को कई बार बुलाया जा सकता है।मैं कैसे देख सकता हूं कि वर्तमान में मेरे डेल्फी ऐप में कितनी स्टैक स्पेस का उपयोग किया जाता है?

धन्यवाद!

उत्तर

11

यह आप अपने वर्तमान ढेर उपयोग देना चाहिए:

function CurrentStackUsage: DWord; 
asm 
    mov eax, fs:[4] 
    sub eax, esp 
end; 

मैं बंद मेरे सिर के ऊपर रन-टाइम में अधिकतम ढेर आकार पाने के लिए एक आसान तरीका याद नहीं है, लेकिन यदि आप डिफ़ॉल्ट है आपके लिंकर विकल्पों में मूल्य।

+0

आपके उत्तर के लिए धन्यवाद! मैं आश्चर्यचकित हूं कि इससे कितना मूल्य वापस आ गया है। यह इंगित करेगा कि ढेर लगभग 1% उपयोग किया जाता है। बाइट्स में यह संख्या है? –

+0

हां, यह बाइट्स देता है। –

2

VMmap SysInternals से आप अपने आवेदन के द्वारा प्रयोग किया स्मृति के प्रत्येक प्रकार, ढेर सहित का ग्राफ़िकल दृश्य दे सकते हैं। यह आपको प्रति लार्सन के उत्तर में फ़ंक्शन की तरह सटीक उपयोग नहीं देता है, लेकिन आपके एप्लिकेशन के विभिन्न चरणों में स्मृति उपयोग को देखने में आपकी सहायता कर सकता है।

+0

दिलचस्प ऐप; मैं उससे कुछ नया सीख सकता हूं। धन्यवाद! –

संबंधित मुद्दे

 संबंधित मुद्दे