У меня есть программа 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 сообщил об этом, когда сам едва знал об этом?