Mae ffurflen sy'n ymddangos mewn llai nag eiliad ar rwydwaith lleol yn cymryd pum eiliad dros VPN, tra bo copi ffeil ar yr un cyswllt yn rhedeg ar lawn cyflymder. Nid lled band yw'r gwahaniaeth. Mae'r ffurflen yn aros am gyfres o atebion ac yn talu'r daith gron lawn ar bob cam, tra bo'r copi ffeil yn cadw'r beitiau ar y ffordd yn barhaus. Cyfrifwch yr arosiadau hynny cyn i chi gyffwrdd â'r llinell fynediad.

Sgrin yw'r symptom, nid ymholiad

Gall pob ymholiad ar y sgrin honno fod yn gyflym ac eto gall y sgrin fod yn araf, oherwydd cyfanswm yr arosiadau yw'r cyfan, nid cyfanswm yr amseroedd gweithredu. Mae datganiad sy'n rhedeg mewn dwy filisekond yn dal i gostio taith gron gyfan pan fydd yn rhaid i'r cleient dderbyn ei ganlyniad cyn danfon y nesaf. Ar lwybr sydd â deugain milisekond o oedi, mae cant o alwadau dibynnol yn cronni i tua phedair eiliad cyn i unrhyw waith rendro ddechrau. Model o'r arosiad yw'r rhifyddeg hon, nid mesuriad o'ch cyswllt.

Dyna pam mae prawf cyflymder yn edrych yn ddiniwed. Mae trosglwyddo swmp yn mesur trwybwn, mae ffurflen siaradus yn mesur oedi, a gall VPN ragori ar un tra'n aros yn gyffredin ar y llall. Felly mae diagnosio'r sgrin yn golygu mesur yr sgrin yn hytrach na'r cyswllt.

Cofnodwch amser o ben bwy gilydd un weithred defnyddiwr cyn newid unrhyw beth. Y rhif hwnnw yw'r unig linell sylfaen a all ddweud wrthych a lwyddodd cywiriad diweddarach.

Cyfrifwch arosiadau dilynol mewn un weithred defnyddiwr

Mesurwch yn y cleient yn hytrach na dyfalu. Yn psql mae \timing on yn printio amser aeth heibio pob datganiad, ac mae EXPLAIN (ANALYZE, BUFFERS) yn dangos faint o'r amser hwnnw a dreuliodd y gweinydd ar y gwaith mewn gwirionedd.

Y bwlch rhwng y dau rif hynny yw eich gorbenion rhwydwaith a chleient. Os yw datganiad yn gweithredu mewn dwy filisekond ac mae'r cleient yn cofnodi chwe deg, y pum deg wyth sy'n weddill yw teithio a phrosesu lleol, ac ni fydd unrhyw fynegai yn eu dileu. Ailadroddwch y gymhariaeth honno ar gyfer pob datganiad a gyhoeddir gan y sgrin a chyfunwch y bylchau yn hytrach na'r amseroedd gweithredu.

Ysgrifennwch y canlyniad fel cyfrif o arosiadau dilynol. Dyna'r maint y gall y dau adran nesaf ei leihau, a dyna rif y gallwch ddadlau yn ei gylch gyda thystiolaeth.

Batiwch yr alwadau annibynnol, cadwch y rhai dibynnol

Gall dau ddatganiad nad ydynt yn darllen canlyniadau ei gilydd deithio gyda'i gilydd a chael eu casglu unwaith, sy'n troi dau arosiad yn un. Ni all dau ddatganiad lle mae'r ail angen gwerth y cyntaf wneud hynny, oherwydd mae'r ddibyniaeth yn wirioneddol a byddai batiwch yn newid yr hyn y mae'r rhaglen yn ei wneud. Trefnwch yr alwadau yn y dau bentlyn hynny cyn ailysgrifennu unrhyw beth, ac mae maint pob pentwr yn dweud wrthych beth sy'n bosibl.

Mae gwaith yn seiliedig ar setiau yn dileu arosiadau'n fwy trylwyr na batiwch. Mae un ymholiad sy'n dychwelyd y rhesi yr oedd dolen yn eu nôl un ar y tro yn dileu'r ddolen yn ogystal â'r teithiau crwn. Chwiliwch am y ddolen yn gyntaf, oherwydd fel arfer dyna'r enillion mwyaf a'r newid hawddaf i'w adolygu.

Rhaid i bati barchu trin gwallau a ffiniau trafodion o hyd. Nid yw cydgysylltu datganiadau diberthyn yn un llinyn yn optimeiddiad diogel, ac mae bati sy'n cuddio datganiad wedi methu y tu ôl i gyflwyniad llwyddiannus yn waeth na'r arosiadau a arbedodd.

Ailddefnyddiwch gysylltiadau cyn prynu lled band

Mae cysylltiad newydd yn costio datrysiad enwau, ysgydwad llaw TCP, trafodaeth TLS a dilysu, ac ar lwybr o oedi uchel mae pob un o'r rheini'n daith gron arall cyn i'r ymholiad cyntaf redeg. Mae pyllau cysylltiadau'n bod i dalu'r gost honno unwaith y broses yn hytrach nag unwaith y galwad.

Yn ADO.NET mae cau neu waredu cysylltiad o bwll yn ei ddychwelyd i'w ailddefnyddio yn lle agor un ffisegol newydd, felly'r patrwm sy'n edrych fel gollyngiad yw'r defnydd cywir yn aml. Gwiriwch fod y pwll yn cael ei ddefnyddio mewn gwirionedd yn hytrach na thybio: cofnodwch greu cysylltiadau ffisegol, neu gwyliwch y cyfrif sesiynau ar y gweinydd tra bo'r sgrin yn rhedeg. Mae'r canllawiau perfformiad SQL yn dweud yr un peth am leihau teithiau crwn a batiwch alwadau ad hoc mynych, gydag enghreifftiau sy'n benodol i'r gwasanaeth y dylech eu mapio i'ch defnydd eich hun.

Mae pyllu yn dileu cost sefydlu ac yn gadael arosiadau ymholiadau dilynol yn gyfan. Rhagofyniad ar gyfer mesuriad glân ydyw yn hytrach na chywirad ar ei ben ei hun.

Pwyso a mesur symud gweithredu'n agosach at y data

Mae rhedeg y rhaglen yn agos at y gronfa ddata yn disodli llawer o gyfnewidfeydd cronfa ddata o bell ag un sesiwn arddangos o bell. I lwyth gwaith siaradus gall hynny fod yn newid mawr, ac mae'n newid gweithredol lawn cymaint â newid perfformiad: mae rheoli sesiynau, rheolaeth mynediad, defnyddio meddalwedd a phrofiad defnyddwyr i gyd yn symud gyda'r rhaglen.

Mesurwch y rhyngwyneb gwirioneddol a'r data y mae'n ei drosglwyddo cyn tybio bod unrhyw gyfeiriad yn gyflymach. Mae sesiwn pen-desg o bell yn symud picseli, a gall sgrin â graffeg drwchus berfformio'n waeth ar yr un llwybr na'r ymholiadau y disodlodd, yn enwedig pan fydd y cleient yn ail-lunio'n barhaus.

Yna ailadroddwch y weithred wreiddiol a chymharwch dri rhif: arosiadau dilynol, cyfaint canlyniadau ac amser cwblhau o ben bwy gilydd. Gwelliant sy'n newid y dasg defnyddiwr a fesurir tra'n cadw cywirdeb data a pholisi mynediad yw'r un sy'n werth ei gadw.

Erthyglau cysylltiedig