Тази статия е огледална статия за машинен превод, моля, кликнете тук, за да преминете към оригиналната статия.

Изглед: 67240|Отговор: 2

[Източник] JAVA грешка възникна по време на инициализацията на VM грешка

[Копирай линк]
Публикувано в 14.08.2017 г. 16:49:22 ч. | | | |
Възникна грешка по време на инициализацията на виртуалната машина
Не успях да резервирам достатъчно място за купчина обекти от 3145728KB



Наскоро работя по програма за Java. Първоначално винаги съм харесвал управлението на паметта в Java, няма нужда да се притесняваш за разпределяне на паметта, просто разпределяй, събирачът на боклук ще си върне паметта вместо теб. Сега програмата е разработена с голямо количество данни и за бързина ще заредя цялата информация в паметта, което ще гарантира бърз отговор. Все още броя паметта многократно, мисля за собственото си количество данни, което би трябвало да е достатъчно в началото (машината ми има 4G памет, въпреки че Windows разпознава 3.5G, но би трябвало да е наред в сравнение с текущия ми обем данни).

Неочаквано, програмата на първия експеримент продължи няколко часа и се натъкна на изключение за изчерпване на паметта. Гледайки собствените си настройки на виртуалната машина, зададох -Xms512M -Xmx1024M. Без да се замисля, директно го промених на -Xms512M -Xmx2048M, и резултатът беше, че не можах да запазя достатъчно място за object heap. Програмата не може да се изправи. Тогава осъзнах, че все още има ограничение за оригиналната максимална памет. Търсих в интернет и намерих много статии, обсъждащи този въпрос. Накрая намерих най-полезната статия във форума на BEA DEV2DEV

Тук модераторът YuLimin направи теста и стигна до заключението:

Фирмена JVM версия Максимална памет (мега) клиент Максимална памет (мега) сървър

SUN 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 и не може да тества състоянието на сървъра. Оценките са приблизително същите.

SUN 1.6.0 1442 N/a

Изглежда, че е невъзможно да се използва голяма памет в Java. Общата поговорка е, че ако паметта е твърде голяма, времето за събиране на боклука ще бъде дълго. Това също е разбираемо, обикновено се събира, когато паметта не е достатъчна, сканирането на 2G паметта е разбира се много по-бавно от 1G, а има повече обекти памет, оценената връзка се увеличава експоненциално.

По-долу са приложени методите и тестовите записи на YuLimin.

Метод на теста:Тествайте с командата java -XmxXXXXM -version под командния ред, и след това постепенно увеличава стойността на XXXX, ако се изпълнява нормално, това означава, че посоченият размер на паметта е наличен, в противен случай ще се отпечата съобщение за грешка.





Тествайте максимално поддържаната памет на JVM и след това зададете променливите на средата на системата

Име на променливата: _JAVA_OPTIONS
Стойност: - Xmx1G






Предишен:Използва се плъгинът jQuery fullscreen "jQuery Fullscreen plugin"
Следващ:Разликата между сертификатите SSL, OV, DV и EV
 Хазяин| Публикувано в 14.08.2017 г. 16:51:30 ч. |
Java версия "1.8.0_144"
Java(TM) SE среда за изпълнение (build 1.8.0_144-b01)
Java HotSpot(TM) 64-битова сървърна виртуална машина (билд 25.144-b01, смесен режим)



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

 Хазяин| Публикувано в 1.09.2020 г. 22:29:04 ч. |
Параметри на JVM Опции
https://www.itsvse.com/thread-9369-1-1.html

Отричане:
Целият софтуер, програмни материали или статии, публикувани от Code Farmer Network, са само за учебни и изследователски цели; Горното съдържание не трябва да се използва за търговски или незаконни цели, в противен случай потребителите ще понесат всички последствия. Информацията на този сайт идва от интернет, а споровете за авторски права нямат нищо общо с този сайт. Трябва напълно да изтриете горното съдържание от компютъра си в рамките на 24 часа след изтеглянето. Ако ви харесва програмата, моля, подкрепете оригинален софтуер, купете регистрация и получете по-добри услуги. Ако има нарушение, моля, свържете се с нас по имейл.

Mail To:help@itsvse.com