PHP और प्रदर्शन


17

मैं हमेशा सुनता हूं कि PHP मध्यम और छोटी वेबसाइटों के लिए है जबकि एंटरप्राइज़ अनुप्रयोगों के लिए .NET और जावा। मेरा सवाल PHP के बारे में है। एंटरप्राइज़ वेब एप्लिकेशन के लिए PHP एक अच्छा विकल्प क्यों नहीं है? क्या यह इसलिए है क्योंकि अगर वेब एप्लिकेशन बड़ा हो जाता है तो PHP धीमी हो जाएगी क्योंकि यह एक व्याख्या की गई भाषा है?

मुझे पता है कि कॉर्पोरेट जगत अपने उत्पादों के साथ एकीकरण के कारण .NET या J2EE का चुनाव करेगा और बैक एंड सर्विसेज आदि के कारण, हालांकि, यदि हमारे पास साइटों और वेब अनुप्रयोगों के निर्माण के लिए PHP है, तो हम इसका उपयोग कैसे कर सकते हैं बड़ी साइटें?

संक्षेप में, क्या PHP के प्रदर्शन और वेबसाइट के आकार के बीच एक संबंध है? ऐसे कौन से कारक हैं जो PHP को बड़ी साइटों के लिए उपयुक्त विकल्प नहीं बनाते हैं?


1
Mediawiki (विकिपीडिया का इंजन) PHP में लिखा गया है और उन्होंने इसे अच्छा प्रदर्शन किया है, लेकिन यह कुछ भी साबित नहीं करता है। एक आला मामला हो सकता है।
माइकल के

2
एलेक्सा टॉप 50 में साइटों का उपयोग करके @MichaeltheGhost (और शायद थोड़ा और भी) खराब उदाहरण हैं क्योंकि उनकी मात्रा इतने चरम स्तर पर है कि उनके समाधान यातायात के उस स्तर के लिए अत्यधिक अनुकूलित और ठीक ट्यून हैं और वास्तव में समान नहीं हैं अब तकनीक।
रायथल

1
फेसबुक भी PHP का उपयोग कर रहा है। यह भी ध्यान दें कि इसका मतलब प्रदर्शन के बारे में है, प्रदर्शन के बारे में नहीं, लेकिन आप अंतर जानते हैं, है ना? एक और उदाहरण फ्रीमोबाइल है, जिसने स्केलेबिलिटी कारणों से जावा से PHP में अपनी वेबसाइट को फिर से लिखा है।
deadalnix

"वर्तमान में, विकिमीडिया फाउंडेशन में मीडियाविकी में अधिकांश PHP कोड HHVM JIT कंपाइलर का उपयोग करता है, हालांकि कुछ सेवाएं Zend Engine PHP का उपयोग जारी रखती हैं।" en.wikipedia.org/wiki/Wikipedia:FAQ/Technical कि Facebook ने php को तेज करने के लिए क्या बनाया है (यह php to c ++ अनुवादक है जो तब वे संकलित करते हैं)। यह काम करता है, बस आप यह नहीं कह सकते क्योंकि यह php में लिखा है गति हमेशा समान रहेगी। यह इस बात पर निर्भर करता है कि आप उस अर्थ में कोड के साथ क्या करते हैं ...
pqsk

जवाबों:


19

प्रदर्शन शायद कारकों में से एक नहीं है। एक गतिशील भाषा के लिए, PHP वास्तव में बहुत अच्छा प्रदर्शन करता है; कार्य के आधार पर, यह अन्य तकनीकों को हरा भी सकता है और नहीं भी कर सकता है। एप्लिकेशन मॉडल बस जावा या ASP.NET के खिलाफ सीधे तुलना करने के लिए बहुत अलग है। यहां तक ​​कि अगर एक औसत दर्जे का गति अंतर है, तो यह बड़ा नहीं है, और यह शायद रैखिक है, जिसका अर्थ है कि इसे अधिक हार्डवेयर फेंककर हल किया जा सकता है। इसके अलावा, प्रोग्रामिंग भाषा स्वयं ही अड़चन है - एल्गोरिदम, डेटाबेस एक्सेस, नेटवर्क बैंडविड्थ, और I / O सामान्य रूप से सामान्य अपराधी हैं, जब तक कि आप somehing वास्तव में सीपीयू-गहन लिख रहे हैं।

PHP पर ASP.NET या Java का उपयोग करने की वजहें जिनमें अधिक संभावना है:

  • प्लेटफ़ॉर्म एकीकरण। ASP.NET .NET और अंतर्निहित विंडोज ओएस के साथ व्यापक एकीकरण प्रदान करता है।
  • सामान्य शुद्धता। PHP को विशेष रूप से वेब के लिए डिज़ाइन किया गया था, जबकि .NET और जावा सामान्य-उद्देश्य प्लेटफ़ॉर्म हैं। जावा या .NET का उपयोग करके, आप डेस्कटॉप और वेब दोनों प्रकार के खर्चों को एक ही साझा कोड पर थोड़े प्रयास से कर सकते हैं, जबकि PHP डेस्कटॉप अनुप्रयोगों को लिखने के लिए बहुत उपयुक्त नहीं है।
  • कोड संगठन सुविधाएँ। जावा और .NET को शुरुआत से OOP के लिए डिज़ाइन किया गया था, जबकि PHP में OOP कुछ बाद का है। PHP ने हाल ही में नामस्थान पेश किए, और .NET और जावा की पेशकश की तुलना में वे सीमित और अनाड़ी हैं। एंटरप्राइज-स्टाइल प्रोग्रामिंग आमतौर पर ओओपी पर बहुत अधिक निर्भर करती है, जो पीएचपी को कम उम्मीदवार बनाती है।

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

यह कहना नहीं है कि बड़ी परियोजनाओं के लिए PHP अनुपयुक्त है - यह सिर्फ 'एंटरप्रिसि' प्रोग्रामिंग की तरह नहीं है। इसकी ताकत कहीं और है, और यदि आप इनका लाभ उठा सकते हैं, तो आप बस आसानी से बड़े पैमाने पर अनुप्रयोगों का निर्माण कर सकते हैं जैसा कि आप किसी अन्य वेब तकनीक के साथ कर सकते हैं।


2
एक छोटी सी वक्रोक्ति, आप ASP.NET साझा कर सकते हैं एक ही कीमत के लिए होस्टिंग LAMP साझा होस्टिंग के रूप में। समस्या यह है कि ज्यादातर लोग पहली जगह पर हैं जब वे खोज रहे हैं कि वे छोटे से मध्यम आकार के व्यवसाय के लिए विपणन कर रहे हैं और अधिक महंगे हैं।
jfrankcarr

+1, यह बहुत अच्छी तरह से और संक्षेप में कहा गया है। अधिकांश खराब प्रदर्शन वाले अनुप्रयोगों के लिए अड़चन शायद ही कभी भाषा है।
ग्रैंडमास्टरबी

1
सच है, लेकिन नहीं लगता कि जावा एक समाधान है - मुझे ओरेकल जैसी कंपनियों से बहुत सारे 'एंटरप्राइज' ऐप का उपयोग करने का दुर्भाग्य मिला है। लगभग सभी को कार्यक्षमता में थोड़ी कमी के साथ PHP OSS ऐप से बदला जा सकता है, लेकिन प्रदर्शन और usabaility में भारी वृद्धि।
gbjbaanb

3
@gbjbaanb: जावा इस संदर्भ में कोई समाधान नहीं है क्योंकि कोई समस्या नहीं है। और क्या कुछ खुला स्रोत है या नहीं विषय के साथ कुछ नहीं करना है।
तदमर्स

@GrandmasterB हां और नहीं। उदाहरण के लिए, जावा में आंतरिक रूप से सिंक्रोनाइज़ की गई बहुत सी चीज़ें हैं, और PHP नहीं है। स्केलेबल जावा कोड लिखने के लिए अधिक अनुशासन की आवश्यकता होती है। freemobile उस प्रभाव का एक वास्तविक विश्व उदाहरण है। लेकिन, चूंकि स्केलेबिलिटी केवल सीमा पर निर्भर नहीं है (उदाहरण के लिए डेटाबेस यहां बहुत महत्वपूर्ण हैं) आपको इसके बारे में वैसे भी सोचने की जरूरत है।
deadalnix

13

आप ट्रैफ़िक को भ्रमित कर रहे हैं ("लघु और मध्यम वेबसाइट" आमतौर पर छोटे से मध्यम ट्रैफ़िक वाली वेबसाइट का अर्थ है), व्यवसाय तर्क की जटिलता (साधारण वेबसाइट बनाम एंटरप्राइज़ समाधान) की डिग्री के साथ। दूसरे मामले में प्रदर्शन महत्वपूर्ण कारक नहीं है।

उदाहरण के लिए फेसबुक हाई ट्रैफिक वेबसाइट है, लेकिन यह एंटरप्राइज ऐप नहीं है। दूसरी ओर जावा एप्लिकेशन सर्वर पर आधारित इंट्रानेट के ढेर सारे हैं, जो mids वेबसाइट के ट्रैफिक को संभालने में सक्षम नहीं होंगे।

प्रदर्शन-वार PHP सबसे अच्छा विकल्प नहीं है, लेकिन यह उतना बुरा भी नहीं है। विशेष रूप से अन्य गतिशील भाषाओं के साथ तुलना। हालांकि, फिर से, कच्चा प्रदर्शन सबसे महत्वपूर्ण कारक नहीं है। उच्च-ट्रैफ़िक वेबसाइट बनाना आर्किटेक्चरल स्तर पर स्केलेबिलिटी के लिए अनुकूलन के बारे में अधिक है।


PHP उद्यम से इतना तिरस्कृत क्यों है? वहाँ कुछ कारण हैं, पहले यह भयानक सुरक्षा प्रतिष्ठा होगी । दूसरा यह है कि यह बदसूरत, असहनीय HTML-PHP स्पेगेटी कोड बनाने वाले एमेच्योर के लिए एक भाषा के रूप में माना जाता है। यह धारणा बनी रहती है, भले ही परिपक्व एमवीसी ढांचे हों। मुझे लगता है कि PHP के मूल लेखक का तर्क है कि आपको एक फ्रेमवर्क की आवश्यकता नहीं है। तथ्य यह है कि कम से कम कोई प्रोग्रामिंग कौशल के साथ इन द्वंद्वयुद्ध के शौकीनों को खुद को "PHP प्रोग्रामर" कहते हैं, या तो मदद नहीं करता है। तीसरा कारण यह है कि कोई भी अनुभवी प्रोग्रामर इस बात से सहमत होगा, कि PHP केवल एक भाषा के रूप में बुरी तरह से डिज़ाइन की गई है। आप स्पष्ट रूप से देख सकते हैं कि यह एक वेबमास्टर द्वारा डिज़ाइन किया गया था,

और हाँ, एंटरप्राइज़ में यह सिस्टम एकीकरण के बारे में है, जहाँ PHP या तो चमकता नहीं है। पर्याप्त प्रयास से आप C मॉड्यूल बना सकते हैं। PHP-Java पुल है, जो उपयोग करने के लिए काफी थकाऊ है। इससे परे कि आपके पास बहुत कुछ नहीं है। Boost :: PHP बनाने के प्रयास (C ++ के साथ एकीकरण) विफल रहे हैं। जेवीएम पर चलने वाले पीएचपी-क्लोन PHP के साथ 100% संगतता के करीब कुछ भी नहीं हैं (एक साइड नोट के रूप में, कोई औपचारिक PHP भाषा परिभाषा नहीं है, केवल संदर्भ डिफ़ॉल्ट कार्यान्वयन है)।


6

पता नहीं क्यों लोग दावा करते हैं कि PHP छोटी और मध्यम वेबसाइटों के लिए है। मेरे ज्ञान का सबसे अच्छा करने के लिए, यह सच नहीं है। मैं कुछ PHP समर्थित वेबसाइटों को जानता हूं जो छोटे से शुरू हुईं, फिर मेरे देश में टॉप 100 वेबसाइट बन गईं। वे अभी भी PHP का उपयोग करते हैं और इसके बारे में कुछ भी बदलने की कोई योजना नहीं है।

बात यह है कि, लोगों को इस तरह के निष्कर्ष के लिए ड्राइव किया जा सकता है कि जावा के मामले में (और मुझे भी लगता है कि .NET के साथ) आवेदन को रद्द करना एक शब्द है जिसे अक्सर दस्तावेज और साहित्य में लाया जाता है। अधिकांश एप्लिकेशन सर्वर वहां किसी प्रकार के क्लस्टरिंग का समर्थन करते हैं जो लोकप्रियता बढ़ने के साथ-साथ "हॉर्सपावर" को तेजी से जोड़ने की अनुमति देता है। PHP के मामले में आपको स्वयं क्लस्टर का निर्माण करना होगा। आप इसे कई तरीकों से कर सकते हैं, अलग-अलग घटकों का उपयोग करके और आपको पीएचपी इनर कामकाज के बारे में थोड़ा-बहुत जानना होगा। यह शायद लोगों को लगता है, कि PHP के साथ एक सर्वर (और इस तरह छोटी या मध्यम वेबसाइट) PHP के लिए एक मृत अंत है।


3

केवल एंटरप्राइज़ वेब एप्लिकेशन जैसी कोई चीज नहीं है। एंटरप्राइज़ की दुनिया में आमतौर पर आपके पास एक पूर्ण एंटरप्राइज़ सिस्टम होता है, जहां वेब पार्ट पूरे सिस्टम की तुलना में बहुत छोटा होता है। वेब के नीचे कई सिस्टम हैं जो बैच प्रोसेसिंग, कतार मैसेजिंग, एंटरप्राइज इंटीग्रेशन, गेटवे और कई अन्य कार्य करते हैं। शीर्ष पर घटना न केवल हो सकती है

जबकि PHP वेब के लिए अच्छा है अन्य प्रकार के वितरित सिस्टम के लिए अच्छा नहीं है। और जब से आप जावा या .NET में इन सभी प्रणालियों को करते हैं, तो PHP के बजाय एक ही मंच पर वेब स्टैक का निर्माण करना भी आसान है।


1

मैं कहूंगा कि सुरक्षा कमजोरियों के इतिहास की तुलना में PHP के साथ समस्याएं प्रदर्शन से कम हैं। हालांकि निस्संदेह यह PHP में किसी विशेष आकार या जटिलता की एक वेब साइट को लिखना संभव है और अभी भी सुरक्षा बनाए रखता है, क्योंकि जटिलता बढ़ जाती है, जिससे सुरक्षा और अधिक कठिन हो जाती है।

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

चूंकि .NET कम से कम जावा के साथ लगभग सीधे प्रतिस्पर्धा करने की कोशिश करता है, इसलिए यह इस संबंध में बहुत समान सुविधाएं और क्षमताएं प्रदान करता है। आप इस बात पर बहस कर सकते हैं (और दोनों शिविरों का पालन करते हैं) इस बात पर कि क्या सूर्य या Microsoft इस संबंध में बेहतर काम करते हैं, लेकिन साधारण तथ्य यह है कि दोनों लोगों की टीम वास्तव में इस पर काम करने की कोशिश कर रही है, इससे उन्हें PHP पर काफी गंभीर लाभ मिलता है आदर करना।


0

1) प्रदर्शन: यहाँ कई उत्तर उस बिंदु पर भ्रमित हो रहे हैं।
फलांगेर परियोजना (जिसका उपयोग मैंने अतीत में सफलतापूर्वक किया था) आपको PHP और इसके विपरीत सी # कोड का उपयोग करने की अनुमति देता है, या पूरी तरह से एक से दूसरी भाषा में स्विच करने की अनुमति देता है। आपको शायद कुछ बदलाव करने होंगे, लेकिन जैसे-जैसे वे इस पर काम करते रहेंगे, यह बेहतर और बेहतर होता जाता है।
मेरा कहना है, उन्हें पता चला है कि C # के पक्ष में 2.5 गति का एक औसत कारक है (या सामान्य रूप से .NET, VB वही करेगा, यह अंत में MSIL है)।
Wordpress के साथ उनके परीक्षणों की जाँच करें, इसने बहुत से विकासकर्ताओं को आकर्षित किया।

अब हमने उसे अभी तक नहीं देखा है, लेकिन वहाँ हमेशा दोस्त है जो आपको बताने जा रहा है कि फेसबुक PHP में लिखा गया है। गलत। यह, मूल रूप से, जब तक उन्हें अपनी गलती का एहसास नहीं हुआ, और हिपहॉप को इसे C ++ में बदलने के लिए लिखा।

संपादित करें: जाहिरा तौर पर कि आखिरी ब्लॉक अस्पष्ट है, इसलिए मेरा मतलब है फेसबुक है जो पीएचपी में लिखा गया है, लेकिन हिपहॉप इसे R ++ को C ++ बनाता है , समग्र गति में सुधार करने के लिए, BECAUSE PHP धीमा है।

2) सुरक्षा: जैसा कि पहले ही कहा जा चुका है, PHP का सुरक्षा मुद्दों का एक लंबा इतिहास है।

3) विकसित समय: PHP में वेबसाइट बनाना आसान हो जाता है, खासकर फ्रेमवर्क और सभी "साइट-बिल्डरों" के साथ। एक अच्छी, विश्वसनीय और सुरक्षित PHP वेबसाइट बनाना एक और कहानी है।


फ़ेसबुक / हिपहॉप चीज़ के लिए, यह ज़्यादा नहीं बदलता है। वे अभी भी PHP के बयान लिखते हैं, है ना? PHP से जावा कंपाइलर भी है। अगर मैं इसके साथ अपने सभी PHP कोड संकलित करता हूं, तो क्या इसका मतलब है कि मेरी साइट वास्तव में जावा में लिखी गई है?
जेक प्रुशिया

इसका मतलब यह नहीं है कि यह जावा है, इसका मतलब है कि यह इस तरह से निष्पादित करता है।
लुई कोट्टमन

ठीक है, आप सही हैं, लेकिन क्या मैं अभी भी दावा कर सकता हूं कि मेरी साइट PHP में लिखी गई है? यदि हाँ, तो कोई भी दावा कर सकता है कि फेसबुक PHP में लिखा गया है। दूसरे शब्दों में, यह सब उबलता है कि आप "प्रोग्रामिंग भाषा" शब्द को कैसे समझते हैं। क्या यह केवल मान्य कथनों का संयोजन है या यह रनटाइम एनवायरमेंट भी है। मैं पहला अर्थ पसंद करता हूं और यही कारण है कि हिपहॉप चीज मेरे लिए ज्यादा नहीं बदलती है। बहुत सुंदर है कि मैं FaceBook दोस्त का उल्लेख किया :)
Jacek Prucia

ठीक है, मैं इसे स्पष्ट कर दूँगा। लेकिन रिकॉर्ड के लिए, मुझे पूरा यकीन है कि अधिकांश पाठकों ने मेरी बात को समझा।
लुई कोट्टमन

यह मूल रूप से PHP में फेसबुक लिखने के लिए एक गलती नहीं थी। जब उन्होंने पाया कि यह उनके द्वारा देखी जाने वाली खराबी के साथ नहीं रह सकता है, तो उन्होंने हिपहॉप का उपयोग करके समस्या को ठीक किया। मेरा मानना ​​है कि PHP का उपयोग करना सभी वेबसाइटों के लिए एक बहुत अच्छा विकल्प है। उस ने कहा, Slashdot सीधे पर्ल का उपयोग करता है और यह स्केल समस्या को हल करेगा, विकिपीडिया सादे PHP का उपयोग करता है और इसमें स्केल समस्याएं भी नहीं होती हैं।
gbjbaanb
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.