/ / Potrebujete tlačiť JAVA haldy a resetovať GC hodnotu pomocou PERL / PowerShell Script - java

Potrebu tlačiť JAVA Heap Použitie a resetovanie hodnoty GC pomocou Perl / PowerShell Script - java

Som nová JAVA.

Používame jeden nástroj, ktorý používa veľkosť JAVA haldy.

Nedávno čelíme "java.lang.OutOfMemoryError: Priestor haldy Java"a nástroj sa dostáva HUNG.

Teraz mám v pláne napísať skript, aby sa veľkosť haldy a ak vynechá limt musím vyčistiť GC, takže haldy použitie bude opäť nízka.

Prosím, pomôžte mi v tomto.

Stroj OS: Win 2012 Server

odpovede:

1 pre odpoveď č. 1

Ok. Dve veci.

  1. Ak dostanete OutOfMemoryError, zbierka na odpadky nepomôže. OutOfMemoryErrors sú:

    Hozený, keď Java Virtual Machine nemôže vyhradiť objekt, pretože je mimo pamäte, a zberač odpadu by nemohol sprístupniť viac pamäte, Objekty OutOfMemoryError môžu byť konštruované virtuálnym strojom, ako keby bolo potlačenie zakázané a / alebo stopa zásobníka nebola zapisovateľná. zdroj

  2. Existuje niekoľko implementácií JMX pre Perl. Tu je prvý výsledok Google

To však nepomôže, pretože problém nie je to, čo si myslíte, že je. Problém je buď:

  • Program vyžaduje viac priestoru haldy, než je momentálne k dispozícii. Pre JVM musíte prideliť viac miesta haldy.
  • Aplikácia presakuje pamäť (dobre technicky objekty, ale výsledok je rovnaký). Musíte najať lepších programátorov.