मैं प्रतीक्षा (ttfb) समय को कैसे कम कर सकता हूं


113

मेरे पास एक क्वेरी है जिसमें उस समय के आधार पर क्रमबद्ध क्रम में तालिका से उपयोगकर्ता की एक सूची प्राप्त करना शामिल है जो इसे बनाया गया था। मुझे क्रोम डेवलपर टूल्स से निम्नलिखित टाइमिंग आरेख मिला है।

क्रोम से समय

आप देख सकते हैं कि TTFB (पहले बाइट का समय) बहुत अधिक है।
मुझे यकीन नहीं है कि यह SQL सॉर्ट के कारण है। यदि वह कारण है तो मैं इस समय को कैसे कम कर सकता हूं?
या यह TTFB की वजह से है। मैंने ब्लॉग देखा जो कहता है कि TTFB कम होना चाहिए (<1sec)। लेकिन मेरे लिए यह 1 सेकंड दिखाता है। क्या यह मेरी क्वेरी या कुछ और के कारण है?
मुझे यकीन नहीं है कि मैं इस समय को कैसे कम कर सकता हूं।
मैं कोणीय का उपयोग कर रहा हूं। क्या मुझे एसक्यूएल के बजाय तालिका को सॉर्ट करने के लिए कोणीय का उपयोग करना चाहिए? (कई पोस्ट कहते हैं कि यह मुद्दा नहीं होना चाहिए)
मैं जानना चाहता हूं कि मैं टीटीएफबी को कैसे कम कर सकता हूं। दोस्तों! मैं वास्तव में इसके लिए नया हूं। यह मेरी टीम के सदस्यों द्वारा मुझे दिया गया कार्य है। मुझे यकीन नहीं है कि मैं टीटीएफबी का समय कैसे कम कर सकता हूं। मैंने कई पोस्ट देखे, लेकिन ठीक से समझ नहीं पाया। TTFB क्या है क्या यह सर्वर द्वारा लिया गया समय है?


8
आपका प्रश्न यह समझने की कमी दर्शाता है कि यहाँ क्या हो रहा है। यह सर्वर के लिए समय की प्रतीक्षा कर रहा है, इसलिए चाहे आप AngularJS का उपयोग करें या कुछ अन्य ढांचे अप्रासंगिक हैं। यदि आप सर्वर साइड कोड में सुधार करना चाहते हैं, तो आपको वास्तव में हमें कोड दिखाना होगा।
प्रातः

@govindpatel, अगर नीचे दिए गए मेरे उत्तर ने आपकी मदद की है या आपको लगता है कि यह प्रश्न का उत्तर देता है, तो कृपया इसे सही उत्तर के रूप में चिह्नित करें;)
डैनियल टी। सोब्रोसा

सरल तालिका छांटने के लिए (यह मानकर कि तालिका डेटा पहले ही प्राप्त हो चुका है और आप एक अलग संपत्ति द्वारा डेटा का सहारा ले रहे हैं) यह क्लाइंट-साइड को सॉर्ट किए गए डेटा के लिए एक अन्य अनुरोध भेजने की तुलना में करना अधिक तेज़ होगा।
ऋचीक एससी

जवाबों:


115

TTFB प्रतिक्रिया के शरीर के पहले बाइट का समय नहीं है (जैसे, उपयोगी डेटा, जैसे: json, xml, आदि), लेकिन सर्वर से प्राप्त प्रतिक्रिया के पहले बाइट का समय। यह बाइट प्रतिक्रिया हेडर की शुरुआत है।

उदाहरण के लिए, यदि सर्वर हार्ड काम करने से पहले हेडर भेजता है (जैसे भारी एसक्यूएल), तो आपको बहुत कम टीटीएफबी मिलेगा, लेकिन यह "सच" नहीं है।

आपके मामले में, TTFB उस समय का प्रतिनिधित्व करता है जब आप सर्वर पर डेटा प्रोसेसिंग करते हैं।

TTFB को कम करने के लिए, आपको सर्वर-साइड काम तेजी से करने की आवश्यकता है।


2
TTFB के दौरान होने वाले समय का और अधिक निदान करने के लिए, आप प्रत्येक तर्क पर खर्च किए गए समय को डीबग करने के लिए सर्वर-साइड टाइमिंग विधियों (जैसे सेटअप टाइमर, या डीबग लॉग) का उपयोग कर सकते हैं।
रैप्टर

1
: इस लेख के लिए एक नज़र में, यह विवरण में समस्या बताते हैं और संभव समाधान के लिए सलाह देता है websiteoptimization.com/speed/tweak/time-to-first-byte
LucaM

TTFB को सबसे महत्वपूर्ण बिंदु मानने से सावधान रहें: blog.cloudflare.com/…
Owen Blacker

यदि यह उत्तर आपको @govindpatel में मदद करता है, तो इसे सही प्रतिक्रिया के रूप में चिह्नित करें, कृपया;)
डैनियल टी। सोब्रोसा

16

मैं उसी समस्या से मिला हूं। मेरा प्रोजेक्ट स्थानीय सर्वर पर चल रहा है। मैंने अपना php कोड चेक किया।

$db = mysqli_connect('localhost', 'root', 'root', 'smart');

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

127.0.0.1 localhost


5
धन्यवाद। मैं बदल गया था localhost(TTFB: 1s) से 127.0.0.1(TTFB: 12ms)
मिस्टर ब्लैक

मेरे मामले में इस जवाब से भी मदद मिली: TTFB 2,39 s -> TTFB 110 मि। किसी ने इसे नीचा क्यों दिखाया?
मार्टिन पाब्स्ट

मुझे लगता है कि यह मेरे स्प्रिंग-बूट एप्लिकेशन के लिए भी तय किया गया था, मैं एक डॉकटर-कंटेनर में एक पोस्टग्रेज डेटाबेस का उपयोग कर रहा हूं, टीटीएफबी 10s तक था, अब यह केवल 40ms के बारे में है :)
सेपुल्तुरा

"लोकलहोस्ट" को इतना अधिक समय क्यों लगता है?
शोदेव

14

TTFB कुछ ऐसा है जो पर्दे के पीछे होता है। आपका ब्राउज़र पर्दे के पीछे क्या होता है, इसके बारे में कुछ नहीं जानता।

आपको यह देखने की आवश्यकता है कि कौन सी क्वेरी चल रही हैं और वेबसाइट सर्वर से कैसे जुड़ती है।

यह लेख टीटीएफबी को समझने में मदद कर सकता है, लेकिन अन्यथा आपको अपने आवेदन में गहराई से खुदाई करने की आवश्यकता है।


4

मेरा सुझाव है कि आप इस लेख को पढ़ें और उपयोगकर्ता के अनुरोध (या तो एक पृष्ठ, एक खोज परिणाम आदि) के लिए समग्र प्रतिक्रिया को अनुकूलित करने के तरीके पर अधिक ध्यान केंद्रित करें।

इसके लिए एक अच्छा तर्क वह उदाहरण है जो वे पृष्ठ को संक्षिप्त करने के लिए gzip का उपयोग करने के बारे में देते हैं। भले ही जब आप संपीड़ित नहीं करते हैं तो ttfb तेज होता है, उपयोगकर्ता का समग्र अनुभव सबसे खराब होता है क्योंकि यह उस सामग्री को डाउनलोड करने में अधिक समय लेता है जो ज़िपित नहीं है।


उस लेख के टिप्पणी अनुभाग को देखना सुनिश्चित करें। कई लोग TTFB से संबंधित होने के लिए सम्मोहक कारण देते हैं।
ज़ैक मैकोम्बर

4

यदि आप PHP का उपयोग कर रहे हैं, तो पहले और <?php flush(); ?>बाद का उपयोग करने का प्रयास करें</head></body> या जो भी अनुभाग आप आउटपुट करना चाहते हैं उसका (हेडर या सामग्री की तरह)। यह वास्तव में php के अंत की प्रतीक्षा किए बिना कोड को आउटपुट करेगा। इस फ़ंक्शन का उपयोग हर समय न करें, या गति वृद्धि ध्यान देने योग्य नहीं होगी।

और जानकारी

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.