मैं file_get_contents का उपयोग कर डिस्क से एक्सएमएल फाइल लोड कर रहा हूं, और एक परीक्षण के रूप में मुझे लगता है कि मैं3.99 सेकेंड में 1,000 बार उपयोग करके 156K फ़ाइल लोड कर सकता हूं। मैंने उस हिस्से को उपclass किया है जो लोडिंग करता है और इसे एक मेमकेच परत से बदल देता है, और मेरे देव मशीन पर मैं 4.54 सेकेंड में उसी दस्तावेज़ के 1000 लोड कर सकता हूं।memcache_get से file_get_contents तेज क्यों है?
मुझे खुशी है कि file_get_contents() कुछ कैशिंग क्या करेंगे, लेकिन ऐसा लगता है कि यह वास्तव में एक प्रसिद्ध कैशिंग तकनीक की तुलना में तेजी है। एक सर्वर पर, file_get_contents()
का प्रदर्शन उतना ही अच्छा है जितना कोई भी प्राप्त कर सकता है?
मैं मैकपोर्ट्स, ओएस एक्स 10.6.8 के माध्यम से PHP 5.2.17 पर हूं।
संपादित करें: मैं इस आकार के एक्सएमएल दस्तावेजों पर मिल गया है, वहाँ MEMCACHE_COMPRESSED
ध्वज का उपयोग में किया जा करने के लिए एक छोटे से लाभ है। Memcache के माध्यम से 1,500 भार 6.74 (बिना) के बजाय 6.44 सेकंड (संपीड़न के साथ) में किए जाते हैं। हालांकि दोनों file_get_contents
से धीमे हैं, जो 5.71 सेकेंड में समान संख्या में लोड करता है।
आह, दिलचस्प। क्या आप कह रहे हैं कि एक वेब सर्वर पर जिसमें विभिन्न एक्सएमएल फाइलें हर समय लोड की जा रही हैं, कुछ मामलों में memcache दृष्टिकोण _might_ का प्रदर्शन बेहतर होगा? (मैं कम अंत लिनक्स वीपीएस पर तैनात होने की उम्मीद करता हूं, शायद 512 एमबी रैम के साथ - डिफ़ॉल्ट 64 एम के लिए बहुत मुफ्त है जो डिफ़ॉल्ट रूप से memcache रिजर्व करता है।) – halfer
फिर भी, मुझे आश्चर्य है कि विवाद जो एफएस कैश से कुछ खटखटाएगा, उतना ही उतना ही होगा जितना कि मेमचेचे कैश ';-) ' – halfer
एक वीपीएस पर जो एक ऐप को समर्पित है, आपको सक्षम होना चाहिए सब कुछ फिट करने के लिए मिलता है। हालांकि इसके कैश "सही आकार" के लायक हैं: memcache के लिए 32 एम या कम होने पर कम करें। यदि आपका ऐप PHP आधारित है तो सुनिश्चित करें कि आप एपीसी या एक्सकैच का उपयोग कर रहे हैं। यह न भूलें कि यदि आप MySQL का उपयोग करते हैं, तो आप MySQL कैश को ट्यून करने से अच्छा प्रदर्शन लाभांश प्राप्त कर सकते हैं ... 512 एमबी इतना छोटा है कि आपको बुद्धिमानी से आवंटित करने की आवश्यकता है। – TerryE