यह प्रश्न मेरे previous question के लिए दिए गए उत्तरों का नतीजा है।छवियां कैश हो रही हैं और मेरे हीप स्पेस को खा रही हैं
मुझे अपने ढेर को खाने के लिए जांच करने के लिए एक्लिप्स मैट का उपयोग करने के लिए कहा गया था। नीचे मेरी टिप्पणियों (टॉप उपभोक्ताओं को) कर रहे हैं:
class sun.awt.SunToolkit 333.7 MB
com.tennisearth.service.impl.CacheManagerServiceImpl 136 MB
org.apache.jasper.servlet.JspServlet 91.5 MB
मैं पहले से ही CacheManageServiceImpl
से जुड़ी समस्या सुलझा दिया है, लेकिन SunToolkit
के साथ मदद की आवश्यकता है।
नीचे कोड है कि एक छवि वस्तु बनाता है (जो आंतरिक रूप से उपयोग करता SunToolkit.imgCache
)
Image img = new ImageIcon(imagePath).getImage();
int imageWidth = img.getWidth(null);
int imageHeight = img.getHeight(null);
Plz ध्यान दें कि छवि वस्तु केवल जो बाद में आवश्यक है छवि के चौड़ाई/ऊंचाई प्राप्त करने के लिए बनाया जा रहा है है कुछ तर्क
क्या SunToolkit
छवि कैशिंग अक्षम करने का कोई तरीका है? बेहतर अभी तक, क्या इस कैश को साफ़ करने का कोई तरीका है? या क्या कोई बेहतर तरीका है कि मैं इस जानकारी को पुनः प्राप्त कर सकता हूं?
Btw, मैं jboss चलाने के लिए (plz ध्यान दें ढेर आकार तर्क) नीचे आदेश का उपयोग कर रहा हूँ:
java -Dprogram.name=run.sh -server -Xms256m -Xmx1024m -XX:PermSize=64m -XX:MaxPermSize=256m -verbose:gc -Xloggc:/data1/logs/jboss/GC.log -XX:+HeapDumpOnOutOfMemoryError -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000 -Dorg.apache.catalina.STRICT_SERVLET_COMPLIANCE=false -Djava.net.preferIPv4Stack=true -Djava.library.path=/usr/local/java/jboss-4.2.2.GA/bin/native -Djava.endorsed.dirs=/usr/local/java/jboss-4.2.2.GA/lib/endorsed -classpath /usr/local/java/jboss-4.2.2.GA/bin/run.jar:/usr/local/java/jdk1.6.0_06/lib/tools.jar org.jboss.Main -c default -b <IP_ADDRESS> -Djboss.messaging.ServerPeerID=1
सुमित
छवियों और छवि कैशिंग से संबंधित जावा में * बहुत सारे मुद्दे हैं। एपीआई दोषों के आसपास कुख्यात * फ्लश() * वर्कअराउंड दिमाग में वसंत। छवियों को निरस्त करना हमेशा पर्याप्त नहीं होता है: कभी-कभी आपको * फ्लश() * को कॉल करने की आवश्यकता होती है और यह आसानी से समझ में नहीं आता है। यदि यह किसी सर्वर पर है, तो मुझे बाहरी रूप से ImageMagick की * पहचान * कमांड चलाकर उस चौड़ाई/ऊंचाई की जानकारी मिल जाएगी। बाहरी प्रक्रिया को चलाने के लिए यह थोड़ा दर्द है, लेकिन फिर सर्वर पर इसकी चौड़ाई/ऊंचाई प्राप्त करने के लिए एक छवि लोड करना काफी हेवीवेट है। – SyntaxT3rr0r
एक और विकल्प ... हम बैच को हमारे सभी चित्रों को संसाधित कर रहे थे और विस्तृत रूप से चित्र के फ़ाइल नाम में विस्तृत/ऊंचाई जानकारी डाल रहे थे: * mypic.jpg * बन जाता है * mypic640x480.jpg *। फिर हमने फ़ाइल नाम से (डब्ल्यू, एच) निकाला ... – SyntaxT3rr0r
यदि आप इस मुद्दे पर Google चाहते हैं, तो यहां एक दिलचस्प उद्धरण है: * हमने ओएस एक्स की तुलना में अन्य प्लेटफॉर्म पर फ्लश समस्या देखी है, इसलिए मुझे लगता है कि " जीसी ने छवि को पुनः प्राप्त करने से पहले फ्लश को मजबूर करने के लिए टूलकिट इमेज पर अंतिम रूप देने के द्वारा, सूर्य द्वारा उचित "फिक्स को जरूरी है। क्या किसी ने सूर्य को इसकी सूचना दी है? * – SyntaxT3rr0r