मुझे यह कुछ कोड मिला जो मैं अनुकूलित करना चाहता था। यहाँ snipet है:क्या यह एक सामान्य जावा रेगेक्स व्यवहार है?
tempString = bigBuffer.replaceAll("\\n", "");
tempString = tempString.replaceAll("\\t", "");
तब मैं बुद्धिमानी regex का उपयोग करने का फैसला किया है और मैं इस किया था:
tempString = bigBuffer.replaceAll("[\\n\\t]", "");
फिर एक दोस्त ने मुझे बजाय यह करने के लिए कहा था:
tempString = bigBuffer.replaceAll("\\n|\\t", "");
चूंकि मैं अपने परिवर्तनों के परिणाम जानना चाहता हूं, इसलिए मैंने यह सत्यापित करने के लिए एक परीक्षण किया था कि यह एक अच्छा अनुकूलन था या नहीं। तो, परिणाम (जावा संस्करण "1.6.0_27") के साथ परिणाम पहला कोड संदर्भ 100% है।
पाइप के साथ यह 121% है इसलिए कार्य करने में अधिक समय लगा।
वर्ग ब्रैकेट के साथ यह 52% है इसलिए कार्य करने में कम समय लगता है।
रेगेक्स अलग तरीके से व्यवहार क्यों करता है जहां यह वही होना चाहिए?
मार्टिन
यह वही क्यों होना चाहिए? – BoltClock
मेरा मानना है कि यह वही होना चाहिए क्योंकि यह वही काम करता है। हो सकता है कि संकलक को एक अनुकूलन की आवश्यकता हो जब पाइप का उपयोग एकल चरित्र के साथ किया जाता है। – Martin