Программа запускается в OutOfMemoryException на некоторых Java версиях, но не на других - PullRequest
1 голос
/ 06 января 2020

У меня есть программа java, которая использует много памяти. В некоторых Java версиях он встречается с OutOfMemoryExceptions и другими версиями, которых он не делает.

Это довольно раздражает, потому что эта программа запускается пользователями, и во многих случаях у них нет версии Java, которая работает правильно.

Единственная разница между тем, когда он работает и не работает, это Java версия.

Вот несколько примеров версий, которые работают: 1.8.0_111, 1.8.0_144 , 1.8.0_172 и 1.8.0_181 Вот некоторые из них, которые не работают. Java 8 231u. Есть больше неработающих версий, которые я больше не могу найти. Похоже, не было какой-либо заметной схемы, с которой работали версии, а какие - нет, потому что официальные версии Oracle - единственные версии, на которые, похоже, влияют.

Используя профилировщик, я могу видите, что через некоторое время он заполняется памятью и просто не может полностью выполнить G C, что сбивает с толку, потому что он прекрасно работает во многих Java версиях, и почти все объекты в операциях, которые вызывают это, недолговечны это означает, что G C будет довольно легко.

Кто-нибудь знает эту проблему? Как бы я go сообщил об этом, когда сам едва знал об этом?

...