Fimmtíu sinnum hraðvirkari en áður

Þar sem ég nennti ekki að sitja nema stutt við textaskriftir fyrir 16 vikna verkefnið mitt, fór ég aðeins að fikta í gagnagrunnsvirkni thorarinn.com og bjó til smá fídús sem á að geta greint milli heimsókna frá mannverum og róbótum leitarvéla. Í leiðinni jók ég svo hraðann á forsíðunni um það bil fimmtugfalt!

Fyrrnefnda virknin byggir á því að eftir að vefþjónninn hefur skilað innihaldi hverrar síðu les hann _SERVER["HTTP_USER_AGENT"] breytuna og býr til færslu í nýja töflu, þar sem ég reyni að meta út frá áðurnefndri breytu hvort þetta er leitarvél sem ég þekki eða ekki (og tel þá mannlegan gest).

Ef nafnið tilheyrir hvorki þekktri leitarvél né neinum af algengu vöfrunum (MSIE|Firefox|Safari|Opera) skrái ég nafnið í töfluna til þess að geta seinna fínstillt greiningarlógíkina í ljósi reynslunnar.

Tilgangurinn með þessu er að safna tölfræði yfir skiptingu daglegra heimsókna milli mannvera og vélvera (tölvera?). Ef tilraunin heppnast vel gæti niðurstaðan skotið upp kollinum á forsíðunni innan skamms.

Fimmtugföldunin

Í fikti mínu rak ég augun í að það tók vefþjóninn um það bil 1,7-2,2 sekúndur að skila af sér forsíðunni (neðst í view source á öllum síðum sést hvað þjóninn var lengi að smjatta á henni). En slíkur seinagangur er eins og segir í kvæðinu: "Þetta er ekki, ekki, ekki, ekki þolandi".

Sökudólgurinn er gagnagrunnsfyrirspurnin sem finnur gildar athugasemdir tilheyrandi færslunum sem birtast á forsíðunni. Til þess þarf að joina þremur töflum (Articles, Users, Comments) og ef engar frekari skorður væru settar á það þyrfti að skoða 19,2 milljón möguleika! (Sem tekur gagnagrunninn 5-6 sekúndur skv. vísindalegri mælingu.)

Til að létta á þessu prófaði ég fyrir nokkrum mánuðum að setja skorður á greinarnar sem teknar væru með, þannig að aðeins væru skoðaðar greinar með hærra raðnúmer en n (sem var harðkóðuð tala). Ég átti alltaf eftir að gera þetta snyrtilegra og dreif lox í því núna í dag, þannig að núna bið ég grunninn fyrst um hæsta raðnúmerið og nota það til að búa til fyrirspurnina. Um leið tók ég líka til bæði í Users og Comments, þannig að ég henti 150 fölskum notendum og á að giska eftirlifandi 70 ruslathugasemdum.

Eftir þessar breytingar þarf því ekki að skoða nema rétt tæplega 45 þúsund mögulegar samsetningar og það tekur sko enga stund.

Mér sýnist að eftir þessa lagfæringu taki það um það bil 0,04 sekúndur að púsla saman forsíðunni, sem er um það bil 1/50 af því sem áður var.

Það getur verið gaman að nördast!


< Fyrri færsla:
Hitt og þetta, aðallega hitt
Næsta færsla: >
Bomba skekur ITU: Barinn bannaður
 


Athugasemdir (3)

1.

Jón Heiðar reit 04. nóvember 2005:

Nörd

2.

Þórarinn sjálfur reit 05. nóvember 2005:

Guilty as charged.

3.

Már reit 13. nóvember 2005:

Cache?

Útrætt mál

Lokað er fyrir athugasemdir eftir 30 daga.

Comments are closed for this entry