Perché il VNC su Windows è così lento?

In una prova, potrei distribuire un film completo in tutta la nostra networking dal computer di un amico, nessun problema. È veloce quanto potrei desiderare.

Ma il VNC è dolorosamente lento. Abbiamo provato Real VNC e Tight VNC, ho giocato in giro con le impostazioni del Capture Method , ma nulla sembra fare la differenza; è solo così lento.

Qualcuno ha qualche suggerimento sull'uso del VNC, su come migliorare la velocità, o forse altre alternative?

È la natura di non essere in grado di notare abbastanza rapidamente le porzioni danneggiate dello schermo, oppure c'è una cosa di networking che rallenta forse?

Entrambi usiamo Windows 7.

Dobbiamo essere in grado di visualizzare e controllare i PC di un altro senza bloccare l'host, in modo che il RDP non funziona (a less che qualcuno non conosca altrimenti).

VNC è semplicemente inefficiente. Il VNC funziona praticamente prendendo una serie di schermate, compressandole e lanciandole in tutta la networking

Su Windows, il RDP ti darà performance migliori, ma hai bisogno di professionisti o meglio sul server / sorgente di origine per il corretto RDP che credo.

un'assistenza remota più veloce può funzionare meglio per le tue esigenze: -RDP con entrambi l'utente al terminal e l'utente del sistema remoto che vede la stessa schermata

EDIT: 4 anni dopo, sto usando nomachine per compiti simili – functionrebbe su OSes e fa qualche altra cosa utile.

VNC non è paragonabile allo streaming video. Nella trasmissione video in genere trasferisci un stream video pre-compresso tramite la networking. Per i flussi HD è spesso codificato H.264. Se si utilizza VNC, il computer host deve eseguire istantanee dello schermo e comprimerle prima di inviarle alla networking. Vi sono diversi vincoli:

  • La forte compressione richiede un sacco di potenza della CPU. Ad esempio, la codifica di un film di 90 minuti in H.264 in alta qualità richiede spesso più di 4 ore di compressione sul mio server Athlon X2 4450e. Di solito tale compressione forte è inadatta per applicazioni in tempo reale come il controllo remoto.
  • La compressione less forte richiederà a sua volta una maggiore width di banda di networking che potrebbe diventare un problema su connessioni a bassa width di banda come Internet.

Beh, ci sono un paio di "trucchi" che vengono applicati da codec video e telecomandi e programmi di utilità di condivisione schermo. Innanzitutto cercano di rilevare le modifiche dello schermo e trasferire l'image (compressa) delle modifiche. Questo solitamente salva un LOTTO di banda e potenza di elaborazione. Tuttavia, per il trasferimento video a schermo integer non aiuta molto perché l'integer schermo deve essere ri-trasferito troppo spesso. Come scritto sopra le macchine correnti probabilmente non saranno in grado di codificare il contenuto del tuo schermo in Full-HD e farlo scorrere in un'applicazione di controllo remoto poiché l'host dovrà decodificare il contenuto video e quindi ricodificare le immagini prima di submit alla networking. Alcune vecchie macchine Dual-Core sono anche al limite quando decodificano i contenuti video Full-HD. Non parlando nemless di wherer nuovamente codificare nuovamente le immagini Full-HD sullo schermo prima di inviarle al client VNC.

Per migliorare la velocità di controllo remoto VNC è ansible effettuare le seguenti operazioni:

  • La maggior parte dei server / client VNC support più algoritmi di compressione. Alcuni di essi sono ottimizzati per la width di banda ridotta, alcuni per una buona qualità dell'image e alcuni per bassa latenza. Questo tocca un altro aspetto del telecommand. Poiché il servizio è questioni di latenza intertriggers (non si desidera visualizzare la reazione a un clic del mouse subito dopo 5 minuti di codifica).
  • Provare a ridurre la quantità di modifiche dello schermo sulla macchina host. Ad esempio, provare a disabilitare gli effetti desktop di Windows, le animazioni ecc. Questo consente di risparmiare tempo di bandwidth, in quanto solo le parti modificate dello schermo vengono trasferite tramite networking.
  • Provare a distriggersre altri effetti visivi sull'host come la trasparenza. Le windows trasparenti usate da Vista / Win7 riducono la "compressibilità" delle immagini. Le superfici uniche / piatte sono molto più efficienti da comprimere di colors vivaci e dettagli particolari. Così distriggersndo la trasparenza Aero e gli effetti desktop veramente accelerano l'esperienza di controllo remoto. La maggior parte degli strumenti di controllo remoto consente anche di distriggersre tali effetti automaticamente sulla connessione (ad es. Microsoft RDP e alcune implementazioni VNC).
  • Lo stesso vale per le immagini di background. Provare a utilizzare l'impostazione di background uni-color invece delle immagini HD.

Un altro problema per VNC è che deve rilevare le modifiche sullo schermo. Alcune implementazioni di VNC rendono schermate "dumb" e confrontarle con lo screenshot precedente per rilevare le modifiche. Questo sta già assumendo un sacco di potere. Alcune implementazioni più avanzate funzionano con driver speciali (controllare UltraVNC) che sono più efficienti qui ma richiedono l'installazione di driver speciali.

Naturalmente tutto questo non aiuta se stai giocando un video sulla tua macchina host. In questo caso, VNC dovrà re-codificare ~ 30 immagini a schermo integer al secondo e inviarlo tramite networking. Nella maggior parte delle compressioni che possono essere eseguite in tempo reale da CPU attuali, tale stream richiederebbe> 8Mbps di width di banda. Quindi è inadatto per la maggior parte delle connessioni internet (in particolare pensare alle connessioni DSL asimmetriche con velocità di caricamento tipicamente inferiore a 1 Mbps e sì, è la velocità di caricamento che conta sul lato host).

Può essere adatto all'utilizzo LAN, ma qui dovresti probabilmente più pensare ad impostare un server multimediale o condividere i tuoi media utilizzando un server multimediale DLNA / UPnP (anche il lettore multimediale Win7 può farlo). Quindi utilizzare un client DLNA per riprodurre il supporto condiviso.

La variante VNC più veloce assoluta che abbia mai usato è UltraVNC con il driver Video Mirror installato. Il RDP è ancora notevolmente più veloce, ma non è quasi così male.

Ho anche sentito cose veramente buone su ZeroRemote , ma non l'ho mai provato. Sembra che TrueRemote sia il suo successore.

Se stai cercando di guardare video in una LAN, la soluzione più veloce in termini di velocità di disegno semplice è probabilmente Radmin .

Come dice @Journeyman Geek, il VNC è inefficiente. Questo è progettato in modo che VNC non deve "capire" ciò che il client remoto sta cercando di visualizzare.

RDP effettivamente, in modo che possa prendere scorciatoie e rendere le immagini più veloce. RDP dice all'altra estremità, ad esempio, "il client ha aperto una window in questa posizione" invece di submit i dati bitmap che rappresentano la modifica dello schermo.

Ci sono hack "terminal server" là fuori che aggiungerà la capacità di RDP alle versioni di Windows che non li caratterizzano, ma non ti raccommand ufficialmente e li utilizzi a proprio rischio. Tuttavia, penso che anche le versioni "Starter" di Windows 7 sono dotate di "Assistenza remota" (msra.exe) che si potrebbe provare ad utilizzare.

Le cose che puoi fare per migliorare le performance del VNC, comunque, includono abbassare la profondità del display a 8 bit, abbassando la risoluzione della schermata del client e utilizzando la cache bitmap lato client. Ciò significa che VNC deve spedire less dati sul filo e avrai una migliore performance (ma non apparirà abbastanza).

Puoi anche provare TeamViewer, è gratuito per uso non commerciale e è stato abbastanza veloce per me. Non l'ho ancora testato su video HD.

Se state cercando le performance non wherete usare VNC, provate qualcosa come LogMeIn . È libero e funziona bene.

Per me, anche su internet (con i tassi di ping> 50 ms e la banda decente> 1mbit / s) ottengo un ottimo comportmento su UltraVNC. La magia viene fornita con la modifica delle impostazioni di connessione.

Dopo aver avviato lo spettatore, andare a "Opzioni di connessione", distriggersre "Selezione automatica delle impostazioni migliori", abilitare "Tight" e abbassare la "Jpeg" a bassa qualità, se necessario (2-4 funziona bene).

Questo è l'unico modo di conoscere i Full Colors con performance decenti. Otternetworking più fps dopo, abbastanza per get una presentazione veloce su un filmato a schermo integer (sufficiente per tutto quello che sto facendo, incluso lo sviluppo remoto, per un filmato troppo lento e non c'è audio).

Inoltre, nel server "Proprietà", aiuta ad avere (se non usa il driver dello specchio che aiuta notevolmente le performance) ad avere "Sondaggio a schermo integer", "Sondaggio window in primo piano", "Sondaggio window sotto cursore", "Sistema HookDll" Bassa precisione "accesa. Fondamentalmente, quasi tutto a sinistra.