Solvo, kiu malfermiĝas en sekundo de loka disko, bezonas tridek sekundojn por malfermiĝi de kunhavaĵo atingata tra tunelo. La tunelo malofte estas la kaŭzo per si mem. Kio ŝanĝiĝas estas, ke operacioj, kiuj estis lokaj alvokoj, fariĝas sinkronaj rondvojaĝoj, kaj la redaktilo plenumas plurajn el ili antaŭ ol aperas la fenestro. La mekanismo ĉi-sube klarigas, kial ĉiu el ili estas multekosta kaj kiujn vi povas forigi.

Kion la redaktilo faras dum dosiero estas malfermita

Redaktilo kun spurado de ŝanĝoj tenas abonon pri ĉiu malfermita dosiero. Loka volumo servas tiun abonon el la dosiersistemo sen reto. Tra kunhavaĵo la sama funkcio povas degeneri en ripetajn legadojn de metadatumoj, ĉar la sciiga modelo ne kondutas same tra SMB. Malfunkciigi la spuradon de ŝanĝoj estas justa unua eksperimento, ĉar ĝi forigas tutan klason da petoj sen tuŝi la tunelon.

La projektsistemo aldonas sian propran trafikon. Ŝargado de solvo listigas dosierujojn, legas projektajn dosierojn kaj eble esploras SDK-ojn aŭ pakaĵojn, kaj ĉiu esploro estas rondvojaĝo kiam la vojo estas malproksima. Solvo kun multaj projektoj obligas tiun nombron, tial la malfermdaŭro kreskas pli rapide ol la dosiergrandoj sugestus.

Ŝelaj serĉoj, kiuj eksvalidiĝas antaŭ ol aperas la menuo

Windows aldonas duan fonton de haltoj, kiu havas nenion komunan kun la IDE. La Esplorilo kaj ĝiaj ŝelaj etendaĵoj denove solvas printilojn, mapitajn diskojn kaj antaŭe uzitajn kromvojojn ĉiufoje, kiam malfermiĝas kunteksta menuo. Kiam tiuj celoj troviĝas en reto, kiun la tunelo ne povas atingi, ĉiu solvo blokiĝas ĝis tempolimo finiĝas, kaj nur tiam la menuo pentriĝas. Tial dekstraklako povas pendi dum sekundoj dum la dosiero mem malfermiĝas normale.

Forigu la mortajn mapadojn kaj printilajn atendovicojn, aŭ konservu nur tiujn, kiuj ekzistas en la reto, en kiu vi vere estas. La sama rezonado kovras ĉion, kio solvas vojon fone, inkluzive de listoj de lastatempaj dosieroj kaj fiksitaj dosierujoj.

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

Kial loka labora kopio venkas

Labori rekte sur la kunhavaĵo estas la plej malbona agordo por ciklo redakti-konstrui-testi, ĉar la redaktilo, la kompililo kaj la versiokontrola kliento ĉiu legas tiujn malproksimajn dosierojn aparte. Ĉiu el ili pagas sian propran rondvojaĝon, kaj konstruo pagas unufoje por dosiero. Loka kopio kun puŝado tra la deponejo anstataŭigas inundon da etaj transiroj per unu intenca. La ligo ne pliboniĝis; la nombro da transiroj kolapsis.

Tio estas struktura ŝanĝo, ne agorda ekzerco, kaj ĝuste tial ĝi funkcias kiam tunelaj agordoj ne funkcias. Ĝi ankaŭ evidentigas la malsukcesan reĝimon: se la konstruo ankoraŭ estas malrapida kun loka kopio, la kunhavaĵo neniam estis la problemo.

Movu la historion kiel unu objekton

Kiam la deponejo mem devas transiri la tunelon, sendu la historion en unu objekto anstataŭ trairi ĝin. Pakaĵo estas unu dosiero kaj do unu transigo, dum checkout, kiu trairas milojn da malfiksaj objektoj, kostas milojn da transiroj. Mercurial kaj Git ambaŭ subtenas tiun formon.

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

La baza revizio estas la parto, kiun oni devas trafi, ĉar ĝi decidas kiom da historio vojaĝas. Paki ĉion funkcias kaj malŝparas la ligon, dum paki ekde la lasta komuna ŝanĝo movas nur tion, kio mankas al la alia flanko.

Mezuru tri operaciojn antaŭ ol kulpigi bendlarĝon

Mezuru tri aferojn aparte: unu malgranda dosiero malfermita, unu dosierujo listigita, unu konservo finita. Se ĉiuj tri estas malrapidaj proporcie al la dosiernombro, la kosto estas rondvojaĝoj. Se unu halto dum la aliaj estas bonaj, suspektu tempolimon kontraŭ neatingebla rimedo, ne bendlarĝon. Notu, en kiu reto la maŝino estis ĉe ĉiu rulo, ĉar tekkomputilo, kiu rekonektiĝas al alia profilo, povas ŝanĝi la respondon inter provoj.

Poste ripetu la samajn tri kontraŭ loka kopio de la projekto. La diferenco estas la prezo de la kunhavaĵo, kaj ĝi estas la nombro citenda, kiam iu proponas pli rapidan ligon kiel solvon.

Rilataj artikoloj