Isonjululwe: fumana ukusetyenziswa kwenkunzi yegusha

IJava lulwimi lwenkqubo olujolise kwinto kunye noluphezulu, olunoluhlu olubanzi lwemisebenzi eguquguqukayo. Omnye umsebenzi onjalo kukukwazi ukulandelela izixhobo zesistim, ezifana nokusetyenziswa kweMemori yoFikelelo eRandom (RAM). Ukusuka ekudaleni usetyenziso olusebenzayo ukuya ekuxazululeni iingxaki, ukuqonda ukusetyenziswa kwe-RAM yesicelo sakho kunokuba yimfuneko. Kweli nqaku, siza kuphonononga indlela yokufumana ukusetyenziswa kwe-RAM kwiJava kunye nokwahlulahlula yonke ikhowudi yeJava kuwe inyathelo ngenyathelo.

Ukusetyenziswa kwe-RAM ngumlinganiselo obalulekileyo wokuqinisekisa ukusebenza ngokufanelekileyo kwaso nasiphi na isicelo esiphuhliswe kwiJava. Ngokuqonda ukuba singakanani na esi sixhobo sibalulekileyo esisetyenziswa yi-app yakho, ungasebenzela ukwandisa ukusebenza kwe-app kunye nokuphucula ukusebenza kwayo.

Indlela yokubeka iliso kusetyenziso lwe-RAM kwiJava

Ukuze ulandelele ukusetyenziswa kwe-RAM yenkqubo yeJava, siya kusebenzisa iklasi `yexesha lokuqhuba`, eyinxalenye yephakheji `java.lang`. Udidi `lwexesha lokuSebenza` lubonelela ngeendlela ezininzi ezisivumela ukuba sidibane neMeko-bume yeJava yokuSebenza (JRE).

public class Main {
    public static void main(String[] args) {
        Runtime runtime = Runtime.getRuntime();
        long memory = runtime.totalMemory() - runtime.freeMemory();
        System.out.println("Used memory in bytes: " + memory);
        System.out.println("Used memory in megabytes: " 
            + bytesToMegabytes(memory));
    }

    private static long bytesToMegabytes(long bytes) {
        return bytes / (1024L * 1024L);
    }
}

Ukwaphula iKhowudi

Kwinkqubo yeJava engentla, i`Runtime.getRuntime()` indlela ibuyisela into yexesha lokusebenza eyayanyaniswa nenkqubo yeJava yangoku. Iindlela ze `totalMemory()` kunye `neFreeMemory()` ezisuka kwiklasi ye `Runtime` zibuyisela imemori epheleleyo kunye nememori esimahla kuMatshini weJava Virtual (JVM) ngokulandelelanayo.

Xa sikhupha imemori esimahla kwimemori iyonke, sifumana inkumbulo yangoku esetyenziswa sisicelo sethu seJava. Oku kusinika usetyenziso lwenkumbulo kwii-bytes. Ukuguqula ezi bhayithi zibe kwifomati eqondakala ngakumbi, njengeemegabytes, sisebenzisa umsebenzi olula woguqulelo `bytesToMegabytes()`.

Amathala eencwadi abandakanyekayo kunye noMsebenzi ofanayo

Inkqubo yeJava ixhathisa umsebenzi owakhelwe-ngaphakathi okhoyo ngephakheji `java.lang`, ngokukodwa udidi lwe `Ixesha lokuqhuba`. Yeyona crux yokulawula imemori kwisicelo seJava.

Ngaphandle kweJava, ezinye iilwimi ezininzi zokucwangcisa zibonelela ngokusebenza okufanayo ukubuyisela ukusetyenziswa kwememori yaso nasiphi na isicelo. Umzekelo, iPython ibonelela ngethala leencwadi elithi `psutil`, elinokuqokelela inkqubo kunye nokuqhuba izinto eziluncedo.

Kwizicelo ezigxile kwimemori okanye ngelixa ujongana nogcino-lwazi olukhulu, ukubeka iliso kunye nokulawula ukusetyenziswa kwe-RAM kuba kubalulekile ekusebenzeni kakuhle kunye namava angcono omsebenzisi. Ukuqonda ukusetyenziswa kwe-RAM yesicelo sakho seJava yinxalenye ebalulekileyo yokuphucula inkqubo yakho.

Ezinye ii-Aplikheshini kunye neendlela ezizayo

Ukongeza ekufumaneni ngokulula ukusetyenziswa kwememori, ikhowudi yokubeka iliso ye-RAM engentla ingasetyenziswa kwezinye iinkqubo ezahlukeneyo. Ezi zicelo ziquka ukulandelela ukuvuza kweememori, ukujonga ukusetyenziswa kwememori ngexesha lokwenyani, ukuqalisa ukuqokelelwa kwenkunkuma, phakathi kwezinye.

Ikamva lezicelo liya kuxhomekeka ngakumbi kusetyenziso olusebenzayo lwezibonelelo. Njengoko izicelo ziqhubeka zikhula kwaye zinzima ngakumbi, ukulawula ngokufanelekileyo izixhobo ezifana ne-RAM kuya kudlala indima ebalulekileyo ekusebenzeni kwesicelo kunye nokwaneliseka komsebenzisi. Ukuqukumbela, ukuqonda ukusetyenziswa kwe-RAM yesicelo sakho seJava yinxalenye esisiseko yokwenza usetyenziso lwakho lube lula kwaye lusebenze ngakumbi ngamava omsebenzisi.

Izithuba ezihambelanayo:

Shiya Comment