HeadlinesBriefing favicon HeadlinesBriefing.com

إكمال تلقائي p99 0ms لـ 240M اسم نطاق

Hacker News •
×

أدير Wirewiki.com، موقع لفحص بنية الإنترنت مثل أسماء النطاقات. يساعد الناس على فحص سجلات DNS (التاريخية)، وتفويض DNS، وإعدادات قابلية تسليم البريد الإلكتروني، إلخ. هناك الكثير من المواقع التي تقدم هذا (تنمو أسرع مما سبق بفضل vibe coding)، لذا أحتاج إلى طريقة للتميز. اخترت جودة الأداة / الفائدة وتجربة المستخدم. الإكمال التلقائي هو الطريقة الرئيسية للتنقل في Wirewiki، لذا يجب أن يكون قدر الإمكان كاملاً ودقيقاً وسريعاً. أريد أن يكون فورياً. مثل، في الإطار التالي فورياً. لقد حققت ذلك في الغالب. عند الضغط على المفتاح أسفل (يبدأ المستخدم في الضغط على المفتاح)، نقوم بجلب المقترحات مسبقاً للحرف المكتوب + أي حرف لاحق. وعند الضغط على المفتاح أعلى (يقوم المستخدم بإطلاق المفتاح)، نقوم بعرض المقترحات. هذا يعطينا ميزانية زمنية تساوي مدة الضغط1 + الفجوة بين الضغط + مدة الضغط2. إذا عادت واجهة برمجة التطبيقات قبل نهاية الضغط الثاني، فسنحضر النتائج في الوقت المناسب. (شاشة بتردد 60 هرتز تعرض كل 16.7 ملي ثانية. لذا لدينا تقنياً ميزانية زمنية إضافية قدرها 8.33 ملي ثانية في p50، لكنها قريبة من 0 ملي ثانية في p99.) مفتاح تم إطلاقه مفتاح تم ضغطه wik GET /autocomplete?q=wi عرض الإكمالات لـ 'wik' ميزانية زمنية لواجهة برمجة التطبيقات زمن جولة واجهة برمجة التطبيقات طلب q=wi يُطلق في اللحظة التي يتم فيها ضغط i؛ إذا وصلت استجابته قبل إطلاق k، فإن الإكمالات لـ wik تُعرض بلا استجابة متأخرة مدركة. لذلك، من أجر أهداف هذه المقالة، سنحدد التأخير بأنه من إطلاق المفتاح إلى النتائج الجاهزة للعرض. p99 0 ملي ثانية يعني أن 99% من الوقت، ستكون النتائج جاهزة قبل أن يقوم المستخدم بإطلاق المفتاح. نحن بحاجة إلى شيئين لجعل هذا يحدث: تحميل المقترحات وتخزينها في الذاكرة المخبأة على جانب العميل، وواجهة برمجة تطبيقات سريعة بما يكفي. كم هي الميزانية؟ الآن نعلم أننا يمكننا إنفاق مدتين للضغط على المفتاح ومدة الفجوة، لكن كم هذا بالملي ثانية؟ لقد قمت بقياسه أثناء كتابة 100 أسماء نطاق بسرعة معقولة ووجدت أن p99 يعمل لي في 121 ملي ثانية.