Tag Archives: vs

why STL sucks

Nu sunt mare fan al claselor din STL si niciodata n-am fost si asta din simplul motiv ca e greu sa te uiti peste sursele lui, de aceea multi nici nu o fac…. dar asta are cam consecinte grave ( cel putin pentru proiectul la care lucrez eu ).

Lucrez la un proiect in care incerc sa folosesc maxim din puterea de calcul a unui calculator cu 8 CPU-uri si ma gandeam eu asa ca ar fi ok sa paralelizez codul pe 8 thread-uri. Zis si facut.

Din cand in cand mai deschid eu task managerul sa vad cam cat putere de calcul suge aplicatia mea si… iaka ce vad

PS: kernelul este destul de stresat de aplicatie.

Per total, o aplicatie cu codul paralelizat, pe 8 threaduri suge aproximativ 30% din procesor…. am zis ca ceva nu e oki si am inceput sa debughez putin. Iaka ce imi zice visual studio:

deci: 1 thread pentru programul principal + 8 thread-uri. Se poate observa ca 5 thread-uri stau intr-o functie _Mtxlock. Deci… ce e cu functia asta? Arata astfel :

deci… mutex… ceea ce e rau la multithreading… Intrebarea? de unde atat de multi mutexi? Raspuns: niste call stackuri:

concluzie: toate lock-uri sunt din cauza claselor din STL : vector / map / list. Chiar daca sunt utilizate clasele doar intr-un singur thread, cel mai mult dureaza interogarea sistemului de operare (SO) care face lock-ul pentru mutex… si SO nu prea rezista la asa flux mare de mutexi…

Sfatul meu: a nu se utiliza stl, cel putin cand se vrea paralelizarea unui process.

Solutia pentru mine??? Cred ca trebuie sa incep sa scot pe rand cate o clasa de stl din cod.

a new day

In sfarsit miam facut putin timp… si mam uitat peste scripturile ce imi genereaza statisticile. Acuma pot sa renunt la serviciile vechi a site-ului countall.com care… chiar daca au un sistem foarte bun de creare a statisticilor site-urilor…. au bug-uri foarte-foarte urate…. din cauza asta am avut prebleme cu site-ul si nu se afisa continul in IE6, IE7, Firefox 3 beta. In rest…. parca erau okey. Din cauza asta am decis sa imi fac sistemul meu de creare a statisticilor. Incepusem vinerea trecuta… dar… intotdeauna nuti ajunge timp… de abia azi am terminat prima parte a lui. Prima parte e si cea mai esentiala… ca ea imi permite sa renunta la serviciile fostului countall.com .

Tot in aceasta perioada am incercat sa gasesc ( am si cautat ) un ide pt dezvoltare in php… am gasit 3 solutii cat de cat bune, zic eu, doar ca eu sunt cam incepator in ele… asa ca oricum ma descurc greu in ele, shi pana la urma tot ramane notepad-ul cel mai bun prieten al meu ;)) . Miam instalat un ide Zend care cat de cat se descurca bine, asa, la prima vedere… e bazata pe Eclipse. Are foarte multe facilitati. Mia nu mi-a placut datorita faptului ca pentru a debuga codul, trebuia sa instalezi nishte pachete pe server… server la care eu nu am acces shi nici macar sa-l ating nu am cum ;)) . Si atunci ramanea solutia cu o copie locala a site-ului shi Zend-ul iti crea el un server local de web, astfel ca trebuia sa debug-ez pe mashina mea locala, care, sta acuma pe windows, iar hostingul il am pe linux :(… si chiar e o diferenta in directia asta.

Am mai gasit un ide care se bazeaza pe Visual Studio 2003/2005/2008 : VS.PHP IDE. Pe site la ei gasesti nishte filmulete dragute in care ti se povesteste cum sa folosesti produsul lor, si chiar sunt de real folos ca sa shtii ce opurtunitati iti poate oferi… Iti permite sa accesezi sursele de pe server prin ftp, sa faci copie la un site de pe ftp, si inka nishte kestii dragute pe care le folosesti. Acest ide la fel iti instaleaza direct un server de apache in care shi se va face debugarea mai tarziu. Imi este cam greu sa dezvolt scripturile in el datorita faptului ca vs2005 ( ceea ce am eu ) iti formateaza php ca pe nishte html-uri shi astfel iti ia timp ca sa formatezi codul cum vrei tu in pagina ๐Ÿ˜• cred ca ar trebui sa caut pe undeva sa dezactivez chestia asta si ar fi mai oki.

Am mai instalat un ide…. dar nu mai tin minte cum il cheama ๐Ÿ˜• am uitat… asta e… shtiu ca ala iti permitea sa vizualizezi si design-ul paginii shi sursa care, probabil, ar ajuta foarte mult… cand imi aduc aminte am sa scriu ;)).

Ok. Acuma ca, sper, am revenit la normal… vreau sa termina cu scriturile de statistici… sa scot rezultatele din baza de date si sa le afisez intr-o forma mai lizibila. Pe viitor voi incerca sa fac ceva trafic pe acest site, asa ca, sa vedem diferentele, imi va trebui aceste statistici, care, probabil chiar le voi face publice… ma mai gandesc…

Ar trebui sa incep sa lucrez si la blog, caci aceasta pagina va ajunge sa fie prea lunga… si nu cred ca va fi bine… asa ca putina restructurare nu strica. Poate am sa las sistemul de creeare a statisticilor pe moment asa cum este… doar sa log-eze in baza de date, si dupa aia cand voi avea timp ma voi reintoarce la el si il “pudrez” putin :). Mdea… cred ca ar trebui sa imi fac shi un mail si sa il afisez pe site… ca in caz ca vrea cineva ceva sa imi zica… sa shtie unde poate apela… acuma e tarziu… si eu in picioare de la 7 sunt… cred ca aici ma opresc de scris… Oki… Noapte buna…