Tinklapio atnaujinimai [Paketas: 1 iš 4]
Parašė ozzWANTED 2009 liepos 8 07:07:13
Taigi, kaip kažkada ir buvau žadėjęs, radęs laisvo laiko, prisėsiu prie supporto darbų.
Tam skyriau visą savaitę :). Didžiąją dalį laiko skyriau būtent opiausios tinklapio problemos - krovos laiko sprendimui, na o gauti rezultatai yra tiesiog puikūs:
Vidutiniškai tinklapio krovos laikas paprastam vartotojui sumažėjo 6-7 kartus, o kritiniuose failuose, po 20-25 kartus :)
[Kaip konkrečiai pagreitėjo atitinkamose dalyse tinklapis - skaitykite dalyje plačiau]

Taip pat noriu pasidžiaugti, kad šiuo metu esame viena greičiausiai 'besikraunančių' diskusijų bendruomenių Lietuvoje tarp tokios apimties portalų(kai pagr. duom. bazės įrašų skaičius yra ~ 1 milijonas). Taip pat noriu pasidžiaugti, kad šiuo metu tinklapis kraunasi dažnai kur kas greičiau net ir už 6-8 kartus mažesnes duomenų bazes turinčius Php-Fusion tinklapius.
Viena iš pagrindinių šio stebuklo priežasčių yra ta, kad didžioji dali portalo branduolio buvo perrašyta 'cache'(kešavimo) sistemos pagrindu. Apie šios sistemos metodus, prieš savaitę parašiau pirmąją straipsnio dalį, na o esant laisvo laiko, paruošiu ir antrąją, kur aptarsiu: "dbcount vs dbrows", "if(A & B) VS if(A) if(B)", "for VS while", "if VS switch", taip pat aprašysiu koks indeksavimas duoda geriausių rezultatų.

---
Na, o dabar pats laikas pakalbėti apie įdiegtus atnaujinimus:
* Cache sistema
* Teisingai sudėta dar keliolika indeksų duomenų bazėje
* Pagaliau atsikratyta nereikalingo post_subject laukelio
* Smarkiai išplėsta SIP sistema:
Būtinumas: Nuo šiol galėsite patys, kartą per 2 savaites, pasikeisti savo statinį IP adresą. Tiesiog Jums reikės redaguojant savo profilį el. paštu atsisiųsti spec. 4 valandas galiojantį patvirtinimo kodą, ir jį įvesti nurodytame puslapyje.
Saugumas: Nuo šiol galite nesibaiminti dėl savo postų saugumo - SIP apsaugos pagalba, nebus įmanoma esant sip neatitikimui redaguoti su SIP parašytų postų :)

* Išplėstinė rezoliucijų sistema: nuo šiol nebereikės profilyje nusistatinėti savo rezoliucijos, pagal kurią bus pritaikomas tinklapis(priminsiu, kad 1440, 1600, 1680, 1920 ir 2048 taškų pločio monitoriams yra taikomas didesnio šrifto ir matmenų šablonas, labiau išnaudojantis tinklapio plotą, tame tarpe ir platesni žinučių rašymo langai, pavadinimų trumpinimo ilgiai ir kt.) - tai automatiškai padarys pati sistema.
** Jeigu visgi net ir turėdami didelį monitorių, dėl kažkokių sunkiai suprantamų priežasčių norėtumėte turėti vis dėl to mažesniems monitoriams taikomą dizainą, redaguodami vartotojo profilį, pasirinkite temą: Revision_small.

* Interaktyvi "tema peržiūra/neperžiūrėta" sistema paskutinių temų panelėje - nuo šiol naujojo skripto pagalba, peržiūrėtos temos paskutinių temų panelėje bus žymimo įprasta ikona, o ne visos temos degs "naujų" arba "peržiūrėtų" temų spalva :)

* Išplėsta "šiukšlių" forumo atskirtis. Nuo šiol besinaudojant paieška šiame forume sistema nebeieškos, tad blogi postai nebesimėtys tarp 'gerųjų'. Taip pat šiam forumui buvo suteikta spec. ikona, bei forumo indekse, ši forumas spalvinimas atskira - pilka, spalva.

* IŠKELK savo temą: nuo šiandienos forume yra griežtai draudžiama 'up'inti savo temas, tam mes įdiegėme visiems nariams prieinamą [KELTI TEMĄ] mygtuką: juo galėsite pasinaudoti vieną kartą per 8 valandas vienai savo temai. Moderatoriai, be abejonės, galės tai daryti dažniau - kartą į valandą vienai kažkuriai temai
Na o visi VIP narystę užsisakę nariai galės prikelinėti savo temas net 3 kartus dažniau nei paprasti nariai :)

* Matyk draugų veiksmus: nuo šiandienos buvo išplėsta svečių peržiūros sistema. Nuo šiandien, visi užsisakę svečių peržiūrą, galės matyti ne tik kas, kiek kartų, kaip dažnai ir kada lankėsi Jūsų profilyje, bet ir kokį veiksmą atliko - tik pasisvečiavo? O gal parašė komentarą? O galbūt Jus įvertino? Taip, visa tai nuo šiandienos yra matoma Jūsų svečių peržiūroje. :)

* Paprastesnis puslapiavimas: Nuo šiol forume veikia supaprastinto puslapiavimo sistema :) - nebeliko tų sudėtingų 'rowstart=DIDELIS IR NEAIŠKUS skaičius', jį pakeitėme visiems suprantamu 'page=PUSLAPIO NUMERIS' :).

* Mėgstamiausi dizainai: Tai nauja funkcija VIP nariams - nuo šiol visi VIP nariai galės matyti tinklapyje naudojamų dizainų populiarumą - kiek narių kurį dizainą naudoja :). Ieškokite šio atnaujinimo savo 'VIP meniu'.

* Atnaujinimas administratoriams: Pagaliau sutvarkyta "Šiuo slapyvardžiu taip pat naudojasi:" sistema, dabar ji jau tikrai veikia :) O kadangi tobulėjimui ribų nėra - ateityje mes ją dar išplėsime :)

* Atnaujinimas moderatoriams: Nuo šiol forumo pranešimą nukopijuoti ar perkelti bus patogiau - nereikia pasirinkinėti nei perkėlimo tipo, nei iš sąrašo pasirinkinėti perkėlimo būdo - visa tai už Jus automatiškai padarys sistema :)

* Patogesnis perkeltų/nukopijuotų pranešimų žymėjimas: Nuo šiol vietoje informacijos pranešimo pradžioje, ši informacija bus matoma pranešimo apačioje, kur anksčiau buvo tik dalis "redagavo...", na o posto pradžioje beliks tik, atitinkama "-->" simbolis, jei pranešimas buvo perkeltas, ir "<--->" simbolis, jei pranešimas buvo nukopijuotas.

--------
Be abejonės, iš nematomų dalykų, buvo sutvarkyta per 50 smulkių klaidelių tinklapyje, matomų per error_reporting(E_ALL).
Taip pat iškelta reklamos bei vip/svečių peržiūros užsisakymo nuoroda į tinklapio viršų. Dabar bus lengviau rasti :)

Taigi, kol kas tiek. Laukite antrojo atnaujinimų paketo. Jame iš jau numatytų dalykų tikrai bus 'masinio temos žinučių trynimo galimybė', 'bei masinio temos žinučių perkėlimo/nukopijavimo galimybė'.

Na o dėl konkrečių laiko pokyčių skaitykite dalyje "Plačiau".

Pagarbiai,
ozzWANTED - portalo tech. administratorius

Išplėstos naujienos
Taigi, kaip kažkada ir buvau žadėjęs, radęs laisvo laiko, prisėsiu prie supporto darbų.
Tam skyriau visą savaitę :). Didžiąją dalį laiko skyriau būtent opiausios tinklapio problemos - krovos laiko sprendimui, na o gauti rezultatai yra tiesiog puikūs:
Vidutiniškai tinklapio krovos laikas paprastam vartotojui sumažėjo 6-7 kartus, o kritiniuose failuose, po 20-25 kartus :)

Taip pat noriu pasidžiaugti, kad šiuo metu esame viena greičiausiai 'besikraunančių' diskusijų bendruomenių Lietuvoje tarp tokios apimties portalų(kai pagr. duom. bazės įrašų skaičius yra ~ 1 milijonas). Taip pat noriu pasidžiaugti, kad šiuo metu tinklapis kraunasi dažnai kur kas greičiau net ir už 6-8 kartus mažesnes duomenų bazes turinčius Php-Fusion tinklapius.
Viena iš pagrindinių šio stebuklo priežasčių yra ta, kad didžioji dali portalo branduolio buvo perrašyta 'cache'(kešavimo) sistemos pagrindu. Apie šios sistemos metodus, prieš savaitę parašiau pirmąją straipsnio dalį, na o esant laisvo laiko, paruošiu ir antrąją, kur aptarsiu: "dbcount vs dbrows", "if(A & B) VS if(A) if(B)", "for VS while", "if VS switch", taip pat aprašysiu koks indeksavimas duoda geriausių rezultatų.

---
Na, o dabar pats laikas pakalbėti apie įdiegtus atnaujinimus:
* Cache sistema
* Teisingai sudėta dar keliolika indeksų duomenų bazėje
* Pagaliau atsikratyta nereikalingo post_subject laukelio
* Smarkiai išplėsta SIP sistema:
Būtinumas: Nuo šiol galėsite patys, kartą per 2 savaites, pasikeisti savo statinį IP adresą. Tiesiog Jums reikės redaguojant savo profilį el. paštu atsisiųsti spec. 4 valandas galiojantį patvirtinimo kodą, ir jį įvesti nurodytame puslapyje.
Saugumas: Nuo šiol galite nesibaiminti dėl savo postų saugumo - SIP apsaugos pagalba, nebus įmanoma esant sip neatitikimui redaguoti su SIP parašytų postų :)

* Išplėstinė rezoliucijų sistema: nuo šiol nebereikės profilyje nusistatinėti savo rezoliucijos, pagal kurią bus pritaikomas tinklapis(priminsiu, kad 1440, 1600, 1680, 1920 ir 2048 taškų pločio monitoriams yra taikomas didesnio šrifto ir matmenų šablonas, labiau išnaudojantis tinklapio plotą, tame tarpe ir platesni žinučių rašymo langai, pavadinimų trumpinimo ilgiai ir kt.) - tai automatiškai padarys pati sistema.
** Jeigu visgi net ir turėdami didelį monitorių, dėl kažkokių sunkiai suprantamų priežasčių norėtumėte turėti vis dėl to mažesniems monitoriams taikomą dizainą, redaguodami vartotojo profilį, pasirinkite temą: Revision_small.

* Interaktyvi "tema peržiūra/neperžiūrėta" sistema paskutinių temų panelėje - nuo šiol naujojo skripto pagalba, peržiūrėtos temos paskutinių temų panelėje bus žymimo įprasta ikona, o ne visos temos degs "naujų" arba "peržiūrėtų" temų spalva :)

* Išplėsta "šiukšlių" forumo atskirtis. Nuo šiol besinaudojant paieška šiame forume sistema nebeieškos, tad blogi postai nebesimėtys tarp 'gerųjų'. Taip pat šiam forumui buvo suteikta spec. ikona, bei forumo indekse, ši forumas spalvinimas atskira - pilka, spalva.

* IŠKELK savo temą: nuo šiandienos forume yra griežtai draudžiama 'up'inti savo temas, tam mes įdiegėme visiems nariams prieinamą [KELTI TEMĄ] mygtuką: juo galėsite pasinaudoti vieną kartą per 8 valandas vienai savo temai. Moderatoriai, be abejonės, galės tai daryti dažniau - kartą į valandą vienai kažkuriai temai
Na o visi VIP narystę užsisakę nariai galės prikelinėti savo temas net 3 kartus dažniau nei paprasti nariai :)

* Matyk draugų veiksmus: nuo šiandienos buvo išplėsta svečių peržiūros sistema. Nuo šiandien, visi užsisakę svečių peržiūrą, galės matyti ne tik kas, kiek kartų, kaip dažnai ir kada lankėsi Jūsų profilyje, bet ir kokį veiksmą atliko - tik pasisvečiavo? O gal parašė komentarą? O galbūt Jus įvertino? Taip, visa tai nuo šiandienos yra matoma Jūsų svečių peržiūroje. :)

* Paprastesnis puslapiavimas: Nuo šiol forume veikia supaprastinto puslapiavimo sistema :) - nebeliko tų sudėtingų 'rowstart=DIDELIS IR NEAIŠKUS skaičius', jį pakeitėme visiems suprantamu 'page=PUSLAPIO NUMERIS' :).

* Mėgstamiausi dizainai: Tai nauja funkcija VIP nariams - nuo šiol visi VIP nariai galės matyti tinklapyje naudojamų dizainų populiarumą - kiek narių kurį dizainą naudoja :). Ieškokite šio atnaujinimo savo 'VIP meniu'.

* Atnaujinimas administratoriams: Pagaliau sutvarkyta "Šiuo slapyvardžiu taip pat naudojasi:" sistema, dabar ji jau tikrai veikia :) O kadangi tobulėjimui ribų nėra - ateityje mes ją dar išplėsime :)

* Atnaujinimas moderatoriams: Nuo šiol forumo pranešimą nukopijuoti ar perkelti bus patogiau - nereikia pasirinkinėti nei perkėlimo tipo, nei iš sąrašo pasirinkinėti perkėlimo būdo - visa tai už Jus automatiškai padarys sistema :)

* Patogesnis perkeltų/nukopijuotų pranešimų žymėjimas: Nuo šiol vietoje informacijos pranešimo pradžioje, ši informacija bus matoma pranešimo apačioje, kur anksčiau buvo tik dalis "redagavo...", na o posto pradžioje beliks tik, atitinkama "-->" simbolis, jei pranešimas buvo perkeltas, ir "<--->" simbolis, jei pranešimas buvo nukopijuotas.

--------
Be abejonės, iš nematomų dalykų, buvo sutvarkyta per 50 smulkių klaidelių tinklapyje, matomų per error_reporting(E_ALL).
Taip pat iškelta reklamos bei vip/svečių peržiūros užsisakymo nuoroda į tinklapio viršų. Dabar bus lengviau rasti :)

Taigi, kol kas tiek. Laukite antrojo atnaujinimų paketo. Jame iš jau numatytų dalykų tikrai bus 'masinio temos žinučių trynimo galimybė', 'bei masinio temos žinučių perkėlimo/nukopijavimo galimybė'.

--------------------------
LAIKŲ POKYČIAI:
Ėmiau geriausią laiką, kai narių beveik nėra. Piko metu iki šiol rezultatai būdavo dar 1,5-2 kartus prastesni :)
(prieš atnaujinimą --> po atnaujinimo)
Nurodyti tik konkrečių skriptų krovimo lakai
Pradinis puslapis(visas psl.): 1,63sec -> 0,31sec
Vid. forumo temos krovimo laikas: 4,42sec -> 0,91sec
Forum/index.php: 8,95sec -> 0,00sec

Pask. komentarai(visas psl.): 1,22sec -> 0,26sec
Aktyviausi nariai(Wide mode): 5,45sec -> 4,25sec
Aktyviausios temos: 6,44sec-> 0,33sec
Top komentatoriai(Wide mode): 10,4sec -> 4,81sec
Top rėksniai: 2,80sec -> 1,09sec
Savaitės Top 50: 5,47sec -> 1,39sec
Mėnesio Top 100: 7,35sec -> 2,48sec
Vid. paieškos trukmė forume: 5,91sec -> 3.91 sec
Ilgas profilio krovimo laikas: 4,66sec -> 0,41sec
Vid. profilio krovimo laikas: 1,89sec -> 0,39sec
Top nariai: 1,54sec -> 0,06sec
Admin/index.php: 1,60sec ---> 0,15sec

Pask. straipsniai panelė: 0,02sec -> 0,00sec (vietoje SELECT * buvo nurodyti konkretūs laukeliai)
'Informacija' panelė: 1,31sec -> 0,00sec (dbcount() pakeistas į "$cache[__TOTALS]"
Šaukyklos panelė: 0,06sec -> 0,05 (užpildytas SELECT) -> 0.03 sec ("cache[]" vietoje dbrows)
Pask. forumo temų panelė: 0,21sec -> 0,07sec
'Vartotojo info' panelė: 0,06sec->0,04sec (SELECT "ITEMS" vietoje SELECT *)
'Apklausų' panelė: 0,06sec->0,05sec (SELECT "ITEMS" vietoje SELECT *)

Kadangi viskas buvo labiausiai optimizuota paprastiems nariams, tai paprastam nariui puslapį krauna vid. ~0,10-0,15sec greičiau nei administratoriui.

Beje, įdomumo dėlei, vykdanti vieną iš kešavimo užklausų šįryt Fusion'as buvo pasiekęs savo lėtumo rekordą: "Puslapis užkrautas per 222. sekundės" :D:D

Pagarbiai,
ozzWANTED - portalo tech. administratorius