Java ME bellek durumu istatistikleri

____________________________________________________________________

cep telefonlar覺 gibi d羹羹k miktarda bellee sahip cihazlarda 癟al覺t覺覺ndan bunlarda bellek y繹netimi 繹nemlidir. Asl覺nda Java 癟繹p toplay覺c覺s覺 (Garbage Collector) sayesinde bu ii otomatik yap覺yor ama 癟繹p toplay覺c覺 sadece kullan覺labilir Java bellei dolduunda devreye girip referanss覺z nesneleri siliyor. Bu da uygulamada oyun vs. youn ilemci kullan覺m覺 olan uygulamalarda k覺sa s羹reliine donmaya sebep olabiliyor. Bunu bir miktar kendi kontrol羹m羹z alt覺na almak i癟in bellek durumu bilgilerine ihtiyac覺m覺z olabilir. Veya gelitirdiimiz uygulaman覺n bellek ihtiyac覺 ile ilgili uyumluluunu kontrol etmek i癟in bellek bilgilerine ihtiyac覺m覺z olabilir. , Java uygulamas覺n覺 kullanabilecei bellek miktar覺 ile ilgili basit iki deeri vermektedir; toplam bellek ve bo bellek miktar覺.

Java ME bize ayg覺t覺n toplam fiziksel bellek (RAM) miktar覺n覺 s繹ylemez. Sadece o uygulama veya (sanal makine t羹r羹ne g繹re) dier Java uygulamalar覺n覺n birlikte nesneleri saklayabilecekler bellek miktar覺n覺 g繹sterir, yani referanslar i癟in vs. kullan覺lan bellek g繹sterilmez. Bu sebeple cihaz覺n kendi bellek miktar覺ndan azd覺r ve alakas覺z da olabilir.

Java ME’de bellek bilgileri Runtime.getRuntime() ile al覺n覺r. Toplam bellek totalMemory() ve bo bellek de freeMemory() y繹ntemleri 癟ar覺larak al覺n覺r. Kullan覺m;

Runtime.getRuntime().totalMemory();

eklinde olabilir veya

Runtime rt = Runtime.getRuntime(); rt.totalMemory();

eklinde olabilir.

Bellek miktarlar覺 long olarak d繹ner.

Aa覺daki 繹rnek bir forma bellek bilgilerini yaz覺yor. Bayt olarak long deeri al覺nan say覺 1024’e b繹l羹nerek kilobayt deeri hesaplan覺yor.

public void bellekDurumunuGoster()
{
Form form = nw Form("Bellek bilgileri");
Runtime rt=Runtime.getRuntime() ;
form.append("Toplam bellek:\n");
form.append(rt.totalMemory() / 1024 + " KB");
form.append("Bo bellek:\n");
form.append(rt.freeMemory() / 1024 + " KB");
form.append("Kullan覺lan bellek:\n");
System.out.println(rt.totalMemory()-rt.freeMemory() / 1024 + " KB");
Display.getDisplay(this).setCurrent(form);
}

繹p toplay覺c覺y覺 (Garbage Collector) 癟a覺rmak:

Nesnelerimiz bellei tamamen doldurmadan bellei temizlemek istersek bunun i癟in art覺k ihtiyac覺m覺z olmayan nesnelere null deer vererek (r; string ad覺nda bir String nesnemiz var, buna string = null; (Osmanl覺 Dev. zaman覺nda kar覺ya bool demek gibi birey ) dediimizde string referans覺 art覺k bir nesneyi referans g繹stermez, dolay覺s覺yla o nesne de kullan覺lamaz ve 癟繹p toplay覺c覺 taraf覺ndan toplanabilr olur. ) 繹ld羹rmeli ve 癟繹p toplay覺c覺y覺 癟a覺rmal覺y覺z. 繹p toplay覺c覺 u iki y繹ntemle 癟ar覺labilir:

  1. Runtime.getRuntime().gc();
  2. System.gc();