Зуд в том месте, на котором сидят.
Javolution FastList перед ArrayList раза в два медленнее при добавлении элемента, но в полтора раза быстрее при итеративном проходе.
Не знаю, зачем им эта замена шила на мыло.
Я сейчас мучаюсь с кардинальной переработкой кода взаимной видимости итемов.
Вы знаете, что в L2J.SF каждый двигающийся NPC раз в секунду выполняет updateKnownObjects();
А эта функция два раза перебирает ВСЕ объекты региона и ВСЕХ (т.е. 1+8) регионов его окружающих?
Я пока не смог отказаться от полного перебора объектов вообще, это будет хорошая площадка для оптимизации, но, думается, в несколько раз число ненужных проходов снизил. Да и регион только текущий запрашивать нужно (информация об объектах соседних регионов теперь в каждом регионе хранится).
Правда, вчера ночью код сломался в том месте, которое не трогал - падает при инициализации SpawnTable. При чём без вской диагностики... Пытаюсь понять, что там такое.
code text
...
HennaTreeTable: Loaded 3816 Henna Tree Templates.
TeleportLocationTable: Loaded 220 Teleport Location Templates.
LevelUpData: Loaded 58 Character Level Up Templates.
Exception in thread "main" java.lang.NoClassDefFoundError
at net.sf.l2j.gameserver.GameServer.<init>(GameServer.java:280)
at net.sf.l2j.Server.main(Server.java:70)
Server terminated abnormaly
server terminated
Для продолжения нажмите любую клавишу . . .
Вообще, кто-нибудь в курсе, из-за какого фига на Java получается нечто навроде "параллельной" инициализации классов? В выводе диагностика по их загрузке перемешана, сообщение о процессе работы инициализации предыдущего класса может появится уже после аналогичного последующего. Вполне м.б. что проблема вылезает где-то тут.