2013-07-12 14 views
7

Jestem w zasadzie administratorem Weblogic i chcę symulować sytuację braku pamięci poprzez wdrażanie bardzo prostego kodu Java (pliku wojny/ucha) w mojej instancji Weblogic.Przykładowy kod Java do symulacji sytuacji braku pamięci

Mam bardzo małą wiedzę na temat kodowania Java, więc czy ktoś może podać mi przykładowy kod, który można łatwo spakować jako wojnę i wdrożyć?

+2

Które pamięci? Sterta? Stos? Co dotychczas sądziłeś, że może zadziałać? – m0skit0

+1

Uruchom serwer WWW o śmiesznie niskim rozmiarze maksymalnego sterty? ;) – fge

+2

, podczas gdy ja doceniam, że ma tak wiele przebojów, OP nie zadał sobie trudu w odpowiedzi na to pytanie. – Woot4Moo

Odpowiedz

16

ta powinna być na tyle:

long[][] ary = new long[Integer.MAX_VALUE][Integer.MAX_VALUE]; 

ten próbuje przeznaczyć 2^31 + 1 bloków pamięci, każdy o rozmiarze 2,^34 bajtów.

+0

Bardzo dziękuję Marko – mak

5

Możesz zrobić final long[] l = new long[Integer.MAX_VALUE]; Przydzieli 16 Gb - 8 bajtów.

Albo można po prostu throw new OutOfMemoryError();

+2

Dzisiejsze serwery mogą po prostu zabawiać cię blokiem 2^34 bajtów :) Ale druga sugestia może wystarczyć w większości przypadków. –

+0

+1 Dla drugiego rozwiązania; nie może być bardziej bezpośredni/prosty. – arshajii

1

Aby symulować pamięć konsumowane przez czas próby:

List<long[]> list = new LinkedList<long[]>(); 
while (true) { 
    list.add(new long[65536]); // an arbitrary number 
    // sleep(1) perhaps? 
} 
+0

@MarkoTopolnik thx Marko, najwyraźniej ostatnio kodowałem zbyt wiele w C. – Dariusz

Powiązane problemy