9 पॉइंट द्वारा kuroneko 2023-09-04 | 2 टिप्पणियां | WhatsApp पर शेयर करें
  • जैसे-जैसे प्रोजेक्ट अधिक जटिल होता गया, performance testing के लिए ज़रूरी संसाधन भी काफ़ी बढ़ गए, इसलिए एक नए test system की ज़रूरत पड़ी।
  • वे ऐसा आदर्श test system चाहते थे जो हर code change पर टेस्ट चलाए, 10 मिनट के भीतर टेस्ट पूरा करे, और नतीजों का विस्तार से विश्लेषण कर सके।
  • Figma की performance मुख्य रूप से CPU और GPU से प्रभावित होती थी, इसलिए अलग-अलग तरीकों के फ़ायदे-नुकसान को देखते हुए इसे बड़े तौर पर 2 systems में बनाया गया।
  • cloud-based system
    • GPU वाले VM में Headless Chromium चलाकर parallel में टेस्ट चलाए गए ताकि 10 मिनट के भीतर टेस्ट पूरे हो सकें।
    • VM की प्रकृति के कारण यह बाहरी कारकों से आसानी से प्रभावित हो सकता था, इसलिए लगभग 20% का buffer रखा गया।
  • hardware-based system
    • पुराने laptops (पुराने MacBook, Windows laptops, Chromebook आदि) से बने सिस्टम में सभी tests को schedule करके क्रमवार चलाया गया।
    • टेस्ट में अधिक समय लगता था, लेकिन असली devices पर दिखाई देने वाले सूक्ष्म performance बदलावों को विस्तार से ट्रैक किया गया।
  • इन दो test systems को बनाने के बाद performance सुधारने के प्रयास किए गए और सकारात्मक परिणाम मिले।
  • rendering performance सुधार
    • ऐसे वातावरण में rendering performance सुधारने की कोशिश, जहाँ GPU तो है लेकिन आधुनिक CPU नहीं है।
    • stress tests के ज़रिए विस्तार से जाँच करने पर पता चला कि कुछ features कुछ hardware पर बड़ा overhead पैदा कर रहे थे।
    • rendering time को विस्तार से विभाजित करके और local work को प्राथमिकता देने वाला नया algorithm लागू कर, पुराने hardware पर प्रभावी performance सुधार हासिल किया गया।
  • FigJam performance सुधार
    • tests लिखना कठिन था, लेकिन पहले जहाँ customer inquiries या metrics देखकर बाद में fixes किए जाते थे, अब tests देखकर पहले से समस्याएँ ठीक की जा सकीं।
    • CSS में सूक्ष्म performance अंतर जैसी आसानी से न दिखने वाली समस्याएँ भी tests को कई बार दोहराकर खोजी और ठीक की जा सकीं।
    • खास तौर पर, performance गिरावट पैदा करने वाले code changes को सटीक रूप से ट्रैक किया जा सका, जो बहुत उपयोगी रहा।
  • performance सुधार एक कठिन क्षेत्र है, लेकिन लोग जो सोचते हैं और वास्तविकता अक्सर अलग होती है, इसलिए tests और performance measurement बेहद महत्वपूर्ण हैं।

2 टिप्पणियां

 
kuroneko 2023-09-04

टेस्टिंग के ज़रिए performance सुधारना अच्छी बात है, लेकिन... फिर भी Figma अभी भी गंभीर रूप से धीमा लगता है।
HN कमेंट्स में भी इसके बहुत ज़्यादा धीमे होने की शिकायतें काफ़ी दिख रही हैं. -_-

खासकर Adobe द्वारा अधिग्रहण के बाद से यह बहुत ज़्यादा धीमा हो गया है, ऐसा महसूस होता है (उससे पहले यह उम्मीद से ज़्यादा तेज़ था...)
शायद यह सिर्फ़ मेरा वहम होगा?

 
kuroneko 2023-09-04

HN थ्रेड का AI सारांश

  • skhameneh: WebAssembly में अग्रणी काम करने और GitHub पर अपनी खोज प्रक्रिया साझा करने के लिए Figma के पूर्व CTO Evan Wallace की सराहना करते हैं।
  • imslavko: Evan और Jamie की पिछली ब्लॉग पोस्ट साझा करते हैं, जिनमें Figma के WebAssembly में ट्रांज़िशन, performance testing, और समय के साथ हुए सुधारों का विस्तार से वर्णन है।
  • fhub: बताते हैं कि Evan Wallace ने 2012 में Figma की सह-स्थापना की थी और 2021 में कंपनी छोड़ने से पहले 10 साल तक CTO के रूप में काम किया।
  • antoineMoPa: यह मानकर कि कंपनियों को आमतौर पर बाद वाले में समझौता करना पड़ता है, Figma द्वारा commercial success और technical excellence दोनों हासिल करने पर आश्चर्य व्यक्त करते हैं।
  • tobyjsullivan: समझाते हैं कि जहाँ ज़्यादातर startup गुणवत्ता से ज़्यादा features को प्राथमिकता देते हैं, वहीं Figma एक अपवाद है क्योंकि कुछ startup नई तकनीक में innovation करके उसका commercialization कर सकते हैं।
  • tmpz22: हाल के products के आधार पर software को लेकर बनी संकीर्ण अपेक्षाओं की आलोचना करते हुए कहते हैं कि मौजूदा standard continuous integration pass होना चाहिए।
  • yellow_lead: Figma की 20% error range को देखते हुए पूछते हैं कि दूसरे लोग noisy performance testing environment को कैसे संभालते हैं।
  • imslavko: Figma के auxiliary hardware-आधारित testing system और virtual machines में variation से निपटने के लिए baseline की गणना करने के तरीकों का विस्तार से वर्णन करते हैं।
  • koenbok: साझा करते हैं कि Framer को dedicated test Mac Mini पर 15% variation का सामना करना पड़ा, और अंततः पता चला कि user monitoring ही सबसे विश्वसनीय है।
  • chrisdbanks: यूरोप में load time की समस्या और images के जल्दी लोड न होने का ज़िक्र करते हुए सवाल उठाते हैं कि क्या Figma अमेरिका के बाहर सही ढंग से testing करता है।