Visual Studio спор на VPN дељењу: зашто чување постаје кружна путовања
Уређивање преко дељења претвара чување, меније и праћење измена у кружна путовања. Преместите радну копију локално и пренесите историју као један објекат уместо да је обилазите.
Решење које се са локалног диска отвара за секунду потребно је тридесет секунди да се отвори са дељења до ког се долази тунелом. Тунел је ретко сам по себи узрок. Оно што се мења јесте да операције које су биле локални позиви постају синхрона кружна путовања, а уређивач изведе неколико њих пре него што се прозор појави. Механизам испод објашњава зашто је свако скупо и која можете уклонити.
Шта уређивач ради док је датотека отворена
Уређивач с праћењем измена држи претплату на свакој отвореној датотеци. Локални волумен опслужује ту претплату из датотечног система без мреже. Преко дељења иста функција може да се деградира у понављана читања метаподатака, јер се модел обавештења не понаша једнако преко SMB-а. Искључивање праћења измена је поштен први покушај, јер уклања целу класу захтева без дирања тунела.
Пројектни систем додаје саобраћај. Учитавање решења набраја директоријуме, чита пројектне датотеке и може да проверава SDK или пакете, а свака провера је кружно путовање кад је путања удаљена. Решење с много пројеката умножава тај број, зато време отварања расте брже него што би величине датотека сугерисале.
Претраге љуске које истекну пре него што се појави мени
Windows додаје други извор застоја који нема везе с IDE-ом. Explorer и његови додаци љуске изнова разрешавају штампаче, мапиране дискове и пречице коришћене раније сваки пут кад се отвори контекстни мени. Кад су ти циљеви на мрежи до које тунел не може да дође, свако разрешавање блокира док не истекне временско ограничење, и тек се тада мени исцртава. Зато десни клик може да виси секундама док се сама датотека отвара нормално.
Уклоните мртва мапирања и редове штампе или задржите само она која постоје на мрежи на којој се заиста налазите. Исто размишљање покрива све што у позадини разрешава путању, укључујући спискове недавних датотека и закачене фасцикле.
net use
Get-Printer | Select-Object Name, PortName
Measure-Command { Get-ChildItem \files\proj | Out-Null }
Зашто побеђује локална радна копија
Рад директно на дељењу најгора је поставка за петљу уређивања, изградње и тестирања, јер уређивач, преводилац и клијент за контролу верзија читају те удаљене датотеке сваки засебно. Сваки од њих плаћа своје кружно путовање, а изградња плаћа једном по датотеци. Локална копија с гуркањем кроз репозиторијум замењује поплаву ситних прелаза једним намерним. Веза се није побољшала; број прелаза се срушио.
То је структурна промена, а не вежба подешавања, и управо зато делује кад подешавања тунела не делују. Такође чини начин отказа очигледним: ако је изградња с локалном копијом још спора, дељење никада није било проблем.
Преместите историју као један објекат
Кад сам репозиторијум мора да пређе тунел, пошаљите историју у једном објекту уместо да је обилазите. Пакет је једна датотека и стога један пренос, док checkout који обилази хиљаде слободних објеката кошта хиљаде прелаза. Mercurial и Git оба подржавају тај облик.
hg bundle --base 9f2c1a7e outgoing.hg
hg unbundle outgoing.hg
git bundle create repo.bundle main
git clone repo.bundle repo
Основна ревизија је део који треба погодити, јер одлучује колико историје путује. Паковање свега делује и расипа везу, док паковање од последње заједничке измене преноси само оно што другој страни недостаје.
Измерите три операције пре него што оптужите пропусност
Измерите три ствари одвојено: једна мала датотека отворена, један директоријум набројан, једно чување завршено. Ако су све три споре сразмерно броју датотека, трошак су кружна путовања. Ако једна запне док су остале у реду, посумњајте у временско ограничење према недоступном ресурсу, а не у пропусност. Забележите на којој је мрежи машина била при сваком покретању, јер преносни рачунар који се поново повеже с другим профилом може да промени одговор између покушаја.
Затим поновите исте три према локалној копији пројекта. Разлика је цена дељења, и то је број који треба цитирати кад неко предложи бржа веза као решење.