2011-02-10 11 views
8

powiedzmy, „run myApp.jar z procesorem i pamięcią = 800 = 1024”Ograniczanie zużycia pamięci i procesora Java Application za

Ive robi programowania Java od wielu lat i jest to embarrasment zadać to pytanie. Nie wiem nawet, czy to możliwe, czy nie. A jeśli tak, to w jaki sposób?

Po prostu chcę wiedzieć, czy możliwe jest ustawienie maksymalnej pamięci i wykorzystania procesora Java. Nagle o tym pomyślałem, ponieważ niedawno zacząłem tworzyć aplikacje mobilne. Chcę wiedzieć, jak aplikacja będzie się zachowywać na urządzeniu, które ma bardzo ograniczoną pamięć i procesor.

Widziałem silniki fizyki z aplikacjami demonstracyjnymi, które działają w przeglądarce lub mogę wykonać na moim komputerze. Co się stanie, jeśli uruchomię je na urządzeniu mobilnym? Czy wydajność będzie taka sama? Zamiast opracowywać przykładową aplikację mobilną do testowania wydajności biblioteki, wolałbym ją uruchomić z konkretnym procesorem i pamięcią, używając najpierw mojego komputera.

Próbowałem googling przy okazji ... wszystko, co znalazłem, to monitorowanie i dostrajanie wydajności. Mogę używać niewłaściwych słów kluczowych.

Odpowiedz

8

można ograniczyć użycie pamięci przez opcję -Xmx i można ograniczyć użycie procesora, ustawiając priorytet powinowactwa procesu i/lub procesora.

+0

Dzięki bestsss. Spróbuję. – demotics2002

+2

W systemie Linux można uruchomić maszynę JVM z określonym powinowactwem do CPU, używając 'taskset (1)', co dla wielu ludzi jest daleka od oczywistości. Nie ma sposobu na ustawienie powinowactwa procesora z JVM. (możesz zrobić magię JNI, ale są to smoki.) – andersoj

+0

tak, nie możesz ustawić ani powinowactwa, ani priorytetu procesora standardowymi opcjami java, które znam ... w oknach polecenie, którego potrzebujesz, to start (w 32-bitowych oknach robi to nie ma jednak opcji koligacji) – bestsss

1

W tym scenariuszu może pomóc uruchomić aplikację na emulatorze mobilnym (np. Android).

Dzięki temu można emulować urządzenie mobilne z określonym procesorem/pamięcią. Tak więc wydajność powinna być porównywalna do urządzenia, które ma wolniejszy procesor i mniejszą pamięć RAM.

Emulator Android/Nokia jest bezpłatny i dostępny do pobrania w sekcjach dla programistów witryn Nokia/Google.

1

JVM nie ma kontroli nad wykorzystaniem procesora ani jego priorytetem.

JVM ma kontrolę nad maks./Min Wykorzystanie pamięci.

Istnieje obejście. Możliwe jest uruchomienie każdej maszyny JVM w oddzielnym Docker container. I kontroluj przydzielanie zasobów (pamięci, procesora, sieci, IO) dla każdego kontenera. To jest właśnie wartość dodana kontenerów Docker.

Powiązane problemy