سؤال

أنا أستخدم JNI لتحليل بعض البرامج.أتساءل، بعد الحصول على مرجع Jclass، كيف يمكن العثور على حجم الطبقة الأساسية؟

على سبيل المثال: CLS CLS= ENV-> FindClass ("Lee / Bohm / Test")؛

من هنا كيف يمكنني تقييم حجم الفصل Lee.boehm.test داخل كومة نقطة Hotspot؟

شكرا لك bohem

هل كانت مفيدة؟

المحلول

هنا تذهب

agent.c giveacodicetagpre.

و ./util/util.java giveacodicetagpre.

و test.java giveacodicetagpre.

gcc -i / opt / ibm-jdk-bin-1.6.0.9 / تشمل -Shared -fic -o

java -agentpath: ./ libagent.so اختبار

نصائح أخرى

hmmm .... إذا كنت تعني حجم البايتات الفئة ثم نعم ..... يمكنك استخدام jvmti لإعادة تحويل الفئة المعنية التي من شأنها أن تولد حدث Classload الذي تستمع إليه وهذا قد يمنحكبايت الطبقة والحجم .... لكنها ستكون متطابقة لملف .class على القرص .... ولكن إذا تم إنشاؤه الفئة ديناميكيا وهذا هو السبب في أنه لا يمكنك مجرد إلقاء نظرة على حجم ملف .class ثمستعمل هذه التقنية ..... يمكنني كتابة التعليمات البرمجية لك إذا كنت تريد.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top