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

Помогите Оптимизация

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

  1. Dereku

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

    Баллы:
    173
    Skype:
    derek_unavailable
    Имя в Minecraft:
    _Dereku
    uuid ;)
     
  2. Blc_Dragon

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

    Баллы:
    76
    почему он лучше? длинее же. имя больше байтов кушает. или гет by uuid пашет в разы шустрей и типа можно пожертвовать эти пару байт?
     
  3. Exception_Prototype

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

    Баллы:
    96
    Вопрос выше меня тоже интересует. Вы лично uuid пользуйтесь?
    А разве Bukkit.getPlayer(uuid) не будет кушать лишнего?
     
  4. Blc_Dragon

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

    Баллы:
    76
    так говоришь как будто Bukkit.getPLayer(String) уже и не жрет нифига
     
  5. Автор темы
    CoolBoy

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

    Баллы:
    96
    Имя в Minecraft:
    Xezard
    https://www.hastebin.com/olamireyov.cs

    I did it, or no?
     
  6. alexandrage

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

    Баллы:
    173
    Еще как будет, потому лучше ссылка на игрока.
     
  7. Автор темы
    CoolBoy

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

    Баллы:
    96
    Имя в Minecraft:
    Xezard
    А если ник хранить и через ник доставать?
     
  8. alexandrage

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

    Баллы:
    173
    Долго же.
     
  9. Blc_Dragon

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

    Баллы:
    76
    ну тк, а через юид доставать не долго что ли?
     
  10. alexandrage

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

    Баллы:
    173
    Причем тут юид?
     
  11. Blc_Dragon

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

    Баллы:
    76
    хз.

    А что за ссылка. как ее хранить?

    (вроде банально, а вроде и нет)
     
  12. Reality_SC

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

    Баллы:
    123
    Имя в Minecraft:
    Reality_SC
    Когда игрок зашёл на сервер, он Player. Пока он не выйдет, объект разумеется поменяться не может.
    У Player-а есть uuid, и есть ник, они поменяться во время сессии не могут.
    Сравнивать что ники, что uuid-ы, долго, нужнопочти O(N) от длины строки.
    Сравнить две ссылки на объект Player -- примерно как сравнить два long-а. При этом не надо обращаться по этим адресам и этим выгружать какую-то потенциально нужную кэш-линию.

    Так что player1 == player2 куда быстрее, чем
    player1.getName().equals(player2.getName());
    или
    player1.getUniqueId().equals(player2.getUniqueId());

    Только нужно аккуратно отслеживать вновь входящих и выходящих игроков, для них объекты Player меняются. И не забывать про игроков во время onEnable.
     
  13. Blc_Dragon

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

    Баллы:
    76
    спасибо сохранил C:
     
  14. Автор темы
    CoolBoy

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

    Баллы:
    96
    Имя в Minecraft:
    Xezard
    Хм. Тоесть, если я буду в классе EPlayer хранить обьект Player, вместо String name - будет быстрее и лучше, верно?
     
  15. Exception_Prototype

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

    Баллы:
    96
    Так как же всё же сравнить двух игроков? == или equals? Всё же объекты
     
  16. Sonicxd2

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

    Баллы:
    76
    По имени или UUID. Но лучше по UUID, ибо это значение уникальное.
     
  17. Автор темы
    CoolBoy

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

    Баллы:
    96
    Имя в Minecraft:
    Xezard
    А теперь глянь пост от Reality_SC.
     
  18. Exception_Prototype

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

    Баллы:
    96
    В смысле? Выше пост Reality_SC почитай, он объяснил. Просто примеров для сравнения приводил == и я вот не понял.
     
  19. Автор темы
    CoolBoy

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

    Баллы:
    96
    Имя в Minecraft:
    Xezard
    Обьекты плеера и так и так сравнивать можно.
     
  20. Exception_Prototype

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

    Баллы:
    96
    Шок. А что быстрей будет? Или он в equals тоже == ?
     

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