मैं रिकॉर्ड करना चाहता हूं कि एक वस्तु के लिए एक वस्तु (बाइट्स, उम्मीद है कि) एक वस्तु के लिए कितनी मेमोरी लेती है (मैं डेटा संरचनाओं के आकार की तुलना कर रहा हूं) और ऐसा लगता है कि ऐसा करने के लिए कोई तरीका नहीं है जावा में माना जाता है कि, सी/सी ++ में sizeOf()
विधि है, लेकिन यह जावा में कोई भी नहीं है। मैंने ऑब्जेक्ट बनाने से पहले और बाद में Runtime.getRuntime().freeMemory()
के साथ JVM में मुफ्त मेमोरी रिकॉर्ड करने का प्रयास किया और फिर अंतर रिकॉर्ड किया, लेकिन यह केवल 0 या 131304, और संरचना में तत्वों की संख्या के बावजूद, बीच में कुछ भी नहीं देगा। कृपया मदद करें!जावा में ऑब्जेक्ट के आकार की गणना
http://docs.oracle.com/javase/7/docs/api/java/lang/instrument/Instrumentation.html
यह एक विधि है कि वस्तु के आकार के कार्यान्वयन विशिष्ट सन्निकटन है, साथ ही भूमि के ऊपर वस्तु के साथ जुड़े पाने के लिए इस्तेमाल किया जा सकता है:
http://stackoverflow.com/questions/52353/in-java-what-is-the-best-way-to-determine-the-size-of-an-object –
आप कर सकते हैं कुल मेमरी() और फिर फ्रीमेमरी() को आज़माएं और इसके बजाय उन घटाना। – Matt
मैं आपको जेबेलिस जेएमएम पर एक नज़र डालने की सलाह देता हूं। (https://github.com/jbellis/jamm) यह ऊपर वर्णित उपकरण एजेंट पर निर्भर करता है लेकिन पूरे ऑब्जेक्ट-ग्राफ़ के पदचिह्न को गहराई से मापने के लिए कुछ हंसमुख उपयोगिताओं को समाहित करता है। मेरे लिए सरल और बहुत अच्छा लग रहा है। – Claudio