2011-06-07 41 views
7

हमारे आवेदन में, हम उपयोगकर्ताओं को एक्सेल शीट के माध्यम से डेटा अपलोड/डाउनलोड करने की अनुमति देते हैं और हम इन एक्सेल शीट्स को पढ़ने और लिखने के लिए अपाचे पीओआई का उपयोग करते हैं।
हम अपनी सभी एक्सएलएस शीट्स को xlsx में माइग्रेट करने की योजना बना रहे थे, लेकिन इस प्रक्रिया के दौरान पता चला कि अपाचे पीओआई के माध्यम से एक्सएसएसएफ (xlsx के लिए) की स्मृति पदचिह्न काफी अधिक है।जावा एप्लिकेशन के लिए मेमोरी पदचिह्न

नतीजतन, हम इसका परीक्षण करना चाहते थे, और सत्यापित करते हैं कि xlsx पर जाने से हमें लगातार आउटऑफमेमरी अपवाद नहीं मिलेगा। किसी भी पॉइंटर्स, हम मेमोरी पैरों के निशान को प्रभावी रूप से कैसे रिकॉर्ड कर सकते हैं, जबकि हम इस एक्सेलिटी (xlsx) फ़ाइलों के साथ इस कार्यक्षमता का परीक्षण करते हैं।

धन्यवाद!

+0

[इस धागे] के संभावित डुप्लिकेट (http://stackoverflow.com/questions/756873/best-way-to-profile-memory-usage-in-a-java- अनुप्रयोग)। उस धागे में बहुत से अनुशंसित प्रोफाइलरों का उल्लेख किया गया है। –

उत्तर

5

मेमोरी खपत को मैन्युअल रूप से मॉनिटर करने के लिए jconsole या jvisualvm (जिसे JVM के साथ भेज दिया गया है) जैसे टूल का उपयोग करना एक आसान तरीका है।

आप समय-समय पर मेमोरी खपत को मापने के लिए runtime एपीआई का भी उपयोग कर सकते हैं।

4

@Johan उल्लेख किया है, आप एक प्रोफाइलर का उपयोग करें या तरीकों maxMemory,totalMemory, और freeMemoryRuntime से के कुछ संयोजन का लाभ उठा सकें। यदि वे परिणाम इंगित करते हैं कि स्मृति पदचिह्न वास्तव में एक समस्या है, तो अपाचे पीओआई XSSF के लिए हल्के पदचिह्न के साथ another option प्रदान करता है। इसका उपयोग करना कठिन होता है, इसलिए मैं इसका उपयोग करने की अनुशंसा नहीं करता जब तक कि आपके प्रोफाइलिंग परिणाम इंगित न करें कि आपको करना है, लेकिन इससे मदद मिल सकती है।

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