<p>Salut,<br>
Astazi la hackathon am rulat o series de teste in privinta performantei meniului players din cpanel. Concluzia la care am ajuns este urmatoarea:</p>
<p>Informatiile extrase din baza de date aferente fiecarui user alcatuiesc in principiu 50% din timpul de procesare. Restul timpului este ocupat de generarea paginii cu lista de useri. Aceasta ajunge pentru 400 de useri la 220 kb. O refactorizare pentru a obtine statisticile userilor mai rapid nu ar obtine o imbunatatire suficient de mare pentru a se justifica efortul. Ma refer in acest caz de a crea noi campuri in Player, sau a stoca informatiile (statisticile) altundeva.</p>
<p>Solutia care o propun este urmatoarea:<br>Paginarea informatiilor din cpanel->players in grupari de 10-20-40 (la alegere). Eliminarea statisticilor irelevante. Activity count, Question count, Challenge count coreleaza direct cu punctajul jucatorului si nu ofera o imagine clara. Propun inlocuirea acestora cu o pagina "Detail" aferenta fiecarui user. Aceasta sa contina mai multe informatii statistice. Printre acestea se pot numara: Challenge Statistics (deja implementata), Qotd Statistics (grafic cu average Qotd / week / corect raspunse etc), login statistics (ora la care a intrat cel mai des), grafic cu punctajul playerului, gold si puncte penalizare (nou introduse). </p>
<p>Deasemenea propun si introducerea unui buton de Delete Player. Momentan nu exista aceasta optiune din cate observ eu. Stiu ca este mai putin utila in cazul folosirii LDAP pentru a crea conturile, dar general vorbind este destul de utila. Intradevar apar probleme cu activity-uri trecute ce implicau player-ul respectiv. Cred ca se poate folosi un camp "create date" la player si analizand timestamp-ul din activities sa stim care activitati sunt relevante unui player. (In caz ca se creeaza un player cu numele celui sters anterior).</p>
<p>Astept comentarii si sugestii,<br>Vicentiu</p><p>PS: timpii de rulare sunt urmatorii pe laptop-ul meu cu i3 la 2.3 ghz + SSD:</p><p>200 Playeri 100 activities per player -> 2-3 secunde<br>300 Playeri 100 activities per player -> 3-4 secunde<br>
400 Playeri 100 activities per player -> 4-5 secunde<br>400 Playeri 150 activities per player + server incarcat cu alte requesturi -> 8 secunde</p><p>20 Playeri per pagina -> 0.5 secunde maxim. (avg 0.3)</p><p><br>
</p><p><br></p>