Pēcis Beisikāns' Journal
|
Wednesday, July 2nd, 2003 |
|
||||
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 ) |
||||
|
Pēcis Beisikāns' Journal
|