2010-11-30 17 views
5

मैं जावा वेबस्टार्ट एप्लिकेशन का उपयोग कर रहा हूं जिसे BLAST2GO कहा जाता है, मैं स्मृति आवंटन के साथ समस्याओं में भाग ले रहा हूं। इसे स्मृति में एक बड़ा डेटा सेट लोड करने की आवश्यकता है, इसलिए मैं इस एप्लिकेशन में 3-6 जीबी आवंटित करने की कोशिश कर रहा हूं। हालांकि, कोई फर्क नहीं पड़ता कि मैंने अधिकतम ढेर आकार के रूप में क्या सेट किया है, यह हमेशा 455 एमबी का उपयोग करता है (जैसा कि संदेश बार द्वारा इंगित किया गया है: 'मेमोरी उपयोग: 455 एमबी का xxMB')। मैंने इसे बहुत ही उचित स्तर (1024 एमबी) पर सेट करने का प्रयास किया है, लेकिन अभी भी केवल 455 एमबी आवंटन है।जावा वेबस्टार्ट अनुप्रयोग के लिए मेमोरी आवंटन

कोई विचार?

बीटीडब्ल्यू, मैं 24 जीबी मेमोरी, 8 प्रोसेस के साथ उबंटू 10.04 32-बिट का उपयोग कर रहा हूं।

अद्यतन: यहां वे जेएनएलपी प्रदान करते हैं। मुझे एक ही परिणाम मिलता है जब मैं initial-heap-size और max-heap-size विशेषताओं के मानों को संपादित करता हूं।

<jnlp spec="1.0+" codebase="http://bioinfo.cipf.es/blast2go/webstart" href="http://bioinfo.cipf.es/blast2go/webstart/makeJnlp.php?mem=3072"> 
<information> 
<title>Blast2GO 3072M</title> 
<vendor>CIPF - UPV - IVIA</vendor> 
<homepage href="http://www.blast2go.org"/> 
<description>Blast2GO 3072M</description> 
<description kind="short">Blast2GO 3072M</description> 
<icon href="splash.gif"/> 
<offline-allowed/> 
</information> 
<security> 
<all-permissions/> 
</security> 
<resources> 
<j2se version="1.5+" initial-heap-size="64m" max-heap-size="3072M"/> 
<jar href="ext/blast2go.jar"/> 
<jar href="ext/biojava-1.3.1.jar"/> 
<jar href="ext/jfreechart-1.0.10.jar"/> 
<jar href="ext/mysql-connector-java-3.0.11-stable-bin.jar"/> 
<jar href="ext/zvtm.jar"/> 
<jar href="ext/jakarta-regexp-1.4.jar"/> 
<jar href="ext/jcommon-1.0.13.jar"/> 
<jar href="ext/Simpat1.1.jar"/> 
<jar href="ext/iText-2.1.1.jar"/> 
<jar href="ext/jdom/activation.jar"/> 
<jar href="ext/jdom/ant.jar"/> 
<jar href="ext/jdom/jaxen-core.jar"/> 
<jar href="ext/jdom/jaxen-jdom.jar"/> 
<jar href="ext/jdom/jdom.jar"/> 
<jar href="ext/jdom/mail.jar"/> 
<jar href="ext/jdom/saxpath.jar"/> 
<jar href="ext/jdom/xalan.jar"/> 
<jar href="ext/jdom/xerces.jar"/> 
<jar href="ext/jdom/xml-apis.jar"/> 
<jar href="ext/interpro/commons-cli-1.0.jar"/> 
<jar href="ext/interpro/commons-cli.jar"/> 
<jar href="ext/interpro/freefluo.jar"/> 
<jar href="ext/interpro/servlet.jar"/> 
<jar href="ext/interpro/WSInterProScan.jar"/> 
<jar href="ext/axis_1_4/axis-ant.jar"/> 
<jar href="ext/axis_1_4/axis.jar"/> 
<jar href="ext/axis_1_4/commons-discovery-0.2.jar"/> 
<jar href="ext/axis_1_4/commons-logging-1.0.4.jar"/> 
<jar href="ext/axis_1_4/jaxrpc.jar"/> 
<jar href="ext/axis_1_4/keggapi.jar"/> 
<jar href="ext/axis_1_4/log4j-1.2.8.jar"/> 
<jar href="ext/axis_1_4/saaj.jar"/> 
<jar href="ext/axis_1_4/wsdl4j-1.5.1.jar"/> 
<jar href="ext/axis2/activation-1.1.jar"/> 
<jar href="ext/axis2/annogen-0.1.0.jar"/> 
<jar href="ext/axis2/axiom-api-1.2.2.jar"/> 
<jar href="ext/axis2/axiom-dom-1.2.2.jar"/> 
<jar href="ext/axis2/axiom-impl-1.2.2.jar"/> 
<jar href="ext/axis2/axis2-adb-1.1.1.jar"/> 
<jar href="ext/axis2/axis2-adb-codegen-1.1.1.jar"/> 
<jar href="ext/axis2/axis2-codegen-1.1.1.jar"/> 
<jar href="ext/axis2/axis2-java2wsdl-1.1.1.jar"/> 
<jar href="ext/axis2/axis2-jaxbri-1.1.1.jar"/> 
<jar href="ext/axis2/axis2-jibx-1.1.1.jar"/> 
<jar href="ext/axis2/axis2-kernel-1.1.1.jar"/> 
<jar href="ext/axis2/axis2-saaj-1.1.1.jar"/> 
<jar href="ext/axis2/axis2-soapmonitor-1.1.1.jar"/> 
<jar href="ext/axis2/axis2-spring-1.1.1.jar"/> 
<jar href="ext/axis2/axis2-tools-1.1.1.jar"/> 
<jar href="ext/axis2/axis2-xmlbeans-1.1.1.jar"/> 
<jar href="ext/axis2/backport-util-concurrent-2.2.jar"/> 
<jar href="ext/axis2/commons-codec-1.3.jar"/> 
<jar href="ext/axis2/commons-fileupload-1.1.1.jar"/> 
<jar href="ext/axis2/commons-httpclient-3.0.1.jar"/> 
<jar href="ext/axis2/commons-io-1.2.jar"/> 
<jar href="ext/axis2/commons-logging-1.1.jar"/> 
<jar href="ext/axis2/geronimo-spec-jms-1.1-rc4.jar"/> 
<jar href="ext/axis2/jakarta-httpcore-4.0-alpha2.jar"/> 
<jar href="ext/axis2/jaxb-api-2.0.2.jar"/> 
<jar href="ext/axis2/jaxb-impl-2.0.2.jar"/> 
<jar href="ext/axis2/jaxb-xjc-2.0.2.jar"/> 
<jar href="ext/axis2/jaxen-1.1-beta-10.jar"/> 
<jar href="ext/axis2/jibx-bind-1.1.3.jar"/> 
<jar href="ext/axis2/jibx-run-1.1.3.jar"/> 
<jar href="ext/axis2/mail-1.4.jar"/> 
<jar href="ext/axis2/neethi-2.0.jar"/> 
<jar href="ext/axis2/servletapi-2.3.jar"/> 
<jar href="ext/axis2/stax-api-1.0.1.jar"/> 
<jar href="ext/axis2/woden-1.0.0M6.jar"/> 
<jar href="ext/axis2/wsdl4j-1.6.2.jar"/> 
<jar href="ext/axis2/wstx-asl-3.2.0.jar"/> 
<jar href="ext/axis2/xalan-2.7.0.jar"/> 
<jar href="ext/axis2/xbean-2.2.0.jar"/> 
<jar href="ext/axis2/xercesImpl-2.8.1.jar"/> 
<jar href="ext/axis2/xml-apis-1.3.03.jar"/> 
<jar href="ext/axis2/XmlSchema-1.2.jar"/> 
<jar href="ext/batik/batik-anim.jar"/> 
<jar href="ext/batik/batik-awt-util.jar"/> 
<jar href="ext/batik/batik-bridge.jar"/> 
<jar href="ext/batik/batik-codec.jar"/> 
<jar href="ext/batik/batik-css.jar"/> 
<jar href="ext/batik/batik-dom.jar"/> 
<jar href="ext/batik/batik-extension.jar"/> 
<jar href="ext/batik/batik-ext.jar"/> 
<jar href="ext/batik/batik-gui-util.jar"/> 
<jar href="ext/batik/batik-gvt.jar"/> 
<jar href="ext/batik/batik-parser.jar"/> 
<jar href="ext/batik/batik-script.jar"/> 
<jar href="ext/batik/batik-svg-dom.jar"/> 
<jar href="ext/batik/batik-svggen.jar"/> 
<jar href="ext/batik/batik-swing.jar"/> 
<jar href="ext/batik/batik-transcoder.jar"/> 
<jar href="ext/batik/batik-util.jar"/> 
<jar href="ext/batik/batik-xml.jar"/> 
<jar href="ext/batik/js.jar"/> 
<jar href="ext/batik/pdf-transcoder.jar"/> 
<jar href="ext/batik/xalan-2.6.0.jar"/> 
<jar href="ext/batik/xerces_2_5_0.jar"/> 
<jar href="ext/batik/xml-apis-ext.jar"/> 
<jar href="ext/batik/xml-apis.jar"/> 
</resources> 
<application-desc main-class="es.blast2go.prog.MainProg"/> 
</jnlp> 

अद्यतन: मैं जड़ jnlp टैग में href विशेषता को बदलने की कोशिश की और मैं टर्मिनल पर एक बहुत ही अजीब संदेश मिला। मुझे आश्चर्य है कि जावा हर बार इस यूआरएल से जेएनएलपी को फिर से डाउनलोड कर रहा है और जेएनएलपी को संपादित करने के मेरे प्रयासों को अनदेखा कर रहा है। क्या कोई तरीका है जिससे मैं इसे रोक सकता हूं?

> javaws blast2go3GB.jnlp 
Error occurred during initialization of VM 
CCoouulldd nnoott crreesaetrev et heen oJuagvha svpiarcteu aflo rm aocbhjiencet. 
heap 

अंतिम अद्यतन: बाहर कर देता है यह जावा संस्करण के साथ एक समस्या थी। जब मैंने डाउनलोड किया और सूर्य जावा का उपयोग किया तो मुझे अपेक्षित व्यवहार मिला।

+0

आप कैसे संकेत मिलता है कि आप कितना स्मृति चाहते हैं? –

+0

मैं उनके द्वारा प्रदान किए गए लिंक का उपयोग करता हूं और निर्दिष्ट करता हूं कि मैं कितना चाहता हूं। –

+0

बस वही किया: यह पंक्ति 2048 के लिए '' दर्ज की गई है। –

उत्तर

3

यदि आप 32-बिट लिनक्स चला रहे हैं, तो आप केवल 32-बिट जेवीएम चला सकते हैं जो प्रति उदाहरण लगभग 4 जीबी मेमोरी तक सीमित है। मेरा मानना ​​है कि यह भी मामला है भले ही आप कर्नेल के लिए अधिक दृश्यमान हों।

यदि आपको वास्तव में, वास्तव में एक ही जेवीएम में बहुत सारी मेमोरी चाहिए तो आपको 64-बिट जाने की आवश्यकता है।


संपादित करें: जावा वेबस्टार्ट ओपनजेडीके के लिए खुलासा नहीं किया गया था, इसलिए वैकल्पिक कार्यान्वयन का उपयोग किया जाता है। इसके बजाए सूर्य जावा को डाउनलोड और उपयोग करने का प्रयास करें। यह जेडीके को डाउनलोड और अनजिप करने के लिए पर्याप्त होना चाहिए, और bin/javaws foo.jnlp चलाएं।

+0

यह बढ़िया है, लेकिन जब मैं पूछता हूं, 1024 एमबी कहता है तो केवल 455 एमबी आवंटित क्यों किया जाता है? –

+0

आप इसे गलत कर सकते हैं, और यह डिफ़ॉल्ट व्यवहार है। या यह सिर्फ आपको देता है कि यह क्या कर सकता है। कहना मुश्किल है - कुछ जेएनएलपी दिखाएं। –

+0

ठीक है, जेएनएलपी लिंक पेज से आता है। प्रश्न पर टिप्पणियां देखें। –

4

आप इस तरह J2SE टैग में ढेर आकार निर्दिष्ट कर सकते हैं:

<resources> 
    ......... 
      <j2se version="1.6.0+" href="" initial-heap-size="1024m" max-heap-size="3000m" /> 
      <j2se version="1.5.0_05" href="" initial-heap-size="1024m" max-heap-size="3000m" /> 
      <j2se version="1.4.2_04" href="" initial-heap-size="1024m" max-heap-size="3000m" />   
    ......... 
    </resources> 

और हर JRE संस्करण आप का प्रयोग करेंगे निर्दिष्ट करें।

+0

जहां तक ​​मुझे पता है, मेरे पास केवल सिस्टम पर एक जड़ है। उनके द्वारा बनाई गई .jnlp फ़ाइल में केवल एक 'j2se' टैग था और इसमें संस्करण '1.5 +' था। मैं अपने सिस्टम पर 1.6.0_18 चला रहा हूं, इसलिए इसे कवर किया जाना चाहिए। –

+0

@Daniel क्या आपने jnlp के बिना अपना ऐप चलाने की कोशिश की है (कमांड लाइन जावा -jar myapp.jar -Xms1024m -Xmx3000m से) क्या आपके पास कमांड लाइन से चलते समय एक ही समस्या है? – Enrique

0

क्या आपने blast2go start page से समाधान का प्रयास किया था?

"Blast2GO अधिक स्मृति की आवश्यकता गतिशील स्मृति JNLP URL का उपयोग करें:"

http://bioinfo.cipf.es/blast2go/webstart/makeJnlp.php?mem=<put here the amount of memory you need> 

यह स्पष्ट नहीं है कि क्या यहाँ पर जा रहा है, लेकिन मुझे लगता है कि यह संभावना है कि blast2go है कुछ मैनुअल मेमोरी प्रबंधन चालें कर रहे हैं। (तथ्य यह है कि यह रिपोर्ट करने का दावा करता है कि कितनी मेमोरी का उपयोग किया जाता है इसका संकेत मिलता है।) यदि ऐसा है, तो आवेदन विशिष्ट तर्क या गुण हो सकते हैं जिन्हें सेट करने की आवश्यकता है यदि आप जेएनएलपी फ़ाइल को ट्वीक करते हैं।

+0

वे सिर्फ जेएनएलपी के सही स्थान पर नंबर डालते हैं। कुछ भी आकर्षक नहीं। –

+0

यही वह है जो मैं सभी के साथ उपयोग कर रहा हूं। कोई फर्क नहीं पड़ता कि मैंने स्मृति की मात्रा के लिए क्या रखा है, मुझे केवल 455 एमबी मिलती है। –

2

मैन्युअल कमांड लाइन पैरामीटर का उपयोग करके इसे सेट करने का प्रयास करें।कुछ इस तरह:

<j2se version="1.6+" java-vm-args="-Xms3072m"/>

+0

मैंने इसे एक शॉट दिया, लेकिन दुर्भाग्य से यह काम नहीं किया। –

+0

काम नहीं करता है (कम से कम जावा 8 के साथ) – jan

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