Помогите Очистка мапов (Вопрос по производительности)

IcedwinterZ

Активный участник
Пользователь
Баллы
76
Имя в Minecraft
IcedwinterZ
Надо ли очищать мапы? В Какой памяти лежат данные с мап, и с листов?
 
мапы и листы являются частой причиной утечки памяти как раз из за того, что не очищаются.
 
Шудуллеры в новом потоке делать? Или использовать обычный поток плагина? Сильно ли грузит PlayerMoveEvent и стоит ли его использовать? - Нет? Есть ли альтернативы ?
 
Шудуллеры в новом потоке делать? Или использовать обычный поток плагина? Сильно ли грузит PlayerMoveEvent и стоит ли его использовать? - Нет? Есть ли альтернативы ?
Сам по себе ивент, конечно, не грузит.При некоторых действиях игрока, событие отправляется всем плагинам, у которых есть обработчики таких событий.Отсюда вытекает, что скорость глобальной обработки зависит от количества обработчиков и их сложности.Если, например, в этом ивенте ты будешь инкрементировать переменную, то ничего страшного, думаю, не случится.А можно конечно в таком ивенте шедулеры запускать, да. :D На счёт шедулеров в отдельном потоке, можешь глянуть, например, тут и сделать выводы.На вопрос о очистке коллекций можно ответить чисто логически.Если данные нужны - удалить их нельзя, в противном случае, нечего их держать в памяти.
 
Еще вопрос, типа: А будет ли что-то?
Собственно, есть предположим снежок, который летит, ну, оочень быстро, этот снежок, записываю в лист, где потом, обрабатываю его падение: в листе берется первый (0) аргумент, обарабатывается, лист очищается. Если 2-4 игрока, стрельнут одновременно? Что будет?
 
Еще вопрос, типа: А будет ли что-то?
Собственно, есть предположим снежок, который летит, ну, оочень быстро, этот снежок, записываю в лист, где потом, обрабатываю его падение: в листе берется первый (0) аргумент, обарабатывается, лист очищается. Если 2-4 игрока, стрельнут одновременно? Что будет?
А ты в лист что заносишь?
 
А потом будешь писать "ни работает, заносятся последние данные толька".
+1

сам на этом много времени убил. разные источники говорят по разному, и не всегда понятно
 
+1

сам на этом много времени убил. разные источники говорят по разному, и не всегда понятно
static - значит поле будет "инициализироваться" при подгрузке класса, а не создании объекта.
 
Статик метод грубо говоря для каждого эксепляра класса один и тотже.
Тоесть преположим в классе Main есть это
private static String test;
public Main(String test) {
this.test = test;
}
public String getTest(){
return test;
}

Вызываешь гденибудь класс.
Main m = new Main("test");
Main m2 = new Main("test2");
И выводишь
m.getTest();
m2.getTest();

и получаешь результат
"test2"
"test2"
Тоесть указвая новый обьёкт, он изменяется сразу во всех классах.
. Убираешь оттуда статик получаешь
"test"
"test2"

как то так
 
Статик метод грубо говоря для каждого эксепляра класса один и тотже.
Тоесть преположим в классе Main есть это
private static String test;
public Main(String test) {
this.test = test;
}
public String getTest(){
return test;
}

Вызываешь гденибудь класс.
Main m = new Main("test");
Main m2 = new Main("test2");
И выводишь
m.getTest();
m2.getTest();

и получаешь результат
"test2"
"test2"
Тоесть указвая новый обьёкт, он изменяется сразу во всех классах.
. Убираешь оттуда статик получаешь
"test"
"test2"

как то так
т.е просто убрать статик...?
 
Назад
Верх