ciao andbin!
ho modifcato il codice così e funziona:
in effetti la memoria in questi test viene ripulita.codice:public static void main(String[] args) throws IOException { final HttpServer server = startServer(); Timer timer = new Timer(); timer.scheduleAtFixedRate(new TimerTask() { @Override public void run() { Runtime runtime = Runtime.getRuntime(); long memoryBytes = runtime.totalMemory() - runtime.freeMemory(); long memoryMBytes = memoryBytes / MEGABYTE; System.out.println("MB usati: " + memoryMBytes); if (memoryMBytes > 80) { runtime.gc(); System.out.println("Memoria pulita!"); } } }, 5000, 5000); System.out.println(String.format("Jersey app started with WADL available at %sapplication.wadl\nHit enter to stop it...", BASE_URI)); System.in.read(); timer.cancel(); server.shutdownNow(); }
quando supera gli 80 MB, viene portata sui 10 MB.
però, se il gc() è solo un suggerimento, c'è un altro modo per essere sicuro che la memoria venga ripulita nel caso superi una certa soglia?

Rispondi quotando
