Ця стаття є дзеркальною статтею машинного перекладу, будь ласка, натисніть тут, щоб перейти до оригінальної статті.

Вид: 67240|Відповідь: 2

[Джерело] Помилка JAVA виникла під час ініціалізації помилки віртуальної машини

[Копіювати посилання]
Опубліковано 14.08.2017 16:49:22 | | | |
Під час ініціалізації VM виникла помилка
Не вдалося зарезервувати достатньо місця для купи об'єктів 3145728KB



Нещодавно працюю над програмою для Java. Спочатку мені завжди подобалося управління пам'яттю в Java, не треба хвилюватися про виділення пам'яті, просто виділяйте, сміттєвий збирач забере пам'ять за вас. Зараз програма розроблена з великою кількістю даних, і для швидкості я збираюся завантажити всю інформацію в пам'ять, що забезпечить швидку відповідь. Я все ще постійно рахую пам'ять, думаю про власний обсяг даних, якого мало б вистачити на початку (у моєму комп'ютері пам'ять 4G, хоча Windows розпізнає 3.5G, але це має бути нормально порівняно з поточним обсягом даних).

Несподівано програма першого експерименту тривала кілька годин і зіткнулася з винятком Out of Memory. Дивлячись на власні налаштування віртуальної машини, я встановив -XMS512M -Xmx1024M. Не замислюючись, я одразу змінив його на -Xms512M -Xmx2048M, і в результаті я не зміг зарезервувати достатньо місця для купи об'єктів. Програма не може піднятися. Тільки тоді я зрозумів, що існує обмеження для початкової максимальної пам'яті. Я шукав в Інтернеті і знайшов багато статей, що обговорюють цю проблему. Нарешті, я знайшов найкориснішу статтю на DEV2DEV форумі BEA

Тут модератор YuLimin провів тест і дійшов висновку:

Компанія JVM версія Максимальна пам'ять (мега) клієнт Максимальна пам'ять (мега) сервер

НД 1.5.x 1492 1520

SUN 1.5.5 (Linux) 2634 2660

НД 1.4.2 1564 1564

SUN 1.4.2 (Linux) 1900 1260

IBM 1.4.2 (Linux) 2047 N/A

BEA JRockit 1.5 (U3) 1909 1902

Зараз користуюся JDK1.6.0_05, протестував. Найголовніше в клієнтському стані — це те, що мій JDK не розпізнає параметр -Server і не може перевірити стан сервера. Оцінки приблизно однакові.

НД 1.6.0 1442 N/a

Схоже, що в Java неможливо використовувати велику пам'ять. І загально кажуть, що якщо пам'ять занадто велика, час збору сміття буде довгим. Це також зрозуміло, зазвичай збирається, коли пам'яті недостатньо, сканування 2G-пам'яті, звісно, набагато повільніше, ніж 1G, і об'єктів пам'яті більше, оцінений зв'язок експоненційно зростає.

Нижче додаються методи тестування та записи тестів YuLimin.

Метод тестування:Перевірте за допомогою команди java -XmxXXXXM -version у командному рядку, а потім поступово збільшувати значення XXXX, якщо він виконується нормально, це означає, що вказаний розмір пам'яті доступний, інакше буде надруковано повідомлення про помилку.





Перевірте максимальну підтримувану пам'ять JVM, а потім встановіть змінні середовища на системі

Назва змінної: _JAVA_OPTIONS
Значення: - Xmx1G






Попередній:Використовується повноекранний плагін jQuery "jQuery Fullscreen Plugin"
Наступний:Різниця між сертифікатами SSL, OV, DV та EV
 Орендодавець| Опубліковано 14.08.2017 16:51:30 |
Java-версія "1.8.0_144"
Java(TM) SE Runtime Environment (збірка 1.8.0_144-b01)
Java HotSpot(TM) 64-бітна серверна VM (збірка 25.144-b01, змішаний режим)



Java версія "1.8.0_144" 64-бітний серверний режим, 80G пам'яті, без проблем

 Орендодавець| Опубліковано 01.09.2020 22:29:04 |
Параметри JVM Опції
https://www.itsvse.com/thread-9369-1-1.html

Застереження:
Усе програмне забезпечення, програмні матеріали або статті, опубліковані Code Farmer Network, призначені лише для навчання та досліджень; Вищезазначений контент не повинен використовуватися в комерційних чи незаконних цілях, інакше користувачі несуть усі наслідки. Інформація на цьому сайті надходить з Інтернету, і спори щодо авторських прав не мають до цього сайту. Ви повинні повністю видалити вищезазначений контент зі свого комп'ютера протягом 24 годин після завантаження. Якщо вам подобається програма, будь ласка, підтримуйте справжнє програмне забезпечення, купуйте реєстрацію та отримайте кращі справжні послуги. Якщо є будь-яке порушення, будь ласка, зв'яжіться з нами електронною поштою.

Mail To:help@itsvse.com