पीएचपी मैनुअल राज्यों PCRE की "एस" (पैटर्न के अतिरिक्त विश्लेषण) संशोधक के बारे में निम्नलिखित http://php.net/manual/en/reference.pcre.pattern.modifiers.phpPCRE पीएचपी उपयोग और "एस" संशोधक (अतिरिक्त पैटर्न के विश्लेषण) की उपयोगिता की कंक्रीट उदाहरण?
पर एस
जब एक पैटर्न में कई बार इस्तेमाल किया जा रहा है, यह खर्च के लायक है मिलान के लिए पर गए समय को तेज़ करने के लिए इसका अधिक समय विश्लेषण करना। यदि यह संशोधक सेट किया गया है, तो यह अतिरिक्त विश्लेषण किया गया है। वर्तमान में, एक पैटर्न का अध्ययन केवल गैर लंगर पैटर्न है कि एक ही तय शुरू कर चरित्र की जरूरत नहीं है के लिए उपयोगी है।
तो इसके उपयोग पैटर्न में कई बार इस्तेमाल किया जाना चाहिए जो से संबंधित है, उनमें से अंदर लंगर के बिना या एक निश्चित शुरू कर चार अनुक्रम, उदा (जैसे ^
, $
के रूप में) '/^abc/'
जैसे पैटर्न में।
लेकिन वहाँ जहां उदा पर किसी भी विशिष्ट विवरण नहीं हैं इस संशोधक को लागू करें और यह वास्तव में कैसे काम करता है।
क्या यह केवल वर्तमान निष्पादन स्क्रिप्ट के PHP थ्रेड के लिए लागू होता है और स्क्रिप्ट निष्पादित करने के बाद पैटर्न के "कैश्ड" विश्लेषण खो जाता है? या इंजन एक वैश्विक कैश जो है तो कई पीएचपी धागे उस पैटर्न यह संशोधक के साथ चिह्नित के साथ PCRE उपयोग करने के लिए उपलब्ध कराया में पैटर्न के विश्लेषण की दुकान करता है?
इसके अलावा, PCRE परिचय से: http://php.net/manual/en/intro.pcre.php
नोट: यह विस्तार संकलित नियमित अभिव्यक्ति का एक वैश्विक प्रति धागा कैश (4096 अप करने के लिए)
हैं "एस" का कहना है संशोधक केवल प्रति थ्रेड का उपयोग किया जाता है, यह संकलित regexps के पीसीआरई कैश से अलग कैसे है? मुझे लगता है कि अतिरिक्त जानकारी संग्रहीत की जाती है, माईएसक्यूएल की तरह कुछ ऐसा करता है जब यह किसी तालिका में पंक्तियों को अनुक्रमित करता है (निश्चित रूप से पीसीआरई के मामले में, यह अतिरिक्त जानकारी स्मृति में संग्रहीत होती है)।
अंतिम, लेकिन कम से कम नहीं, क्या किसी ने वास्तविक उपयोग केस का अनुभव किया है जहां उसने इस संशोधक का उपयोग किया था और क्या आपने कोई सुधार देखा और इसके लाभों की सराहना की?
ध्यान के लिए धन्यवाद।
मुझे पीसीआरई के PHP के उपयोग के कार्यान्वयन विवरण नहीं पता, लेकिन पीसीआरई वी 10 अध्ययन में हमेशा किया जाता है। और पीसीआरई में संकलित रेगेक्स का कोई कैश नहीं है। चेक का अध्ययन करना कि किसी दिए गए पैटर्न के लिए कुछ अनुकूलन संभव हैं या नहीं। –
आपकी टिप्पणी के लिए धन्यवाद, वैसे भी, आप कह रहे हैं कि अध्ययन तंत्र कुछ ऐसा करता है जैसे 'रेगेक्सपी संरचना का विश्लेषण करना और इसे अधिक प्रदर्शन पैटर्न में पुनः लिखना', क्या यह सही है? – tonix
बिल्कुल नहीं। मैं दस्तावेज़ों का उद्धरण दूंगा: * एक पैटर्न का अध्ययन दो चीजें करता है: सबसे पहले, पैटर्न स्ट्रिंग की लंबाई के लिए आवश्यक स्ट्रिंग की लंबाई गणना की गई है। [...] एक पैटर्न का अध्ययन गैर-एंकर पैटर्न के लिए भी उपयोगी है जो में एक निश्चित प्रारंभिक वर्ण नहीं है। बाइट्स शुरू करने के संभावित का बिटमैप बनाया गया है। यह विषय पर एक स्थिति खोजने के लिए गति करता है जिस पर मिलान शुरू करना है। * –