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

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

Discussion in 'Разработка плагинов для новичков' started by IcedwinterZ, Feb 2, 2017.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    Trophy Points:
    76
    Имя в Minecraft:
    IcedwinterZ
    Code:
        static FileConfiguration c;
        static AmmoType type;
        static AmmoAction aa;
        static int id;
     
  11. Dereku

    Dereku Старожил

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

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

    Trophy Points:
    76
    Имя в Minecraft:
    Blc_Dragon
    +1

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

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

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

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

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

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

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

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

    Trophy Points:
    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 Активный участник Пользователь

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

    Dereku Старожил

    Trophy Points:
    173
    Skype:
    derek_unavailable
    Имя в Minecraft:
    _Dereku
    Ага.
     

Share This Page