Egy megoldás, amely helyi lemezről egy másodperc alatt megnyílik, harminc másodperc alatt nyílik meg egy alagúton át elérhető megosztásról. Ritkán maga az alagút az ok. Ami megváltozik, az az, hogy a korábban helyi hívásokból álló műveletek szinkron oda-vissza utakká válnak, és a szerkesztő több ilyet is végrehajt, mielőtt az ablak megjelenik. Az alábbi mechanizmus megmagyarázza, miért drága mindegyik, és melyeket távolíthatja el.

Mit tesz a szerkesztő, amíg egy fájl nyitva van

A változáskövetést használó szerkesztő előfizetést tart minden nyitott fájlon. A helyi kötet a fájlrendszerből szolgálja ki ezt az előfizetést, hálózat nélkül. Megosztáson ugyanez a funkció ismétlődő metaadat-olvasásokká silányulhat, mert az értesítési modell nem viselkedik ugyanúgy SMB felett. A változáskövetés kikapcsolása korrekt első kísérlet, mivel a kérések egész osztályát szünteti meg az alagút érintése nélkül.

A projektrendszer saját forgalmat ad hozzá. Egy megoldás betöltése könyvtárakat sorol fel, projektfájlokat olvas, és esetleg SDK-kat vagy csomagokat kutat, és minden kutatás oda-vissza út, ha az útvonal távoli. A sok projektet tartalmazó megoldás megsokszorozza ezt a számot, ezért a nyitási idő gyorsabban nő, mint a fájlméretek sejtetnék.

Héjkeresések, amelyek a menü megjelenése előtt lejárnak

A Windows egy második akadályforrást ad, amelynek semmi köze az IDE-hez. Az Intéző és héjkiterjesztései minden alkalommal újra feloldják a korábban használt nyomtatókat, csatolt meghajtókat és parancsikonokat, amikor egy helyi menü megnyílik. Ha ezek a célok olyan hálózaton vannak, amelyet az alagút nem ér el, minden feloldás blokkol, amíg le nem jár egy időtúllépés, és csak ezután rajzolódik ki a menü. Ezért a jobb kattintás másodpercekig akadhat, miközben maga a fájl normálisan megnyílik.

Távolítsa el a halott leképezéseket és a nyomtatási sorokat, vagy csak azokat tartsa meg, amelyek a ténylegesen használt hálózaton léteznek. Ugyanez a logika vonatkozik mindenre, ami a háttérben old fel egy útvonalat, beleértve a legutóbbi fájlok listáit és a kitűzött mappákat.

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

Miért nyer a helyi munkapéldány

A megosztáson való közvetlen munka a legrosszabb elrendezés a szerkesztés-építés-tesztelés ciklushoz, mert a szerkesztő, a fordító és a verziókezelő kliens mindegyike külön olvassa azokat a távoli fájlokat. Mindegyikük a saját oda-vissza útját fizeti, és egy építés fájlonként egyszer fizet. A helyi példány a tárolón keresztüli feltolással a kis átkelések áradatát egyetlen szándékosra cseréli. A kapcsolat nem javult; az átkelések száma összeomlott.

Ez strukturális változás, nem hangolási gyakorlat, és éppen ezért működik akkor, amikor az alagút beállításai nem. Az is nyilvánvalóvá teszi a hibaüzemmódot: ha az építés helyi példánnyal is lassú, a megosztás soha nem volt a probléma.

Vigye át az előzményeket egyetlen objektumként

Amikor magának a tárolónak kell átkelnie az alagúton, küldje az előzményeket egyetlen objektumban a bejárásuk helyett. A csomag egyetlen fájl, és ezért egyetlen átvitel, míg a több ezer szabad objektumot bejáró checkout több ezer átkelésbe kerül. A Mercurial és a Git is támogatja ezt a formát.

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

Az alapváltozat az a rész, amelyet el kell találni, mert ez dönti el, mennyi előzmény utazik. Mindent becsomagolni működik, és elpazarolja a kapcsolatot, míg az utolsó közös változástól csomagolni csak azt viszi át, ami a másik oldalról hiányzik.

Mérjen három műveletet, mielőtt a sávszélességet hibáztatja

Mérjen három dolgot külön: egy kis fájl megnyitva, egy könyvtár listázva, egy mentés befejezve. Ha mindhárom lassú a fájlszám arányában, a költség az oda-vissza utak. Ha az egyik elakad, míg a többi rendben van, időtúllépésre gyanakodjon egy elérhetetlen erőforrás felé, nem a sávszélességre. Jegyezze fel, melyik hálózaton volt a gép az egyes futásoknál, mert egy másik profilhoz újracsatlakozó laptop megváltoztathatja a választ a kísérletek között.

Ezután ismételje meg ugyanazt a hármat a projekt helyi példányával szemben. A különbség a megosztás ára, és ez az a szám, amelyet idézni kell, amikor valaki gyorsabb kapcsolatot javasol megoldásként.

Kapcsolódó cikkek