X11 - अग्रेषण और दक्षता


12

मेरे पास एक ग्राफिक रूप से गहन अनुप्रयोग है जिसे X11 पर अग्रेषित करने की आवश्यकता है। मैंने X11 और इसकी (इन) दक्षता पर शोध करने में कुछ समय बिताया, इस महान पोस्ट सहित: X11 इतना अक्षम क्यों है?

एक बात जो अभी भी मेरे लिए स्पष्ट नहीं है वह यह है कि क्या X11 अग्रेषण का प्रदर्शन अनुप्रयोग पर निर्भर करता है। मैं इस धारणा के तहत था कि पूरी स्क्रीन को आगे बढ़ाया जाए, चाहे जो भी हो। फिर X11 अग्रेषण आवेदन-अज्ञेय होना चाहिए।

तो, क्या कोई ठोस जानकारी है जो वास्तव में आगे बढ़ती है और क्या ssh -X का प्रदर्शन आवेदन पर निर्भर करता है?


2
"तो, क्या कोई ठोस जानकारी है जो वास्तव में आगे बढ़ती है और क्या ssh -X का प्रदर्शन आवेदन पर निर्भर करता है?" हाँ। एक शुरुआत के रूप में, डैनियल स्टोन की बात लिनक्स के माध्यम से
रियललैंड

1
"मैं इस धारणा के तहत था कि पूरी स्क्रीन को अग्रेषित किया गया है" यह समझना मुश्किल है कि आप उस धारणा को क्या देंगे, क्योंकि लोग आमतौर पर एसएसएच एक्स अग्रेषण के साथ जो करते हैं वह रिमोट शेल पर मैन्युअल रूप से व्यक्तिगत अनुप्रयोगों को चलाने के लिए है; क्या आप इस बात पर विस्तार से बता सकते हैं कि आप अनुप्रयोगों को कैसे लॉन्च कर रहे हैं?
3

1
यदि आप SSH सुरंग पर X सत्र का परिवहन कर रहे हैं तो नोट का एक कारक: ssh संपीड़न कर सकता है। यह -Cकमांड लाइन पर विकल्प या Compression: yes.ssh / config फाइल में विकल्प है। यदि आप डलास से ऑस्ट्रेलिया तक भीड़भाड़ वाले T1 लिंक पर पारंपरिक X अग्रेषण कर रहे हैं, तो यह आपके संवाद को इंटरफ़ेस में पांच स्तरों को गहरा करने और अवास्तविक कार्य से एक चेकबॉक्स का चयन करने के बीच का अंतर हो सकता है। दो घंटे निराशा। मैं सौभाग्य से वायलैंड के साथ इस कोशिश की जरूरत नहीं थी, लेकिन मुझे लगता है कि यह बहुत सुधार हुआ है।
एड ग्रिम

मैं टिप्पणियों में एक व्यापक चर्चा शुरू नहीं करना चाहता, खासकर जब से मेरे प्रश्न का उत्तर @grawity द्वारा बहुत अच्छी तरह से दिया गया है। "पूरी स्क्रीन" से मेरा मतलब था कि ssh सुरंग के ऊपर डेटा हमेशा स्क्रीन पर पिक्सेल का एक सरल विवरण होगा। @ EdGrimm: संपीड़न के बारे में आपकी टिप्पणी के लिए धन्यवाद। मुझे उसके बारे में मालूम है। हमारे विशेष परिदृश्य में, X11 को 10Gbit LAN लिंक पर अग्रेषित किया गया है और संपीड़न / कोई संपीड़न बिल्कुल कोई अंतर नहीं लगता है।
फेंग

जवाबों:


29

मैं इस धारणा के तहत था कि पूरी स्क्रीन को आगे बढ़ाया जाए, चाहे जो भी हो। फिर X11 अग्रेषण आवेदन-अज्ञेय होना चाहिए।

नहीं, यह वास्तव में विपरीत है। X11 फ़ॉरवर्डिंग को "X11 फ़ॉरवर्डिंग" कहा जाता है क्योंकि यह "X सर्वर" (आमतौर पर Xorg) पर अपनी विंडोज़ को रेंडर करने के लिए अनुप्रयोगों द्वारा उपयोग किए जाने वाले वास्तविक X प्रोटोकॉल संदेशों को ट्रांसपोर्ट करता है । उन संदेशों में विंडोज़ बनाने / चलाने, पाठ और चित्रमय आदिम (रेखाएँ / आयतें), ड्राइंग बिटमैप, आदि के लिए कमांड हैं।

आप कह सकते हैं कि यह वैचारिक रूप से "पूर्ण स्क्रीन छवि" जैसे VNC / RFB के विपरीत है। मुझे लगता है कि यह विंडोज 'आरडीपी' के लिए कुछ हद तक तुलनीय है, जिसे जीडीआई ड्राइंग कमांड के परिवहन के लिए भी बनाया गया था।

तो आप कार्यक्रमों के बीच अंतर देखते हैं कारण हैं:

  1. आपके द्वारा संदर्भित पोस्ट को उद्धृत करने के लिए, मूल रूप से अधिकांश एक्स-आधारित कार्यक्रमों ने इस तरह काम किया:

    मूल रूप से X11 आपके कंप्यूटर पर स्क्रीन नहीं भेजता है, लेकिन यह डिस्प्ले-निर्देश भेजता है, इसलिए आपके स्थानीय कंप्यूटर पर X- सर्वर आपके स्थानीय सिस्टम पर स्क्रीन को फिर से बना सकता है।

    इसलिए जब एक कार्यक्रम एक बटन दिखाना चाहता था, तो उसने कुछ ही छोटे आदेश भेजे - "एक आयत खींचें", "पाठ आकर्षित करें", और शायद कुछ पंक्तियाँ इसे 3D बना दें।

  2. समय के साथ यह बदल गया, कार्यक्रमों ने अपने आप से प्रतिपादन करना शुरू कर दिया, और उनमें से कई निर्देश बस "यहाँ एक बिटमैप है जो मैंने पहले ही प्रदान किया है, इसे स्क्रीन पर रखा है" - स्थानीय रूप से बहुत तेज़, लेकिन X11 के कारण नेटवर्क पर बहुत धीमी गति से छवि संपीड़न।

    इसका मतलब यह है कि आधुनिक टूलकिट का उपयोग करके बनाए गए प्रोग्राम नेटवर्क एक्स 11 से अधिक धीमे हैं, भले ही यह एंटीएलियास फोंट के रूप में मूल रूप से कुछ हो।

    (इसके विपरीत, RDP ने समय के साथ अनुकूलित किया है और इसमें JPEG और यहां तक ​​कि H.2-15 जैसी छवि संपीड़न के विभिन्न रूप शामिल हैं; आप अक्सर संपीड़न कलाकृतियों को नोटिस कर सकते हैं जबकि पूरी छवि लोड हो रही है।)

  3. सौभाग्य से, अधिकांश यूआई टूलकिट्स जैसे कि जीटीके क्षति ट्रैकिंग को लागू करते हैं इसलिए केवल अपडेट किए गए क्षेत्रों को फिर से भेजा जाता है। हालाँकि, कुछ प्रोग्राम (जैसे कि कई फ़ायरफ़ॉक्स / थंडरबर्ड संस्करण), इसका समर्थन नहीं करते हैं और पूरी विंडो को फिर से प्रस्तुत करने का अनुरोध करते हैं, भले ही यह वास्तव में अपडेट न हुआ हो।

    कार्यक्रमों के बीच एक और अंतर है - अच्छी तरह से व्यवहार करने वाले अभी भी नेटवर्क पर काफी उपयोग करने योग्य हैं, लेकिन छोटी गाड़ी 100 एमबीपीएस लिंक को पूरी तरह से उपयोगी नहीं कर सकती है।


1
मुझे याद है कि एक बार एक MythTV सर्वर स्थापित करने की कोशिश कर रहा था। "सेटअप" उपयोगिता एक क्यूटी अनुप्रयोग था और एक उचित एडीएसएल लिंक को अड़चन (लगभग 8 एमबी / एस) के बावजूद, कॉन्फ़िगरेशन के प्रत्येक पृष्ठ को प्रदर्शित करने में कई मिनट लग गए। इस वजह से कुछ मिनटों के काम में कई घंटे लग गए - यह एक Curses UI, या यहां तक ​​कि एक अच्छी तरह से व्यवहार किए गए X11 एप्लिकेशन के साथ इतना आसान होता। अगर मुझे पता है कि यह कितना परेशान करने वाला था, तो मुझे साइट पर एक या दो सप्ताह इंतजार करना पड़ता था और प्रदर्शन के लिए डिस्क रहित फ्रंट-एंड बॉक्स में से एक का उपयोग किया था। मैं सर्वर चाहता था और इससे भी जल्दी काम कर रहा था, हालाँकि।
स्पाइट

1
उन "छोटी गाड़ी कार्यक्रमों" के बचाव में, किसी को यह इंगित करना चाहिए कि यह एक्स + टूलकिट विचारधारा का दोष है, जो मूल रूप से उन छोटी गाड़ी कार्यक्रमों के लिए जरूरी है कि वे पहले से छोटी गाड़ी हो। आपको लगता है कि एक प्रोग्राम सिर्फ "सामान्य दिखने वाली खिड़की" के लिए एक एपीआई (जो एक कमांड भेजता है), यहां एक मेनू और एक बटन और एक स्क्रॉलबार हो सकता है, लेकिन नहीं। आप, या टूलकिट, सब कुछ हाथ से करना चाहिए। मैं वास्तव में एमएस का कोई बड़ा प्रशंसक नहीं हूं और यहां तक ​​कि इतना कम Apple भी है, लेकिन उन्हें वे चीजें सही मिली हैं जबकि एक्स इकोसिस्टम ने दशकों से चूसा है, और अभी भी बेकार है।
डेमन

मुझे यकीन नहीं है कि हालांकि कोई अंतर है। GTK और qt की तुलना में विंडोज 'UWP या WinForms या comctl32 एक "टूलकिट" से कम क्या बनाता है? क्या वे भी सब कुछ "हाथ से" नहीं करते हैं?
user1686
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.