Solusi yang terbuka dalam satu detik dari disk lokal butuh tiga puluh detik untuk terbuka dari berbagi pakai yang dicapai lewat terowongan. Terowongan jarang menjadi penyebabnya sendiri. Yang berubah adalah bahwa operasi yang dulu panggilan lokal menjadi perjalanan pulang-pergi sinkron, dan editor melakukan beberapa di antaranya sebelum jendela muncul. Mekanisme di bawah menjelaskan mengapa masing-masing mahal dan mana yang bisa Anda hapus.

Apa yang dilakukan editor selama file terbuka

Editor dengan pelacakan perubahan menyimpan langganan pada setiap file yang terbuka. Volume lokal melayani langganan itu dari sistem berkas tanpa jaringan. Lewat berbagi pakai fitur yang sama bisa merosot menjadi pembacaan metadata berulang, karena model notifikasi tidak berperilaku sama lewat SMB. Mematikan pelacakan perubahan adalah eksperimen pertama yang wajar, karena menghapus satu kelas permintaan tanpa menyentuh terowongan.

Sistem proyek menambah lalu lintasnya sendiri. Memuat solusi menyebut direktori, membaca file proyek, dan mungkin memeriksa SDK atau paket, dan setiap pemeriksaan adalah perjalanan pulang-pergi saat jalurnya jauh. Solusi dengan banyak proyek mengalikan jumlah itu, karena itu waktu buka tumbuh lebih cepat daripada yang disarankan ukuran file.

Pencarian shell yang kedaluwarsa sebelum menu muncul

Windows menyumbang sumber kemacetan kedua yang tidak ada hubungannya dengan IDE. Explorer dan ekstensi shell-nya menyelesaikan ulang printer, drive yang dipetakan, dan pintasan yang pernah dipakai setiap kali menu konteks dibuka. Saat target itu berada di jaringan yang tidak bisa dijangkau terowongan, setiap penyelesaian terblokir sampai batas waktu habis, dan baru setelah itu menu digambar. Karena itu klik kanan bisa menggantung beberapa detik sementara filenya sendiri terbuka normal.

Hapus pemetaan mati dan antrean printer, atau pertahankan hanya yang ada di jaringan tempat Anda benar-benar berada. Alasan yang sama mencakup apa pun yang menyelesaikan jalur di latar belakang, termasuk daftar file terbaru dan folder yang disematkan.

net use
Get-Printer | Select-Object Name, PortName
Measure-Command { Get-ChildItem \files\proj | Out-Null }

Mengapa salinan kerja lokal menang

Bekerja langsung di berbagi pakai adalah tatanan terburuk untuk siklus edit-bangun-uji, karena editor, kompiler, dan klien kendali versi masing-masing membaca file jarak jauh itu secara terpisah. Masing-masing membayar perjalanan pulang-perginya sendiri, dan satu pembangunan membayar sekali per file. Salinan lokal dengan dorongan lewat repositori menggantikan banjir penyeberangan kecil dengan satu penyeberangan yang disengaja. Tautannya tidak membaik; jumlah penyeberangan runtuh.

Itu perubahan struktural, bukan latihan penyetelan, dan justru karena itu ia berhasil saat pengaturan terowongan tidak. Ia juga membuat mode kegagalan jelas: jika pembangunan masih lambat dengan salinan lokal, berbagi pakai tidak pernah menjadi masalahnya.

Pindahkan riwayat sebagai satu objek

Saat repositori sendiri harus menyeberangi terowongan, kirim riwayat dalam satu objek alih-alih menelusurinya. Bundel adalah satu file dan karena itu satu transfer, sedangkan checkout yang menelusuri ribuan objek lepas memakan ribuan penyeberangan. Mercurial dan Git keduanya mendukung bentuk itu.

hg bundle --base 9f2c1a7e outgoing.hg
hg unbundle outgoing.hg
git bundle create repo.bundle main
git clone repo.bundle repo

Revisi dasar adalah bagian yang harus tepat, karena ia menentukan berapa banyak riwayat yang bepergian. Membuntel semuanya berhasil dan memboroskan tautan, sedangkan membuntel dari perubahan bersama terakhir hanya memindahkan apa yang tidak dimiliki sisi lain.

Ukur tiga operasi sebelum menyalahkan lebar pita

Ukur tiga hal secara terpisah: satu file kecil dibuka, satu direktori didaftar, satu penyimpanan selesai. Jika ketiganya lambat sebanding dengan jumlah file, biayanya perjalanan pulang-pergi. Jika satu macet sementara yang lain baik, curigai batas waktu terhadap sumber daya yang tak terjangkau, bukan lebar pita. Catat di jaringan mana mesin berada pada setiap eksekusi, karena laptop yang menyambung ulang ke profil lain dapat mengubah jawaban antar percobaan.

Lalu ulangi ketiganya terhadap salinan lokal proyek. Selisihnya adalah harga berbagi pakai, dan itulah angka yang dikutip saat seseorang mengusulkan tautan lebih cepat sebagai solusi.

Artikel terkait