2015-10-09 17 views
11

मैं JNI के माध्यम से सी ++ लाइब्रेरी का उपयोग कर एक इमेजिंग प्रसंस्करण जावा 7u80 आवेदन के विकास कर रहा हूँ।जावा 8 प्रदर्शन वीएस। जावा 7

जैसा कि मैं जावा 8u60 के साथ execute streams in parallel के लिए तैयार था, मैंने बस जेडीके 8 पर स्विच किया और मेरे सभी यूनिट परीक्षणों को फिर से लॉन्च किया।

Java 8u60 Overall duration: **35'408 [ms]**
Java 7u80 Overall duration: **29'581 [ms]**

जावा 7 मेरे मामले में 17% जावा 8 की तुलना में तेजी है (एक ही कोड, कोड के स्तर resp। 7 और 8)।

  1. मैं अगर इस तरह के परिणाम पहले से ही प्रदर्शन से 8 प्रपत्र जावा 7 हिलाने की एक ढाल नोटिस है अपने आवेदन करने के लिए या दूसरों अगर विशिष्ट हो सकता है सोच रहा था?
  2. वहाँ जावा 8 का सबसे अच्छा पाने के लिए कोड में करने के लिए विशेष रूप से अनुकूलन कर रहे हैं?

कुछ नहीं किया जा सकता है, मैं तो नहीं बल्कि बहु सूत्रण कोड जावा 7 के बजाय 8 के साथ प्रदर्शन लाभ मैं पहले से ही जावा के साथ 7.

+2

समानांतर धाराओं का उपयोग धीमी जब तक सही ढंग से इस्तेमाल किया जाएगा। मान लें कि आपके यूनिट परीक्षण नहीं चल रहे हैं [jmh] (http://openjdk.java.net/projects/code-tools/jmh/) आप संख्याओं को पूरी तरह से अनदेखा कर सकते हैं। –

+2

@ बॉरिस्टेस्पीडर मेरा मानना ​​है कि ओपी ने अभी तक स्ट्रीम का उपयोग नहीं किया है, उसने अभी जेडीके संस्करण का स्विच किया है और तुरंत समग्र अवधि में बदलाव देखा है। –

+0

@ जीन-फ्रैंकोइससार्ड उस मामले में केवल मेरी टिप्पणी का दूसरा भाग लागू होता है। –

उत्तर

6

शुरू 21 SOAPUI (समांतर) परीक्षण रखने के लिए लागू होता है, डब्लूएलएस 12.1.3 के खिलाफ दौड़ चल रहा है। अपने परीक्षण पर्यावरण पर जावा 7u51 (*) और जावा 8u60

नीचे टेस्ट परिणाम (स्क्रीनशॉट के मामले में शामिल है)।

संक्षेप में: SOAPUI समय बस प्रत्येक पारित करने के लिए SOAPUI निष्पादन समय है, जबकि
JMX समय (प्रत्येक पारित के बीच संचयी) समय अपने आवेदन की महत्वपूर्ण हिस्सा पर खर्च होता है।
जेएमएक्स मेट्रिक्स कम्प्यूटेशनल टाइम है (जिसे मैं कम करने की कोशिश करता हूं)। मैं SOAPUI मीट्रिक पर भरोसा नहीं करता क्योंकि मुझे नहीं पता कि इसकी गणना कैसे की जाती है

एसओएपीयूआई के अनुसार, जेडीके 7u51 6.7% जेडीके 8u60 से तेज़ है।
प्रति JMX, JDK 7u51 रूप 15.6% JDK 8u60 की तुलना में तेजी थी।

बाद इस बात की पुष्टि की प्रवृत्ति मेरी इकाई परीक्षण में मनाया (मेरे लिए) - एक ही परिणाम। इन परीक्षणों के बावजूद शायद एक जेवीएम प्रदर्शन का मूल्यांकन करने के लिए उपयोग नहीं किया जा रहा है, मुझे लगता है कि मेरे मामले परिदृश्य में, जेडीके 7 पर रहने के लिए बेहतर है, जैसा कि मेरे मामले में, प्रदर्शन पहलू महत्वपूर्ण है।

जावा 7
Pass1SOAPUI: 22'324 [ms] - JMX :16'286 [ms]
Pass2SOAPUI: 24'129 [ms] - JMX :33'510 [ms]
Pass3SOAPUI: 22'170 [ms] - JMX :49'923 [ms]
कुल SOAPUI: 68'623 [ms](JMX: 49'923 [ms])

जावा 8
Pass1SOAPUI: 25'150 [ms] - JMX :19'767 [ms]
Pass2SOAPUI: 24'564 [ms] - JMX :39'702 [ms]
Pass3SOAPUI: 23'846 [ms] - JMX :59'172 [ms]
कुल SOAPUI: 73'560 [ms](JMX: 59'172 [ms])

(*): जावा 7u60 मेरी इकाई परीक्षण
में के रूप में स्थापित करने के लिए कोई समय नहीं

स्क्रीनशॉट

enter image description here

+0

7 के खिलाफ जावा 8 के प्रदर्शन पर वास्तविक लाभ मल्टीथ्रेडिंग पर है, फोर्क-जॉइन मॉडल कहें। छवि एक अच्छा विचार है, हालांकि यह मूल्यों की सराहना करने के लिए बहुत छोटा है। – another

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