Max memory = [-Xmx] + [-XX:MaxPermSize] + number_of_threads * [-Xss]
-------------------------------------------------------------------------------------------------------------------------
-Xms set initial Java heap size
-Xmx set maximum Java heap size
JVM starts with -Xms amount of memory for the heap (storing objects etc.) and can grow to a maximum of -Xmx amount of memory.
-------------------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------------
-Xms
-Xmx
JVM starts with -Xms amount of memory for the heap (storing objects etc.) and can grow to a maximum of -Xmx amount of memory.
-------------------------------------------------------------------------------------------------------------------------
| -XX:MaxPermSize=64m | Size of the Permanent Generation. [5.0 and newer: 64 bit VMs are scaled 30% larger; 1.4 amd64: 96m; 1.3.1 -client: 32m.] |
в Java имеется, так называемая "куча" ("heap"), в которой создаются и живут объекты Ваших приложений.
Куча делится на три области:
- Eden Space (heap): область, в которой размещается большинство вновь созданных объектов.
- Survivor Space (heap): область, которая содержит объекты, которые "выжили" после очистки мусора в области Eden Space.
- Tenured Generation (heap): содержит объекты, которые существовали некоторое время в Survivor Space.
Eden и Survivor составляют, так называемую, Young Generation область.
Есть также область памяти, которая не относится к "куче" (non-heap)
- Permanent Generation (non-heap): содержит все рефлексивные данные, такие как классы и методы. Эта область делится на два типа участков: только для чтения (read-only) и с возможность как чтения, так и записи (read-write).
- Code Cache (non-heap): предназначен для компиляции и хранения "родного" (native) кода.
-Xss(-XX:ThreadStackSize) set thread stack size
Each thread in a Java application has its own stack. The stack is used to hold return addresses, function/method call arguments, etc. So if a thread tends to process large structures via recursive algorithms, it may need a large stack for all those return addresses and such. With the Sun JVM, you can set that size via that parameter.
Комментариев нет:
Отправить комментарий