2009-03-12 14 views
5

मैं PHP बनाम वेब पृष्ठों को पाइथन के लिए Django या Turbogears जैसे टूल का उपयोग करके लंबे समय से चलने वाली प्रक्रिया में वेब ऐप्स लिखने के बारे में आपकी राय लेना चाहता हूं।PHP बनाम लंबी चल रही प्रक्रिया (पायथन, जावा, आदि)?

मैं जानता हूँ कि जहाँ तक: - पेज recompiled हैं - पीएचपी में, उन पृष्ठों हार्ड डिस्क हर बार (हालांकि मुझे लगता है ओएस कुछ समय के बाद वे पहुँचा दिया गया है के लिए रैम में फ़ाइलों को रखता है) से लाई जाती हैं, ऑपोड में हर बार (हालांकि उदाहरण के लिए उपकरण। ज़ेंड रैम में एक संकलित संस्करण रख सकता है) - प्रत्येक बार पृष्ठों को प्राप्त करना हर बार वैश्विक और सत्र डेटा पढ़ने का मतलब है, और डीबी

से कनेक्शन फिर से खोलना है, तो मुझे लगता है PHP एक साझा सर्वर (समान होस्ट साझा करने वाली एकाधिक साइटें) पर मध्यम उपयोग के साथ ऐप्स चलाने के लिए समझ में आता है, जबकि एक लंबी-चलती प्रक्रिया समर्पित सर्वर पर चलने वाले ऐप्स के साथ उच्च प्रदर्शन प्रदान करती है और भारी उपयोग में होती है?

किसी भी प्रतिक्रिया के लिए धन्यवाद।

उत्तर

-1

पीएचपी जावा आदि की तरह एक भाषा केवल अपने निष्पादन php द्विआधारी और नहीं JVM है! आप किसी भी समस्या के बिना PHP-स्क्रिप्ट के लिए एक और MAX-Runtime सेट कर सकते हैं (यदि आपका साझा होस्टिंग प्रदाता आपको ऐसा करने देता है)।

जहाँ आपके ऐप्स चल रहे सर्वर के प्रकार पर निर्भर नहीं रहना चाहिए। यह एप्लिकेशन (सीपीयू-टाइम, रैम) द्वारा उपयोग किए गए संसाधनों पर निर्भर होना चाहिए और आपके सर्वर/वीसर/साझा होस्ट द्वारा क्या दिया जाता है!

प्रदर्शन ट्यूनिंग कारणों के लिए आपको eAccelerator आदि पर एक नज़र रखना चाहिए अपाचे कनेक्शन पूलिंग के लिए मॉड्यूल का भी समर्थन करता है! mod_dbd देखें। यदि आपको स्केल करने की आवश्यकता है (जैसे क्लस्टर में) तो आप memcached जैसे वितरित मेमोरी कैशिंग सिस्टम का उपयोग कर सकते हैं!

1

पीएचपी ठीक मेरी राय में या तो उपयोग के लिए, प्रदर्शन ओवरहेड्स शायद ही कभी देखा जाता है। यह आमतौर पर अन्य प्रक्रियाएं होती है जो कार्यक्रम में देरी करेगी। EAccelerator जैसे कुछ के साथ PHP प्रोग्राम कैश करना आसान है।

2
    APC साथ
  • , है जो जल्द ही पीएचपी संकलित बाईटकोड में डिफ़ॉल्ट रूप से शामिल होने के लिए रैम में रखा है।
  • mod_php के साथ, जो PHP का उपयोग करने का सबसे लोकप्रिय तरीका है, PHP दुभाषिया वेब सर्वर की स्मृति में रहता है।
  • APC data store या memcache के साथ, आप रैम में के बजाय उदाहरण के लिए हमेशा डीबी से डेटा प्राप्त करने में द्वारा नए सिरे से उन सब को बनाने लगातार वस्तुओं हो सकता है।

वास्तविक जीवन तैनाती में आप ऊपर के सभी का उपयोग करेंगे।

+0

सबसे अच्छा समाधान इन दोनों का उपयोग करता है, या वैकल्पिक रूप से Fast_GI सेटअप के साथ mod_php को प्रतिस्थापित करता है। – Powerlord

+0

बेशक, किसी भी तरह से मैं सुझाव नहीं दूंगा कि ये विकल्प हैं – vartec

+0

एक उचित कॉन्फ़िगर किए गए वेबसर्वर पर, I/O कैश किया जाएगा - इसलिए एपीसी/mod_php के बिना भी डिस्क को मारने की संभावना नहीं है। मैं सीजीआई पर तेजी से सीजीआई पर mod_php का उपयोग करने का सुझाव दूंगा हालांकि (@Powerlord: mod_PHP FastCGI से तेज़ी से चलाएगा)। सत्र को दोबारा पढ़ने से बचने का कोई तरीका नहीं है, हालांकि आप मेमकैड जैसे तेज स्टोरेज माध्यम का उपयोग कर सकते हैं। – symcbean

2

के बाद आप मेम्कैश, opcode कैशिंग, और कनेक्शन पूलिंग लागू, पीएचपी और अन्य विकल्पों के बीच केवल वास्तविक अंतर है कि PHP अल्पकालिक, आधारित संसाधित है, जबकि अन्य विकल्प हैं, आम तौर पर, लंबे समय तक रहा बहु आधारित है।

लाभ पीएचपी है कि अपनी गंदगी सरल स्क्रिप्ट लिखने के लिए है। आपको स्मृति प्रबंधन के बारे में चिंता करने की ज़रूरत नहीं है (यह हमेशा अनुरोध के अंत में जारी की जाती है), और आपको समेकन के बारे में चिंता करने की ज़रूरत नहीं है।

प्रमुख नुकसान, मैं किसी भी तरह से देख सकता हूं, यह है कि कुछ और उन्नत (कभी-कभी पागल?) चीजें कठिन होती हैं: पूर्व-कंप्यूटिंग परिणाम, वार्मिंग कैश, मौजूदा डेटा का पुन: उपयोग, प्राथमिकता का अनुरोध, और असीमित प्रोग्रामिंग। मुझे यकीन है कि लोग कई और सोच सकते हैं।

अधिकांश समय, हालांकि, ये नुकसान एक बड़ा सौदा नहीं है। आप अधिक मशीनों और अधिक कैशिंग का उपयोग करके स्केल कर सकते हैं। औसत वेब डेवलपर को समवर्ती नियंत्रण या स्मृति प्रबंधन के बारे में चिंता करने की आवश्यकता नहीं है, इसलिए उन्हें हटाने से कम से कम हिट लेना एक बड़ा सौदा नहीं है।

0

जैसा कि कई अन्य ने ध्यान दिया है, PHP और न ही Django आपकी बाधाओं के लिए जा रहे हैं। PHP पर बाइटकोड के लिए हार्ड डिस्क को मारना भारी तस्करी साइट के लिए अप्रासंगिक है क्योंकि उस बिंदु पर कैशिंग का अधिग्रहण होगा। Django के लिए भी यही सच है।

मॉडल/व्यू और उपयोगकर्ता अनुभव डिज़ाइन में भाषा पर प्रदर्शन के लिए परिमाण लाभ का क्रम होगा।

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