- पिछले कुछ महीनों में Safari browser पर GitHub वेबसाइट की गति लगातार घटती गई है
- बड़े PR या हज़ारों लाइनों वाली code files में स्क्रीन rendering लगभग असंभव हो गई है
- browser का rendering process 100% उपयोग करता है, scroll करते समय खाली स्क्रीन दिखती है, और search व comment features में गंभीर delay होता है
- CSS बदलाव और transform के उपयोग का Safari के performance bug से टकराव इस समस्या की वजह बन रहा है; Chrome जैसे दूसरे browsers तुलनात्मक रूप से बेहतर हैं
- WebKit में कुछ performance patches किए गए हैं, लेकिन Safari की अगली release से पहले तक GitHub frontend team की अस्थायी प्रतिक्रिया की ज़रूरत बताई गई है
पृष्ठभूमि और मुख्य समस्या
- हाल के समय में Safari browser पर GitHub वेबसाइट खोलने पर कुल मिलाकर performance degradation साफ़ दिख रही है
- खास तौर पर Pull Request(PR) में हज़ारों लाइनों से अधिक changes देखना या बड़े code files browse करना rendering के स्तर पर ही लगभग असंभव हो गया है
- Activity Monitor में rendering process 100% CPU लेता हुआ दिखता है, और page rendering इतनी धीमी हो जाती है कि scroll करने पर स्क्रीन खाली जगह जैसी दिखाई देती है
- search, comment जैसी interactive features में गंभीर delay होता है, और PR review के दौरान checkbox क्लिक करने में भी कई सेकंड लग जाते हैं
- हाई-एंड Apple Silicon वाले नए MacBook Pro पर भी यही समस्या होती है, जबकि Chrome या दूसरे browsers में अनुभव काफ़ी बेहतर है
समस्या का कारण और विश्लेषण
- Safari 18.6 version (और beta/tech preview) users से यह शिकायत आम तौर पर मिली है
- कुछ users ने कहा कि Safari में नहीं, बल्कि खासतौर पर GitHub पर ही असामान्य रूप से गंभीर performance issue दिखता है
- CSS selectors और
transform: translateY के बड़े पैमाने पर उपयोग का Safari की GPU layer handling limits से सीधा टकराव बताया गया है
- GitHub frontend हर text line को
transform: translateY से place कर रहा है, जिससे Safari को हज़ारों GPU layers बनानी पड़ती हैं
- Chrome ऐसी animation न होने पर layer creation को optimize कर लेता है, इसलिए performance तुलनात्मक रूप से कम खराब रहती है
- अस्थायी उपाय के रूप में
transform property हटाने वाला script लगाने पर speed बढ़ती है, लेकिन positioning पूरी तरह सटीक नहीं रहती
user experience और विभिन्न रिपोर्टें
- कई users ने PR में reviewer/label जोड़ने, PR description edit करने जैसे सभी interactions में कई सेकंड की देरी की शिकायत की
- Safari में code browser और autocomplete UI (search bar, command palette आदि) बहुत धीमे हो जाते हैं
- iOS Safari में back native button जैसे browser features भी ठीक से काम न करने के मामले सामने आए हैं
- accessibility (VoiceOver) के लिहाज़ से भी performance इतनी गिर गई है कि visually impaired users के लिए इसका उपयोग लगभग असंभव हो गया है
समाधान और प्रतिक्रिया पर चर्चा
- WebKit (Safari engine) की ओर से इस CSS/compositor performance problem के कुछ हिस्सों पर patch किया गया है, लेकिन Safari की अगली release से पहले तुरंत समाधान मुश्किल है
- GitHub engineers के लिए अगली Safari release से पहले bug response proposal और performance issues पर proactive communication की ज़रूरत बताई गई है
- frontend UI में हुए विभिन्न बदलाव (जैसे PR file changes UI, नई features आदि) को performance गिरने से सीधे जुड़ा माना जा रहा है
- कुछ users Graphite.dev, GitLab, और custom protocol routers (जैसे Finicky, Velja आदि) का workaround या alternative UI के रूप में उपयोग कर रहे हैं
अन्य टिप्पणियाँ और practical tips
- एक अस्थायी workaround के रूप में Safari में issue/PR बनाने के बाद table-style label add feature इस्तेमाल करने की सलाह दी गई है
- बहुत ज़्यादा जटिल CSS, engineering structure में बदलाव, और Chrome-केंद्रित एकरूपता को लेकर चिंता जताई गई है, साथ ही विभिन्न browsers के समर्थन की ज़रूरत पर ज़ोर दिया गया है
- कुछ users ने performance समस्या पर आलोचनात्मक या हास्यपूर्ण टिप्पणियाँ कीं (अनावश्यक भावनात्मक बहस से बचने की सलाह दी गई)
- performance optimization की ज़रूरत वाले frontend development तरीकों की फिर से समीक्षा और multi-browser testing के महत्व पर अंदरूनी/बाहरी राय सामने आई
निष्कर्ष
- GitHub के हालिया UI structural changes और CSS usage pattern का Safari की विशिष्ट rendering characteristics से टकराव हो रहा है, जिससे उद्योग-मानक collaboration platform पर गंभीर browser असुविधा पैदा हो रही है
- WebKit और GitHub, दोनों की ओर से सक्रिय सुधार की ज़रूरत है, और short term में Safari व accessibility users को केंद्र में रखकर प्रतिक्रिया देनी होगी
- यह performance समस्या इतनी गंभीर है कि development work प्रभावित हो रहा है, और community में इसके प्रति व्यापक सहमति और गुस्सा बन चुका है
1 टिप्पणियां
Hacker News राय
Github वेबसाइट हर जगह धीमी लगती है। परफ़ॉर्मेंस हो या UX/UI, किसी भी लिहाज़ से इसे अच्छा सॉफ़्टवेयर कहना मुश्किल है, और यह कई लोगों के KPI और planning का मिला-जुला नतीजा लगता है। डेवलपर्स के लिए social network होना ही शायद इसका सबसे “innovative” हिस्सा है, जबकि रोज़मर्रा के development काम के लिए यह इतना साधारण है कि Gitlab कहीं बेहतर लगता है। यह समस्या Rails की वजह से नहीं है, और तकनीक का पर्दा डालकर मूल समस्या से बचना सही नहीं लगता
WebKit टीम ने पिछले 2 दिनों में Github performance issue के लिए सुधार लागू किए हैं संबंधित लिंक. टीम के अंदर 1000 से ज़्यादा files वाले बड़े PR भी बनाए गए, और सहकर्मी PR के लोड होने का इंतज़ार करते-करते कहते थे, “खुल जाए तो approve कर दूँगा”
Microsoft ने Github को acquire करते ही लगभग तुरंत उसे JavaScript rendering style (SPA) में बदल दिया। पहले 2011 Mac Mini पर JavaScript बंद होने पर भी Github browse किया जा सकता था, लेकिन अब JS चालू होने पर भी पुराने browser compatibility की वजह से Github इस्तेमाल नहीं हो पाता। किस तरफ़ की गलती ज़्यादा है, यह कहना मुश्किल है, लेकिन दोनों की ज़िम्मेदारी लगती है। नया device लिया जा सकता है, लेकिन जब जानबूझकर पुराने devices का support छोड़ा जाता है और future functionality से ज़्यादा planned obsolescence थोपने वाला माहौल बनता है, तो web standards पर भरोसा भी टूटता हुआ लगता है
React पर बहुत आलोचना हो रही है, लेकिन यह issue CSS transform की समस्या है। लोग लिंक की सामग्री सच में पढ़ें, यही बेहतर होगा
Forgejo, Codeberg, SourceHut पर migrate करने की सलाह है। Github और Gitlab की तुलना में ये बिजली की तरह तेज़ हैं Forgejo / Codeberg / SourceHut
समझ नहीं आता कि बड़े organizations में ऐसी समस्याएँ बार-बार कैसे दोहराई जाती हैं। बड़े browser tests में performance issue ज़रूर दिखे होंगे, तो फिर किसी ने इसे ज़बरदस्ती approve कैसे कर दिया
React developer होने के नाते इस thread को देखकर दुनिया की नफ़रत महसूस होती है। अवास्तविक timelines, और backend logic तक frontend पर लाद देने वाले SPA के बहुत से जाल हैं। समझ नहीं आता कि React खुद ग़लत चुनाव है, या सच में अच्छे React apps भी मौजूद हैं
लगता है computing की दुनिया में हर चीज़ धीमी हो गई है। Latest Mac Studio M4 Max, 64GB RAM होने पर भी हर वेबसाइट 2011 MacBook Pro के समय से धीमी लगती है
HN पर Github के React में UI migrate करने के बाद धीमा होने की बात बहुत सुनी है, लेकिन सच में ऐसा है या नहीं, यह जानना चाहता हूँ। छोटे projects में इसका असर नहीं दिखता, इसलिए पक्का आधार ढूँढना चाहता हूँ
सिर्फ Safari ही नहीं, Firefox में भी Github बहुत धीमा है, loading spinners हर जगह दिखते हैं और page transition पहले से ज़्यादा समय लेते हैं। जो SSR पहले पूरी तरह ठीक चल रहा था, उसे आख़िर किस metric के आधार पर SPA में बदला गया, समझ नहीं आता