मेरे पास 8 मेग फ़ाइल है। जेएक्सबी का उपयोग करके मार्शलिंग 1082ms लेता है, डीओएम का उपयोग करके 862 एमएमएस लेता है, सैक्स का उपयोग 438ms लेता है। यह जेडीके 1.6 के साथ सभी डिफ़ॉल्ट का उपयोग कर रहा है, वुडस्टॉक्स का उपयोग करने जैसी कोई अतिरिक्त कॉन्फ़िगरेशन का उपयोग नहीं किया जाता है।जेएक्सबी तेजी से
के प्रयास में, JAXB से बेहतर प्रदर्शन प्राप्त करने के लिए, मैं इसे करने से SAX पार्सिंग का उपयोग करने की कोशिश ...
FileReader fr = new FileReader("myfile.xml");
JAXBContext jc = JAXBContext.newInstance(MyObjectList.class);
Unmarshaller unmarshaller = jc.createUnmarshaller();
XMLInputFactory xmlif = XMLInputFactory.newInstance();
XMLEventReader xmler = xmlif.createXMLEventReader(fr);
long beginTime = System.currentTimeMillis();
MyObjectList obj = (MyObjectList)unmarshaller.unmarshal(xmler);
long endTime = System.currentTimeMillis();
यह जाना भी धीमा हो जाता है - 3207ms।
मेरे प्रश्न हैं: 1. मैं जेएक्सबी को तेज़ी से कैसे बदलूं? 2. मैं 100% कैसे सुनिश्चित कर सकता हूं कि अंतर्निहित पार्सिंग तंत्र क्या उपयोग कर रहा है?
EclipseLink MOXY (मैं तकनीक का नेतृत्व कर रहा हूँ) के लिए +1। मोक्सी जेएक्सबी 2.1 और 2.2 के अनुरूप है। अपने प्रदाता के रूप में इसका उपयोग करने के बारे में जानकारी के लिए: http://blog.bdoughan.com/2011/05/specifying-eclipselink-moxy-as-your.html। हमारी नवीनतम 2.3.2 रिलीज को देखना सुनिश्चित करें: http://www.eclipse.org/eclipselink/downloads/। जीबीएक्स एक जेएक्सबी कार्यान्वयन नहीं है। –