Salut Lucrez la un program de monitorizare care sa fie cat de cat real-time. Astfel , normal, sunt foarte atent la complexitatea programului, a operatiilor, functiilor.
De exemplu sa zicem ca am nevoie sa gasesc dintr-o multime de elemente un element cu o anumita proprietate, ca sa reduc complexitatea voi avea liste dinamice cu elementele de care au acea proprietate (de genul cum au fs-urile listele cu blocuri libere cand isi pun problema de a gasi un bloc liber). Dar (din discutiile cu un coleg) inteleg ca e posibil sa ma insel asupra calculului complexitatii datorita unor posibile operatii interne glibc sau chiar kernel. De exemplu utilizand o lista inlatuita, mentinuta dinamic, cu pointeri catre elementele cu proprietatea care ma intereseaza (pt a gasi rapid un element cu acea proprietate) s-ar putea sa nu fie programul de complexitate O(1) (referindu-ma doar la aspectul de mai sus), pentru ca utilizand malloc/free e posibil ca una din aceste instructiuni sa determine un "garbage collection" sau o reordonare interna a structurilor de alocare memorie dinamica ale glibc-ului (presupunand ca alocatorul dinamic al glibc-ului din cand in cand reordoneaza anumite treburi ca sa mentina o fragmentare minima) si daca se intampla acest lucru ajung sa am un program de cel putin O(n) (unde n ar fi o aproximare a blocurilor alocate cu malloc), sau ma insel ? PS: Din cate am citit scheduler-ul O(1) al lui Ingo foloseste o schema asemanatoare, adica foloseste un set de liste cu informatiile unde el ar fi avut nevoie de cautari O(n), dar nu stiu daca implementarea acelor liste este facuta cu un alocator dinamic sau ceva optimizat care ar folosi un spatiu continuu... Thanks ---------------------------- Mihai RUSU Disclaimer: Any views or opinions presented within this e-mail are solely those of the author and do not necessarily represent those of any company, unless otherwise specifically stated. --- Pentru dezabonare, trimiteti mail la [EMAIL PROTECTED] cu subiectul 'unsubscribe rlug'. REGULI, arhive si alte informatii: http://www.lug.ro/mlist/
