Жергілікті дискіден бір секундта ашылатын шешім туннель арқылы жететін жалпы қалтадан отыз секундта ашылады. Туннель өзінен-өзі сирек себеп болады. Өзгеретіні — бұрын жергілікті шақыру болған операциялар синхронды барып-қайтуға айналады, ал редактор терезе пайда болмай тұрып олардың бірнешеуін орындайды. Төмендегі механизм әрқайсысының неге қымбат екенін және қайсысын алып тастауға болатынын түсіндіреді.

Файл ашық тұрғанда редактор не істейді

Өзгерістерді бақылайтын редактор әрбір ашық файлға жазылым ұстайды. Жергілікті том бұл жазылымды желісіз файлдық жүйеден қамтамасыз етеді. Жалпы қалта арқылы дәл сол мүмкіндік метадеректерді қайта-қайта оқуға төмендеуі мүмкін, өйткені хабарлама моделі 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

Негізгі ревизия — дұрыс табу керек бөлік, өйткені ол қанша тарихтың жүретінін шешеді. Барлығын бумалау жұмыс істейді және байланысты ысырап етеді, ал соңғы ортақ өзгерістен бумалау қарсы жақта жоқты ғана жылжытады.

Өткізу қабілетін кінәламас бұрын үш операцияны өлшеңіз

Үш нәрсені бөлек өлшеңіз: бір шағын файл ашылды, бір қалта тізілді, бір сақтау аяқталды. Егер үшеуі де файл санына пропорционал баяу болса, шығын — барып-қайтулар. Егер біреуі тұрып қалса, қалғандары дұрыс болса, өткізу қабілетін емес, жетпейтін ресурсқа қарсы уақыт шегін күдіктеніңіз. Әр іске қосуда машина қай желіде болғанын жазып алыңыз, өйткені басқа профильге қайта қосылған ноутбук әрекеттер арасында жауапты өзгертуі мүмкін.

Содан кейін сол үшеуін жобаның жергілікті көшірмесіне қарсы қайталаңыз. Айырма — жалпы қалтаның бағасы, және біреу шешім ретінде жылдамырақ байланыс ұсынғанда дәл осы санды келтіру керек.

Қатысты мақалалар