Mengapa VNC di Windows sangat lambat?

27

Dalam sebuah pengujian, saya dapat melakukan streaming film full HD di jaringan kami dari komputer teman saya, tidak masalah. Ini secepat yang saya inginkan.

Tapi VNC lambat sekali. Kami sudah mencoba Real VNC dan Tight VNC, saya sudah bermain-main dengan Capture Methodpengaturan, tetapi sepertinya tidak ada bedanya; itu sangat lambat.

Adakah yang punya tips menggunakan VNC, cara meningkatkan kecepatan, atau mungkin ada alternatif?

Apakah sifatnya tidak dapat melihat bagian layar yang tidak valid dengan cukup cepat, atau mungkin ada jaringan yang memperlambatnya?

Kami berdua menggunakan Windows 7.

Kita harus dapat melihat dan mengontrol PC masing-masing tanpa mengunci tuan rumah, sehingga RDP tidak akan berfungsi (kecuali jika ada yang tahu sebaliknya).

Josh Comley
sumber

Jawaban:

26

VNC benar-benar tidak efisien. VNC bekerja cukup banyak dengan mengambil serangkaian tangkapan layar, mengompresnya, dan mengayunkannya ke seluruh jaringan

Pada Windows, RDP akan memberikan Anda kinerja yang lebih baik, tetapi Anda perlu profesional atau lebih baik di server / sumber akhir untuk RDP yang tepat saya percaya.

bantuan jarak jauh aneh dapat bekerja lebih baik untuk kebutuhan Anda - itu RDP dengan kedua pengguna di terminal, dan pengguna di sistem jarak jauh melihat layar yang sama

EDIT: 4 tahun kemudian, saya menggunakan nomachine untuk tugas serupa - akan bekerja lintas OS, dan melakukan beberapa hal bermanfaat lainnya.

Journeyman Geek
sumber
2
Yup, tidak berfungsi pada versi non-Pro, meskipun ada solusi yang saya kira. (Dan +1 tentu saja, VNC menyebalkan)
slhck
Ah, saya seharusnya sudah menetapkan apa yang saya lakukan di edit saya sekarang!
Josh Comley
sesi bersamaan, dapat dilakukan dengan beberapa [ peretasan ] ( missingremote.com/guide/... VNC style stuff ... bantuan jarak jauh mungkin? Diedit jawaban saya untuk menyertakan bantuan jarak jauh.
Journeyman Geek
josh Suntingan Anda masuk akal, tetapi perhatikan baris terakhir posting @journeyman di mana ia mengatakan "bantuan jarak jauh" mungkin berfungsi lebih baik. Apakah Anda sudah melihat Remote Assistance? Saya menggunakannya sesekali dan itu berfungsi dengan baik.
Jay R. Wren
Diedit untuk mencerminkan bahwa bantuan jarak jauh benar-benar adalah apa yang perlu Anda gunakan;)
Journeyman Geek
15

VNC tidak dapat dibandingkan dengan streaming video. Dalam streaming video, Anda biasanya mentransfer aliran video pra-kompresi melalui jaringan. Untuk streaming HD, seringkali H.264 disandikan. Jika Anda menggunakan VNC maka komputer host Anda harus mengambil snapshot layar dan mengompresnya sebelum mengirimkannya ke jaringan. Ada beberapa kendala di sini:

  • Kompresi yang kuat membutuhkan banyak daya CPU. Misalnya meng-encode film 90 menit dalam H.264 dalam kualitas tinggi sering membutuhkan waktu kompresi lebih dari 4 jam pada server Athlon X2 4450e saya. Biasanya kompresi kuat seperti itu tidak cocok untuk aplikasi real-time seperti remote control.
  • Kompresi yang kurang kuat pada gilirannya akan membutuhkan lebih banyak bandwidth jaringan yang mungkin menjadi masalah pada koneksi bandwidth rendah seperti internet.

Nah, ada beberapa "trik" yang diterapkan oleh codec video dan remote control dan utilitas berbagi layar. Pertama-tama mereka mencoba mendeteksi perubahan layar dan hanya mentransfer gambar (terkompresi) dari perubahan itu. Ini biasanya menghemat BANYAK bandwidth dan kekuatan pemrosesan. Namun untuk transfer video layar penuh tidak banyak membantu karena seluruh layar harus ditransfer kembali terlalu sering. Seperti yang ditulis di atas, mesin saat ini mungkin tidak akan dapat me-relode ulang konten layar Anda dalam Full-HD dan mengalirkannya ke aplikasi kendali jarak jauh karena host Anda harus men-decode konten video dan kemudian menyandikan ulang gambar mentah sebelum mengirim mereka ke jaringan. Beberapa mesin Dual-Core lama bahkan pada batas ketika decoding konten video Full-HD.

Untuk meningkatkan kecepatan kendali jarak jauh VNC Anda, Anda dapat melakukan hal berikut:

  • Sebagian besar server / klien VNC mendukung banyak algoritma kompresi. Beberapa di antaranya dioptimalkan untuk bandwidth kecil, beberapa untuk kualitas gambar yang baik dan beberapa untuk latensi rendah. Ini menyentuh aspek lain dari remote control. Karena layanan ini masalah latensi interaktif (Anda tidak ingin melihat reaksi terhadap klik mouse hanya setelah 5 menit penyandian).
  • Cobalah untuk mengurangi jumlah perubahan layar pada mesin host Anda. Misalnya, coba nonaktifkan efek desktop Windows, animasi dll. Ini menghemat bandwidth karena hanya bagian layar yang diubah yang ditransfer melalui jaringan.
  • Coba nonaktifkan efek visual lebih lanjut pada host seperti transparansi. Jendela transparan seperti yang digunakan oleh Vista / Win7 mengurangi "kompresibilitas" gambar. Area berwarna / "datar" jauh lebih efisien untuk dikompres daripada warna-warna cerah dan detail mewah. Jadi, menonaktifkan transparansi Aero dan efek desktop benar-benar mempercepat pengalaman kendali jarak jauh. Sebagian besar alat kendali jarak jauh bahkan memungkinkan untuk menonaktifkan efek seperti itu secara otomatis saat terhubung (mis. Microsoft RDP dan beberapa implementasi VNC).
  • Hal yang sama berlaku untuk gambar latar belakang. Coba gunakan pengaturan latar belakang berwarna bukan gambar HD.

Masalah lain untuk VNC adalah ia harus mendeteksi perubahan pada layar Anda. Beberapa implementasi VNC melakukan tangkapan layar "bodoh" dan membandingkannya dengan tangkapan layar sebelumnya untuk mendeteksi perubahan. Ini sudah mengambil banyak daya. Beberapa implementasi yang lebih canggih bekerja dengan driver tampilan khusus (periksa UltraVNC) yang lebih efisien di sini tetapi memerlukan driver khusus untuk diinstal.

Tentu saja semua ini tidak membantu jika Anda memutar video di mesin host Anda. Dalam hal ini VNC harus menyandikan ulang ~ 30 gambar layar penuh per detik dan mengirimkannya melalui jaringan. Pada kebanyakan kompresi yang dapat dilakukan secara real-time oleh CPU saat ini, aliran seperti itu akan membutuhkan bandwidth> 8Mbps. Jadi itu tidak cocok untuk sebagian besar koneksi internet (terutama berpikir tentang koneksi DSL asimetris dengan kecepatan unggah kurang dari 1Mbps, dan ya, itu kecepatan unggah yang penting di sisi host).

Mungkin cocok untuk penggunaan LAN, tetapi di sini Anda mungkin harus lebih berpikir tentang menyiapkan server media atau berbagi media Anda menggunakan server media DLNA / UPnP (bahkan pemutar media Win7 dapat melakukan ini). Kemudian gunakan klien DLNA untuk memutar media bersama.

SkyBeam
sumber
1
+1, penjelasan yang bagus. Saya juga akan menggunakan versi DLNA / Media Server.
slhck
Usaha yang bagus tapi benar-benar salah, baik beban CPU maupun penggunaan jaringan tidak tinggi. Bahkan dengan transfer perbedaan sederhana dapat melakukan 20fps melalui jaringan 1gib.
Lothar
4

Varian VNC tercepat mutlak yang pernah saya gunakan adalah UltraVNC dengan Driver Cermin Video diinstal. RDP masih terasa lebih cepat, tetapi tidak seburuk itu.

Saya juga pernah mendengar hal-hal yang sangat baik tentang ZeroRemote , tetapi tidak pernah mengujinya. Tampaknya TrueRemote adalah penggantinya.

afrazier
sumber
Tidak didukung di GNU / Linux.
Hi-Angel
1

Jika Anda mencoba menonton video melalui LAN, solusi tercepat dalam hal kecepatan menggambar layar mungkin adalah Radmin .

Shinrai
sumber
3
Mencoba Radmin dan, ya itu komersial, tapi sangat sepadan! Sangat cepat. Fantastis.
Josh Comley
1

Seperti yang dikatakan Journeyman Geek, VNC tidak efisien. Ini adalah desain sehingga VNC tidak harus "memahami" apa yang klien jarak jauh coba tampilkan.

Sebenarnya RDP melakukannya, sehingga dapat mengambil jalan pintas dan membuat gambar lebih cepat. RDP memberi tahu ujung lainnya, misalnya, "klien membuka jendela di lokasi ini" alih-alih mengirim data bitmap yang mewakili perubahan layar.

Ada retasan "terminal server" di luar sana yang akan menambah kemampuan RDP ke versi Windows yang tidak menampilkannya, tetapi saya tidak secara resmi merekomendasikan mereka dan Anda menggunakannya dengan risiko Anda sendiri. Namun, saya pikir bahkan versi "Pemula" Windows 7 datang dengan "Remote Assistance" (msra.exe) yang mungkin Anda coba gunakan.

Hal-hal yang dapat Anda lakukan untuk meningkatkan kinerja VNC, bagaimanapun, termasuk menurunkan kedalaman tampilan menjadi 8 bit, menurunkan resolusi layar klien, dan menggunakan caching bitmap sisi klien. Itu berarti VNC harus mengirimkan lebih sedikit data pada kabel dan Anda akan mengalami kinerja yang lebih baik (tetapi tidak akan terlihat cantik).

LawrenceC
sumber
1

Anda juga dapat mencoba TeamViewer, gratis untuk penggunaan non-komersial dan cukup cepat untuk saya. Saya belum mengujinya pada video HD.

wizzard0
sumber
0

Jika Anda mencari kinerja yang Anda tidak perlu menggunakan VNC, Coba sesuatu seperti LogMeIn . Ini gratis dan berfungsi dengan baik.

Jeff F.
sumber
Baru saja mencoba LogMeIn, tidak menyukainya sama sekali!
Josh Comley
3
Saya suka LogMeIn untuk remote control, tetapi untuk video? Tidak mungkin. VNC setidaknya adalah P2P. Ini langsung antara sumber dan tujuan. LogMeIn memperkenalkan koneksi melalui server mereka, yang berarti Anda memiliki latensi yang jauh lebih tinggi. Semua masalah dengan VNC plus beberapa lagi. Ini sangat kuat untuk apa ia dirancang, tetapi itu tidak dirancang untuk video layar penuh waktu-nyata.
music2myear
Saya tidak mencoba melakukan video, saya hanya menggunakan video sebagai tes untuk memastikan koneksi antara kedua komputer tidak lambat
Josh Comley
0

Bagi saya, bahkan melalui internet (dengan kecepatan ping> 50ms dan bandwidth yang baik> 1mbit / s) Saya mendapatkan perilaku yang sangat baik di UltraVNC. Keajaiban ini hadir dengan mengubah pengaturan koneksi.

Setelah memulai penampil, buka "Opsi Koneksi", nonaktifkan "Pengaturan pilih otomatis terbaik", aktifkan "Ketat" dan turunkan "Jpeg" ke kualitas yang lebih rendah, jika diperlukan (2-4 berfungsi dengan baik).

Itulah satu-satunya cara yang saya tahu tentang warna penuh dengan kinerja yang layak. Anda akan mendapatkan beberapa fps sesudahnya, cukup untuk mendapatkan tayangan slide cepat pada film layar penuh (cukup untuk semua yang saya lakukan, termasuk pengembangan jarak jauh, untuk menonton film nyata terlalu lambat dan juga tidak ada audio).

Juga, di server "Properties", ada baiknya (jika tidak menggunakan driver cermin yang sangat membantu kinerja) untuk memiliki "Poll Full Screen", "Poll Foreground Window", "Poll Window Under Cursor", "System HookDll", " Akurasi Rendah "dihidupkan. Pada dasarnya, hampir semua yang ada di sebelah kiri.

Andreas Reiff
sumber