1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
  2. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    Баллы:
    76
    +1

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

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

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

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

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

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

    Баллы:
    76
    Имя в Minecraft:
    IcedwinterZ
    А вот я нет. Смысли только последние данные
    Почему только последние запишет?
    А как еще делать?
     
  14. slavik123123123

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

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

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

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

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

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

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

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