Pēcis Beisikāns' Journal
View:Personal Journal.
View:Friends.
View:Calendar.
Missed some entries? Then simply jump to the previous day or the next day.

Wednesday, July 2nd, 2003

Subject:Programmēšanas stils un efektivitāte (Java)
Time:12:53 pm.
Zinu, ka esmu ļoti piekasīgs. Sastapu kodā apmēram tādas rindiņas A, kuru aizstāju ar rindiņām B:

A: String result = (new Integer(i)).toString();
B: String result = Integer.toString(i);


Vienīgais šī koda uzdevums ir pārvērst skaitli (int) par simbolu virkni (String). Izmantojot pusdienlaiku, lai pamatotu savu darbību, uzrakstīju divus mazus testus: TestA izmanto A fragmentu, TestB - B fragmentu. Testi tika izpildīti vairākkārt un jauktā secībā, bet rezultāti visos gadījumos bija šādi:

-- TestA results ----------
... tālāk ... )
memory used: 368
-- TestB results ----------
... tālāk ... )
memory used: 352


Kā redzams, A gadījumā tiek izmantots vairāk atmiņas, jo tiek izveidots papildus objekts (Integer), kuru tālāk programmā neizmanto. Lai arī 16 baiti nav daudz, tomēr šādas rindiņas tika diezgan plaši izmantotas visā kodā. Papildus atmiņas patēriņam, zināmi resursi nepieciešami arī drazas savācējam (garbage collector), lai šo atmiņu atbrīvotu.
Ar to tiek pierādīts, ka manam piekasīgumam ir arī kāds iemesls. Viss.

Testu kods )
Comments: Read 3 or Add Your Own.

Pēcis Beisikāns' Journal

View:User Info.
View:Friends.
View:Calendar.
View:Memories.
Missed some entries? Then simply jump to the previous day or the next day.