2009-11-16 18 views

उत्तर

6

ध्यान देने योग्य एक बात यह है कि JAXBContext.newInstance() एक बहुत ही धीमी गति से संचालन है। यह वह जगह है जहां बहुत प्रतिबिंब और वर्ग पीढ़ी होती है, जिससे डफिमो द्वारा वर्णित परम स्पेस के मुद्दों का कारण बनता है। शुक्र है, JAXBContext थ्रेड-सुरक्षित है, इसलिए यह cache one away and reuse it पर ठीक है। अन्यथा, मुझे लगता है कि यह कहना सुरक्षित है कि पूर्ण DOM की तुलना में JAXB मेमोरी उपयोग ऑन-पैरा (या शायद कम) होगा, और, निश्चित रूप से, SAX से अधिक है।

यदि आपके पास बहुत बड़े दस्तावेज़ हैं, तो यह संभव है process them in chunks with JAXBJAXB RI distribution में जेएक्सबी के साथ स्ट्रीमिंग का एक उदाहरण शामिल है।

0

मैंने देखा है कि जावा में अधिक 'सरल' एक्सएमएल हैंडलिंग तंत्र जैसे एक्सरस SAXParser के विपरीत प्रदर्शन को JAXB के साथ बहुत बुरी तरह प्रभावित किया जा सकता है।

2

जेएक्सबी डीओएम-आधारित पार्सिंग के समान मूलभूत मुद्दों से ग्रस्त है, जो आमतौर पर बोल रहा है, संपूर्ण डेटा डेटा संरचना एक ही समय में स्मृति में आयोजित की जाती है। उस ने कहा, यह आम तौर पर एक डीओएम एपीआई (एक्सओएम के संभावित अपवाद के साथ) से कम स्मृति-भूखा है।

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

+0

आप पार्सर तरह SAX के रूप में JAXB का उपयोग कर व्याख्या कर सकते हैं ठीक कर सकते हैं? –

+1

आपको SAX (पुराना प्रसंस्करण मॉडल) का उपयोग करने की आवश्यकता नहीं है, आप STAX या VTD-XML –

+0

@Jimmy का भी उपयोग कर सकते हैं: https://jaxb.dev.java.net/guide/Dealing_with_large_documents.html#Processing%5Fa % 5Fdocument% 5Fby% 5Fchunk – skaffman

1

जेएक्सबी के पास आपके परम स्पेस में जोड़े जाने वाले वर्ग बनाने के लिए प्रतिबिंब का उपयोग करने का अतिरिक्त मुद्दा है। OutOfMemoryError तबाही आ सकता है।

+0

अधिक [प्रासंगिक उत्तर] (http://stackoverflow.com/a/33431431/122727) NoOptimize के बारे में। – kubanczyk

2

आप वास्तव में जावा XML डेटा अत्यधिक ऑब्जेक्ट निर्माण/विनाश के कारण बंधन के साथ प्रदर्शन और स्मृति मुद्दों में चला सकते हैं, this article बंधन तकनीक उन मुद्दों

0

JVM तर्क नीचे जोड़ने से परहेज मदद मिल सकती है कि एक नए डेटा की व्याख्या में मदद मिल सकती इस मुद्दे (मामूली प्रदर्शन प्रभाव के साथ)

-Dcom.sun.xml.bind.v2.bytecode.ClassTailor.noOptimize=true 

https://issues.apache.org/jira/browse/CXF-2939

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