Visual Studio hidas VPN-jakokiinnityksellä: miksi tallennuksesta tulee edestakaisia matkoja
Jakokiinnityksen yli tapahtuva muokkaus muuttaa tallennuksen, valikot ja muutosten seurannan edestakaisiksi matkoiksi. Siirrä työkopio paikalliseksi ja pakkaa historia yhdeksi objektiksi sen läpi kävelemisen sijaan.
Ratkaisu, joka avautuu paikalliselta levyltä sekunnissa, avautuu tunnelin kautta saavutettavalta jakokiinnitykseltä kolmessakymmenessä sekunnissa. Tunneli on harvoin syy sinänsä. Muuttuu se, että operaatiot, jotka olivat paikallisia kutsuja, muuttuvat synkronisiksi edestakaisiksi matkoiksi, ja editori suorittaa niistä useita ennen kuin ikkuna ilmestyy. Alla oleva mekanismi selittää, miksi jokainen on kallis ja mitkä voit poistaa.
Mitä editori tekee, kun tiedosto on auki
Muutosten seurannan sisältävä editori pitää tilausta jokaiseen avoinna olevaan tiedostoon. Paikallinen taltio palvelee tilausta tiedostojärjestelmästä ilman verkkoa. Jakokiinnityksen yli sama ominaisuus voi rappeutua toistuviksi metatietojen luvuiksi, koska ilmoitusmalli ei käyttäydy samoin SMB:n yli. Muutosten seurannan poistaminen käytöstä on reilu ensikokeilu, koska se poistaa kokonaisen pyyntöluokan koskematta tunneliin.
Projektijärjestelmä lisää oman liikenteensä. Ratkaisun lataaminen luettelee hakemistoja, lukee projektitiedostoja ja saattaa koetella SDK:ita tai paketteja, ja jokainen koe on edestakainen matka, kun polku on etäinen. Ratkaisu, jossa on monta projektia, kertoo tämän määrän, minkä vuoksi avautumisaika kasvaa nopeammin kuin tiedostokoot antavat ymmärtää.
Kuoren haut, jotka vanhenevat ennen kuin valikko ilmestyy
Windows tuo toisen pysähdysten lähteen, jolla ei ole mitään tekemistä IDEn kanssa. Resurssienhallinta ja sen kuorilaajennukset ratkaisevat uudelleen tulostimet, kartatut asemat ja aiemmin käytetyt pikakuvakkeet joka kerta, kun kontekstivalikko avataan. Kun nämä kohteet ovat verkossa, johon tunneli ei yllä, jokainen ratkaisu estyy, kunnes aikakatkaisu päättyy, ja vasta sitten valikko piirretään. Siksi oikean painikkeen napsautus voi juuttua sekunneiksi, kun itse tiedosto avautuu normaalisti.
Poista kuolleet kartoitukset ja tulostusjonot tai pidä vain ne, jotka ovat siinä verkossa, jossa todella olet. Sama päättely kattaa kaiken, mikä ratkaisee polun taustalla, mukaan lukien viimeisimpien tiedostojen luettelot ja kiinnitetyt kansiot.
net use
Get-Printer | Select-Object Name, PortName
Measure-Command { Get-ChildItem \files\proj | Out-Null }
Miksi paikallinen työkopio voittaa
Suoraan jakokiinnityksellä työskentely on muokkaus-koonti-testi-silmukan huonoin asetelma, koska editori, kääntäjä ja versionhallintaklientti lukevat kukin nuo etätiedostot erikseen. Jokainen niistä maksaa oman edestakaisen matkansa, ja koonti maksaa kerran tiedostoa kohden. Paikallinen kopio, jossa työnnöt kulkevat tietovaraston kautta, korvaa pienten ylitysten tulvan yhdellä tarkoituksellisella. Yhteys ei ole parantunut; ylitysten määrä on romahtanut.
Se on rakenteellinen muutos eikä viritysharjoitus, ja juuri siksi se toimii, kun tunnelin asetukset eivät toimi. Se tekee myös vikatilan ilmeiseksi: jos koonti on paikallisella kopiolla yhä hidas, jakokiinnitys ei ollut koskaan ongelma.
Siirrä historia yhtenä objektina
Kun tietovaraston itsensä on ylitettävä tunneli, lähetä historia yhtenä objektina sen läpi kävelemisen sijaan. Paketti on yksi tiedosto ja siten yksi siirto, kun taas checkout, joka kävelee tuhansien irrallisten objektien läpi, maksaa tuhansia ylityksiä. Mercurial ja Git tukevat molemmat tätä muotoa.
hg bundle --base 9f2c1a7e outgoing.hg
hg unbundle outgoing.hg
git bundle create repo.bundle main
git clone repo.bundle repo
Perusversio on se osa, joka on osuttava oikeaan, koska se päättää, kuinka paljon historiaa matkustaa. Kaiken pakkaaminen toimii ja tuhlaa yhteyttä, kun taas viimeisimmästä yhteisestä muutoksesta pakkaaminen siirtää vain sen, mitä toiselta puolelta puuttuu.
Mittaa kolme operaatiota ennen kuin syytät kaistanleveyttä
Mittaa kolme asiaa erikseen: yksi pieni tiedosto avattu, yksi hakemisto lueteltu, yksi tallennus valmistunut. Jos kaikki kolme ovat hitaita suhteessa tiedostomäärään, kustannus on edestakaiset matkat. Jos yksi juuttuu muiden ollessa kunnossa, epäile aikakatkaisua saavuttamatonta resurssia vastaan äläkä kaistanleveyttä. Merkitse, missä verkossa kone oli kullakin ajokerralla, koska kannettava, joka yhdistyy uudelleen toiseen profiiliin, voi muuttaa vastausta yritysten välillä.
Toista sitten samat kolme projektin paikallista kopiota vastaan. Ero on jakokiinnityksen hinta, ja se on luku, joka kannattaa mainita, kun joku ehdottaa nopeampaa yhteyttä ratkaisuksi.