- Баллы
- 96
Доброго времени суток.
Начала тревожить мысль производительности, если я делаю итерацию по огромной коллекции, скажем HashSet.
Например я пишу плагин на свои кровати. Каждый раз когда игрок просыпается с кровати, записывается в бд и в HashSet координаты, имя игрока. (если уже на ней спал то не записывается)
Когда кто либо ломает блок кровати, я тупо делаю итерацию по всей коллекции и ищу совпадения координат, что бы удалить кровать ну и например оповестить владельца. Что произойдет, если скажем, на сервере будет более 100к таких кроватей с разными игроками? (я возможно преувеличил) При разрушении кровати, будет большая задержка, и даже в некоторых случаев просто так, ибо совпадения может и не быть.
Дак вот ближе к сути. Каким образом можно оптимизировать это дело? Слышал что можно каким то образом подгружать поблизости от игрока объекты, правда я не понимаю каким образом, ибо наличие уже такого количества объектов при подгрузке возле игрока, тоже сильно скажется на производительности возможно..
Каким то образом WorldGuard же с огромным количеством приватов спокойно держит на плаву сервер.
Начала тревожить мысль производительности, если я делаю итерацию по огромной коллекции, скажем HashSet.
Например я пишу плагин на свои кровати. Каждый раз когда игрок просыпается с кровати, записывается в бд и в HashSet координаты, имя игрока. (если уже на ней спал то не записывается)
Когда кто либо ломает блок кровати, я тупо делаю итерацию по всей коллекции и ищу совпадения координат, что бы удалить кровать ну и например оповестить владельца. Что произойдет, если скажем, на сервере будет более 100к таких кроватей с разными игроками? (я возможно преувеличил) При разрушении кровати, будет большая задержка, и даже в некоторых случаев просто так, ибо совпадения может и не быть.
Дак вот ближе к сути. Каким образом можно оптимизировать это дело? Слышал что можно каким то образом подгружать поблизости от игрока объекты, правда я не понимаю каким образом, ибо наличие уже такого количества объектов при подгрузке возле игрока, тоже сильно скажется на производительности возможно..
Каким то образом WorldGuard же с огромным количеством приватов спокойно держит на плаву сервер.