- Баллы
- 173
- Имя в Minecraft
- _Shevchik_
Вещи то разные, но только чем больше соотношение прогрмммные потоки/ядра, тем хуже производительность.Эм, зачем? Программные потоки и процессорные потоки это разные вещи...
Следуйте инструкциям в видео ниже, чтобы узнать, как установить наш сайт как веб-приложение на главный экран вашего устройства.
Примечание: Эта функция может быть недоступна в некоторых браузерах.
Вещи то разные, но только чем больше соотношение прогрмммные потоки/ядра, тем хуже производительность.Эм, зачем? Программные потоки и процессорные потоки это разные вещи...
На данный момент это практически не заметно, а вот утечка памяти очень мешает.Вещи то разные, но только чем больше соотношение прогрмммные потоки/ядра, тем хуже производительность.
WeakReference и WeakHashMap в помощь.Если хотите отгружать миры и не засорять ОЗУ, то не храните объекты Player, Location, World и т.д.
О них знаю, написал небольшое "weak-обертку" для всех опасных объектов и все вроде бы работает. Но проблема в том, что остаются какие-то еще ссылки, которые не связаны с моим кодом.WeakReference и WeakHashMap в помощь.
Вполне.Все работало, но недавно все опять сломалось, причем теперь проблема еще глубже:
Посмотреть вложение 40266 Посмотреть вложение 40267
Как видно, все ссылки на объект мира циклические и среди них нет Location и т.п., но я не уверен, что WorldServer тоже, т.к. там слишком много полей, чтобы их просмотреть, поэтому проблема скорее всего в нем, иначе даже не могу предположить.
Вопрос: как решить? как убедится в предположении?
Можно ли отгружать мир c помощью nms?
Проблема в том, что из игры мир отгружается, но в оперативной памяти остаётся...Вполне.
http://www.programcreek.com/java-ap.../org/royaldev/royalcommands/WorldManager.java
Вот тут и без NMS справились.
Смотрите исходники мультиворлда и Multiverse-Core. У последнего, кстати, исходный код общедоступен. Там такой проблемы нет.Проблема в том, что из игры мир отгружается, но в оперативной памяти остаётся...
Есть, только что проверил. Создал новый мир, отгрузил с помощью mv unload, но он все равно остался в памяти.Смотрите исходники мультиворлда и Multiverse-Core. У последнего, кстати, исходный код общедоступен. Там такой проблемы нет.
а что за сборщик используешь? может он просто в old gen засел, а major gc еще не произошелЕсть, только что проверил. Создал новый мир, отгрузил с помощью mv unload, но он все равно остался в памяти.
Пробовал вызывать GC вручную через visualvm, но это не помогает.а что за сборщик используешь? может он просто в old gen засел, а major gc еще не произошел
try
{
WorldServer w = ((CraftWorld) world).getHandle();
Field f = UtilReflection.getField(w.getClass().getSuperclass(), "world");
f.setAccessible(true);
f.set(w, null);
f.setAccessible(false);
} catch (Exception e)
{
//shutdown
}
