HeadlinesBriefing favicon HeadlinesBriefing.com

Complétion p99 0ms pour 240M domaines

Hacker News •
×

Je gère Wirewiki.com, un site pour inspecter l'infrastructure internet comme les noms de domaine. Il aide les gens à vérifier les enregistrements DNS (historiques), la délégation DNS, la configuration de délivrabilité des e-mails, etc. Il y a beaucoup de sites qui offrent cela (croissant plus vite que jamais grâce au vibe coding), donc j'ai besoin d'un moyen de me démarquer. J'ai choisi la qualité / l'utilité de l'outil et l'expérience utilisateur.

La complétion automatique est le principal moyen de naviguer sur Wirewiki, donc elle devrait être aussi complète, précise et rapide que possible. Je veux qu'elle soit instantanée. Comme, instantanée à la trame suivante.

Je l'ai principalement réalisé. Lors de l'appui sur une touche (l'utilisateur commence à appuyer sur une touche), nous préchargeons les suggestions pour le caractère tapé + tout caractère suivant. Et lors de la relâche de la touche (l'utilisateur relâche la touche), nous rendons les suggestions.

Cela nous donne un budget de temps de la durée de l'appui1 + l'intervalle entre les appuis + la durée de l'appui2. Si l'API renvoie avant la fin du deuxième appui, nous aurons les résultats prêts à temps. (Un affichage 60 Hz rend chaque 16.7 ms. Nous avons donc techniquement un budget de temps supplémentaire de 8.33 ms à p50, mais près de 0 ms à p99.) Touche relâchée Touche appuyée wik GET /autocomplete?q=wi Rendre les complétions pour 'wik' Budget de temps de l'API Temps aller-retour de l'API La demande pour q=wi se déclenche instantanément lorsque i est pressé; si sa réponse atterrit avant que k ne soit relâché, les complétions pour wik se rendent avec une latence perçue nulle.

Ainsi, à des fins de cet article, nous définirons la latence comme de la relâche de la touche aux résultats prêts à être rendus. p99 0 ms signifie que 99% du temps, les résultats seront prêts avant que l'utilisateur ne relâche la touche. Nous avons besoin de deux choses pour que cela se produise : le préchargement et la mise en cache des suggestions côté client, et une API suffisamment rapide. Quelle est la taille du budget ? Nous savons maintenant que nous pouvons dépenser deux durées d'appui sur une touche et une durée d'intervalle, mais combien est-ce en millisecondes ? Je l'ai mesuré en tapant 100 noms de domaine assez rapidement et j'ai trouvé que p99 fonctionne pour moi à 121 ms.