Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Скрыть объявление

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

Тема в разделе "Разработка плагинов для новичков", создана пользователем IcedwinterZ, 2 фев 2017.

  1. Автор темы
    IcedwinterZ

    IcedwinterZ Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    IcedwinterZ
    Надо ли очищать мапы? В Какой памяти лежат данные с мап, и с листов?
     
  2. Хостинг MineCraft
    <
  3. Mr_RoboMan

    Mr_RoboMan Старожил Пользователь

    Баллы:
    123
    Если у тебя там ненужная инфа - то офк очищать...
    В той же что и все остальные объекты джавы.....
     
  4. Jampire

    Jampire Старожил Пользователь

    Баллы:
    173
    Skype:
    jampire-h
    Имя в Minecraft:
    Jampire
    мапы и листы являются частой причиной утечки памяти как раз из за того, что не очищаются.
     
  5. Автор темы
    IcedwinterZ

    IcedwinterZ Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    IcedwinterZ
    Шудуллеры в новом потоке делать? Или использовать обычный поток плагина? Сильно ли грузит PlayerMoveEvent и стоит ли его использовать? - Нет? Есть ли альтернативы ?
     
  6. AtomicInteger

    AtomicInteger Активный участник Пользователь

    Баллы:
    46
    Сам по себе ивент, конечно, не грузит.При некоторых действиях игрока, событие отправляется всем плагинам, у которых есть обработчики таких событий.Отсюда вытекает, что скорость глобальной обработки зависит от количества обработчиков и их сложности.Если, например, в этом ивенте ты будешь инкрементировать переменную, то ничего страшного, думаю, не случится.А можно конечно в таком ивенте шедулеры запускать, да. :D На счёт шедулеров в отдельном потоке, можешь глянуть, например, тут и сделать выводы.На вопрос о очистке коллекций можно ответить чисто логически.Если данные нужны - удалить их нельзя, в противном случае, нечего их держать в памяти.
     
  7. alexandrage

    alexandrage Администратор

    Баллы:
    173
    Skype:
    alexandr0116
    Да все объекты на которые есть ссылки не очистятся.
     
  8. Автор темы
    IcedwinterZ

    IcedwinterZ Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    IcedwinterZ
    Еще вопрос, типа: А будет ли что-то?
    Собственно, есть предположим снежок, который летит, ну, оочень быстро, этот снежок, записываю в лист, где потом, обрабатываю его падение: в листе берется первый (0) аргумент, обарабатывается, лист очищается. Если 2-4 игрока, стрельнут одновременно? Что будет?
     
  9. AtomicInteger

    AtomicInteger Активный участник Пользователь

    Баллы:
    46
    А ты в лист что заносишь?
     
  10. Автор темы
    IcedwinterZ

    IcedwinterZ Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    IcedwinterZ
    Код:
        static FileConfiguration c;
        static AmmoType type;
        static AmmoAction aa;
        static int id;
     
  11. Dereku

    Dereku Старожил

    Баллы:
    173
    Skype:
    derek_unavailable
    Имя в Minecraft:
    _Dereku
    А потом будешь писать "ни работает, заносятся последние данные толька".
     
  12. Blc_Dragon

    Blc_Dragon Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    Blc_Dragon
    +1

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

    xDark Активный участник Пользователь

    Баллы:
    96
    Skype:
    ailyashevich
    Имя в Minecraft:
    xDark
    static - значит поле будет "инициализироваться" при подгрузке класса, а не создании объекта.
     
  14. Blc_Dragon

    Blc_Dragon Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    Blc_Dragon
    я давно разобрался с этим
     
  15. Автор темы
    IcedwinterZ

    IcedwinterZ Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    IcedwinterZ
    А вот я нет. Смысли только последние данные[DOUBLEPOST=1486135937,1486130686][/DOUBLEPOST]
    Почему только последние запишет?
    А как еще делать?
     
  16. slavik123123123

    slavik123123123 Старожил Пользователь

    Баллы:
    143
    Имя в Minecraft:
    Leymooooooooooo
    Статик метод грубо говоря для каждого эксепляра класса один и тотже.
    Тоесть преположим в классе 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"

    как то так
     
  17. Автор темы
    IcedwinterZ

    IcedwinterZ Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    IcedwinterZ
    т.е просто убрать статик...?
     
  18. Dereku

    Dereku Старожил

    Баллы:
    173
    Skype:
    derek_unavailable
    Имя в Minecraft:
    _Dereku
    Ага.
     

Поделиться этой страницей