Mir, mir! Umjesto svađe, pokušaću ukratko da razjasnim o čemu se radi.
Vrlo jednostavno. Nije malloc ili free sporiji u C-u nego u Javi (to ne nemoguće, pa i ta java je pisana u C/C++), nego je sporiji način na koji se ta funkcija poziva.
U C jeziku memorija se oslobađa odmah čim je više neupotrebljiva. Znači, napravite jedan int, i kad vam više ne treba (npr kad izađete iz funkcije) ta 4 bajta se oslobađaju. E kod Jave je malo drugačije. Java ne oslobađa memoriju na taj način. Kod jave to radi JVM i to tek onda kad se "nakupi" dovoljno velika količina memorije. JVM tad koristeći poseban algoritam uz pomoć jednog "free" poziva oslobađa "komad" memorije, za koji bi običan C program potrošio stotinjak poziva.
Analogija je da je lakše "okrenuti novi list" nego "brisati svako slovo po slovo"
Ili zamislite da perete auto tako što pljunete na svaku mrlju pa je onda brišete ćoškom od majice
kad god se auto imalo isprlja ... Umjesto toga, pustite limuzinu da se pošteno oprlja, odete do autopraone gjde perač prospe kantu vode i mahne krpom i gotovo
Tako da stvar je u pristupu, mada jasno je da je direktno izvršavanje mašinskog koda brže. Java to dobro nadoknađuje na razne načine (tipa ovog). "Eksperiment" je potrvrdilo testiranje C programa koji je koristio pojednostavljen algoritam kojeg JVM koristi i rezultati su bili mnogo bolji od običnog C programa ali i dalje iza Jave ... Eto
Sad u vezi "prekompleksnog C-a" to ne mogu da komentarišem
Nemanja potrudi se da poruke pišeš malo smislenije da možemo da te čitamo prijatnije i da se dsimic ne bi opet nervirao
