Inflatie

De Mircea PANTEA

Zilele trecute am avut īn fata ochilor o mostra a vremurilor cīnd toate produsele soft aveau dimensiuni rezonabile si reuseau sa functioneze pe echipamente cu performante modeste. Este vorba de un program de contabilitate care īsi face foarte bine treaba pe un XT si īsi salveaza datele pe o discheta de 360K. Produsul are o interfata cu utilizatorul īn mod text si este prevazut cu meniuri, masti de introducere a datelor si poate sa lucreze chiar si cu un maus. Viteza de lucru este rezonabila si posesorul acestei bijuterii ancestrale este foarte multumit de XT-ul sau. Mi-a fost absolut imposibil sa īi explic utilitatea unui calculator Pentium PRO. Din punctul sau de vedere evolutia tehnologica s-a īncheiat. Am fost foarte contrariat de atitudinea acestui contabil, dar ulterior am īnceput sa ma gīndesc mai profund si sa īmi pun unele īntrebari. Astfel mi-am amintit de o cunostinta care foloseste programul de calcul tabelar Lotus 1-2-3 pe un calculator 286 si care este la fel de multumit de modul īn care tehnica de calcul īl ajuta īn activitatea curenta. Apoi mi-am amintit de copilaria calculatoarelor si de Spectrum cu grafica lui complexa īngramadita īn numai 64 de kiloocteti de memorie. Īntrebarea pe care mi-o pun este urmatoarea: cīt la suta folosesc din puterea imensa de calcul pe care o am la dispozitie? Mentionez ca am la dispozitie un calculator Pentium PRO la 200 MHz, cu 1 Go hard-disc si cu 32 Mo RAM. Sistemul de operare pe care īl folosesc este NT 4.0. Unul din gadget-urile oferite de acesta este Windows NT Task Manager, care are posibilitatea sa īmi raporteze gradul de folosire a principalelor resurse ale calculatorului. Ce vad aici? Dupa pornirea sistemului am 13 procese care folosesc 1% din CPU si 15,38 Mo RAM. Asta fara sa fac altceva. Pornesc MS Word, ca sa scriu acest text si constat ca atīta timp cīt tastez ceva, procesorul este folosit 100% iar īn rest 2-3%. Memoria RAM folosita a crescut la 19,8 Mo. Pentru ca tot sīnt pornit pe experimente, lansez Visual C++ 4.2 si pornesc o compilare. Īn acest moment se īntīmpla un fenomen foarte ciudat. Procesorul este folosit īn proportie de 20-30%, īn schimb memoria RAM folosita creste la peste 30 Mo. Īnchid toate aplicatiile si ajung la 17,2 Mo de memorie folosita. Īntrebarea mea este: cine īmi tine ocupata bucata de aproximativ 2 Mo, care este diferenta dintre cīt RAM aveam ocupat la īnceput si cīt RAM am ocupat dupa ce fac cīteva manevre simple? Este evident faptul ca aceasta este memorie alocata de aplicatii si ne-eliberata. Īn argoul informatic acest proces poarta numele de "memory leak", adica "scurgere de memorie". Programatorii C/C++ stiu foarte bine ca orice bucata de memorie care va fi folosita, trebuie sa fie ceruta de la sistem prin operatorii NEW sau MALLOC si apoi, dupa folosire, aceste blocuri de memorie trebuie sa fie eliberate explicit cu DELETE sau FREE. Daca se īncearca eliberarea unei portiuni de memorie care nu a fost alocata, sistemul de operare genereaza un mesaj de eroare. Daca, īn schimb, nu se mai elibereaza memoria solicitata, sistemul de operare nu protesteaza si aceasta ramīne ocupata si inaccesibila pīna la resetarea calculatorului. Motivul pentru care o aplicatie ocupa memorie si apoi nu o elibereaza decīt partial, este scrierea neglijenta a codului sau generarea automata a acestuia cu scule RAD de calitate īndoielnica.

Asadar, exista firme producatoare de soft care nu scriu aplicatii ci genereaza cod binar care exploateaza ineficient calculatorul nostru. Pentru a putea sa lucram, sīntem nevoiti sa platim neglijenta acestora cu pretul unor echipamente mult mai scumpe decīt ar fi cazul.


(C) Copyright Computer Press Agora