2010-03-02 18 views
5

मैं वर्तमान में प्रदर्शन प्रोफाइलिंग की प्रक्रिया में हूं। हमारे पास मूल क्लाइंट/सर्वर एप्लिकेशन है। यदि मैं लैन पर दो कंप्यूटरों में एक ही मशीन (लोकलहोस्ट) बनाम क्लाइंट/सर्वर चलाता हूं तो क्या टीसीपी ट्रांसफर की गति अलग होगी?लोकलहोस्ट बनाम लैन: गति अंतर?

उत्तर

6

टीसीपी स्थानांतरण की गति होगी! क्योंकि यदि आप इसे उसी कंप्यूटर पर चलाते हैं तो यह लैन और नेटवर्क एडेप्टर को छूए बिना स्थानीय रूप से पैकेट को अग्रेषित करेगा।

लेकिन विभिन्न मशीनों पर क्लाइंट + सर्वर की समग्र गति बेहतर हो सकती है, खासकर अगर आप सर्वर से अक्सर संवाद नहीं करते हैं।

+0

@ एंड्री: यह जरूरी नहीं है।लूपबैक का उपयोग करके स्थानीय कनेक्शन अभी भी एडाप्टर के माध्यम से पारित किए जाते हैं यदि एप्लिकेशन निर्देश देता है कि यह स्थानान्तरण के लिए नेटवर्क परत का उपयोग करता है। –

+2

कृपया बताएं कि एप्लिकेशन नेटवर्क का उपयोग करने के लिए कैसे निर्देश दे सकता है? – Andrey

-1

यह वास्तव में क्या आपके आवेदन करता है पर निर्भर करता है ....

एक उदाहरण के रूप: यह क्लाइंट से सर्वर तक 10GB फ़ाइलें स्थानांतरित करता है, तो हाँ, यह एक फर्क होगा।

3

हां निश्चित रूप से, नेटवर्क पर इसे भेजने की विलंबता कार्यक्रम को धीमा कर देगी। थ्रूपुट नहीं होगा, लेकिन यदि आप डेटा भेजने से पहले जवाबों की प्रतीक्षा कर रहे हैं तो यह अतिरिक्त विलंबता के कारण बनता है।

+0

लोकहोस्ट के लिए, मुझे अपने राउटर को पिंग करने के लिए 0.024ms के पिंग टाइम्स मिलते हैं, मुझे 0.339ms – Earlz

+0

LNDCobra का समय मिलता है, यह वास्तव में एक अच्छा जवाब है। "अगर आप जवाबों की प्रतीक्षा कर रहे हैं" ... ऐसा तब होता है जब आप स्काइप पर किसी से बात करते हैं। विलंबता के कुछ एमएस के कारण पूरी बातचीत धीमी हो जाती है। –

+0

हां, यदि आप 0.024 और 0.339 के बीच के अंतर के बारे में सोचते हैं, तो उन समय के अनुसार स्थानीयहोस्ट लैन से लगभग 15x तेज है। –

0

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

लेकिन आपके आवेदन के आधार पर, यह संभव हो सकता है या इससे कोई फर्क नहीं पड़ता।

1

स्थानीयहोस्ट का उपयोग करते समय, स्थानीय संसाधनों को मेमोरी, डिस्क, सीपीयू इत्यादि के कारण प्रदर्शन की बाधा होने की संभावना अधिक होती है। दो कंप्यूटरों का उपयोग करते समय, अधिक संभावना है कि नेटवर्क विलंबता, बैंडविड्थ, थ्रूपुट, पैकेट नुकसान, आदि

यह इस बात पर निर्भर करता है कि आपका एप्लिकेशन क्या करता है और यह नेटवर्क, क्लाइंट और सर्वर का उपयोग कैसे करता है।

0

क्लाइंट और सर्वर एक ही मशीन पर स्थानांतरण समय लगभग निश्चित रूप से तेज़ होगा। क्लाइंट और सर्वर द्वारा उपभोग किए गए अन्य संसाधनों के आधार पर यह वास्तव में आपके कार्यक्रम के प्रदर्शन के लिए महत्वपूर्ण नहीं हो सकता है।

2

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

पीसी पर निर्मित नेटवर्क बंदरगाहों में निर्मित एक असुविधाजनक संदेह सभी समान गुणवत्ता नहीं है, इसलिए यदि वे गिगाबिट होने का दावा करते हैं, तो भी आप वास्तव में उस उपवास में सक्षम नहीं हो सकते हैं। लेकिन यह कई विंडोज सिस्टम कॉल भी कर सकता है (प्रति पैकेट एक ओएस कॉल) एक महत्वपूर्ण ओवरहेड हो सकता है। टीसीपी के साथ मैं ओएस को एकल कॉल में लिखने के लिए डेटा का एक बड़ा हिस्सा सौंप सकता हूं। यूडीपी के साथ मुझे इसे एक समय में एक पैकेट सौंपना है, जो एमटीयू आकार से सीमित है, जिसके परिणामस्वरूप ओएस कॉल की एक बड़ी संख्या है। लेकिन अभी तक पुष्टि नहीं की।

अभी तक लिनक्स की कोशिश नहीं की है।

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