- जैसे-जैसे प्रोजेक्ट अधिक जटिल होता गया, 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 टिप्पणियां
टेस्टिंग के ज़रिए performance सुधारना अच्छी बात है, लेकिन... फिर भी Figma अभी भी गंभीर रूप से धीमा लगता है।
HN कमेंट्स में भी इसके बहुत ज़्यादा धीमे होने की शिकायतें काफ़ी दिख रही हैं. -_-
खासकर Adobe द्वारा अधिग्रहण के बाद से यह बहुत ज़्यादा धीमा हो गया है, ऐसा महसूस होता है (उससे पहले यह उम्मीद से ज़्यादा तेज़ था...)
शायद यह सिर्फ़ मेरा वहम होगा?
HN थ्रेड का AI सारांश