Перейти к содержанию
Авторизация  
Wortex

Lucera 2 Загрузка геодаты в озу.

Рекомендуемые сообщения

Добрый день.

Подскажите как сделать на Lucera 2 считку геодаты просто с ssd \ hdd

Ибо сейчас она загружается в ОЗУ и использует почти ее всю.

 

72801c9e92e0ef1b277deb413ccd9019.png

 

Конфиг прилагаю:

# ===============================
# =     Настройки Геодаты       =
# =        Lucera2.ru           =
# ===============================


# 1 - Включить геодату
# 2 - Включить поиск путей
EnableGeoData=true
EnablePathFinding=true


# 1 - Дальность просмотра пути. Большее значение дает возможность мобам
# выбирать более длинные пути, но потребляет ЦП и память
# 2 - Погрешность по оси Z
# 3 - Разница высот после которой клетка начнет иметь максимальный весовой коэф.
MaxPathLength = 2500
ZAxisDensity=60
ZHighWeightLimit=16


# Максимальная разница высот
OffsetMaxZ = 45
# Минимальная разница высот
OffsetMinZ = 15


# Путь до папки с геодатой
GeodataPath = ./geodata


# Максимальное количество потоков, которые работают на загрузку/выгрузку регионов.
GeodataThreading = 5


# l2j геодата
# ru.catssoftware.gameserver.geodata.memory.loader.DefaultLoader
# Dat (PTS) геодата
# ru.catssoftware.gameserver.geodata.memory.loader.DatLoader
LoaderInjection = ru.catssoftware.gameserver.geodata.memory.loader.DefaultLoader


# Полная загрузка геодаты, без выгрузки
# ru.catssoftware.gameserver.geodata.memory.controller.FullController
ControllerInjection = ru.catssoftware.gameserver.geodata.memory.controller.FullController


# Время в минутах до выгрузки региона геодаты
# Если GridsAlwaysOn = true (grid.properties), то требуется сменить 
# тип контроллера на FullController, иначе возможны проблемы с передвижением мобов
UnloadRegionDelay = 5
Изменено пользователем Wortex

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Добрый день.

Подскажите как сделать на Lucera 2 считку геодаты просто с ssd \ hdd

Ибо сейчас она загружается в ОЗУ и использует почти ее всю.

 

72801c9e92e0ef1b277deb413ccd9019.png

 

Конфиг прилагаю:

 

 

# ===============================
# =     Настройки Геодаты       =
# =        Lucera2.ru           =
# ===============================


# 1 - Включить геодату
# 2 - Включить поиск путей
EnableGeoData=true
EnablePathFinding=true


# 1 - Дальность просмотра пути. Большее значение дает возможность мобам
# выбирать более длинные пути, но потребляет ЦП и память
# 2 - Погрешность по оси Z
# 3 - Разница высот после которой клетка начнет иметь максимальный весовой коэф.
MaxPathLength = 2500
ZAxisDensity=60
ZHighWeightLimit=16


# Максимальная разница высот
OffsetMaxZ = 45
# Минимальная разница высот
OffsetMinZ = 15


# Путь до папки с геодатой
GeodataPath = ./geodata


# Максимальное количество потоков, которые работают на загрузку/выгрузку регионов.
GeodataThreading = 5


# l2j геодата
# ru.catssoftware.gameserver.geodata.memory.loader.DefaultLoader
# Dat (PTS) геодата
# ru.catssoftware.gameserver.geodata.memory.loader.DatLoader
LoaderInjection = ru.catssoftware.gameserver.geodata.memory.loader.DefaultLoader


# Полная загрузка геодаты, без выгрузки
# ru.catssoftware.gameserver.geodata.memory.controller.FullController
ControllerInjection = ru.catssoftware.gameserver.geodata.memory.controller.FullController


# Время в минутах до выгрузки региона геодаты
# Если GridsAlwaysOn = true (grid.properties), то требуется сменить 
# тип контроллера на FullController, иначе возможны проблемы с передвижением мобов
UnloadRegionDelay = 5

 

Тут скорее ошибка в коде.

PointerRage должен знать )

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Тут скорее ошибка в коде.

PointerRage должен знать )

Это не ошибка в коде, чуть выше есть мое сообщение, если что.

Мэппинг можно производить только через MappedByteBuffer, но для хранения используется примитив. Вся геодата загружается в этой версии движка, в примитивный массив (i.e. byte[]).

Если разговор о системе динамической выгрузке/загрузке, то оно вообще работает по иному и было выпилено, с хрен-его-знает-какой-версии, т.к. было довольно медленным.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Это не ошибка в коде, чуть выше есть мое сообщение, если что.

Мэппинг можно производить только через MappedByteBuffer, но для хранения используется примитив. Вся геодата загружается в этой версии движка, в примитивный массив (i.e. byte[]).

Если разговор о системе динамической выгрузке/загрузке, то оно вообще работает по иному и было выпилено, с хрен-его-знает-какой-версии, т.к. было довольно медленным.

На сколько помню там не это загружает на 100% ОЗУ.)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

На сколько помню там не это загружает на 100% ОЗУ.)

А я вижу Вы любитель поспорить. Люблю обламывать людей, и так, поехали.

Если под "не загружается на 100% ОЗУ" имелось ввиду кушанье памяти более чем 7** мб на геодату, то рекомендую пойти почитать, как минимум, спеку джавы и JVM, какой происходит оверхед при выделении памяти на объект и на массив примитивов. Это чтобы понимать хотя бы, о чем я говорил выше.

Далее, очень желательно, прежде чем писать, хотя бы, ознакомиться с методом хранения данных в геодвижке. Не умеем и не можем? Нет проблем, я расскажу:

1. Выделяется 3х мерный массив блоков геодаты.

2. На каждый блок геодаты (их в одном регионе 65535 штук) создается объект определенного типа блока:

  - Flat, который содержит только два байта

  - Complex, который содержит 192 байта

  - Multilevel, который содержит от 192 байтов до 12 мб

В каждом объекте блока хранятся уже готовые данные, которые не требуется собирать побайтово.

 

И так, у нас имеется:

Object[][][] pew = new...

Для примера, в объекте представляющим complex-блок будет чето типа:

short[] pew1 = new short[64];
byte[] pew2 = new byte[64];

Где же хранятся данные, если не в хипе? Мне правда очень интересно, может быть я пропустил один из JSR-ов новых и что-то изменилось? Или может быть была изменена JMM? :)

 

Ах да, можете запустить у себя чето типа:

MyClass[][][] test = new MyClass[83][83][65535];
for(int i = 0; i < 83; i++) {
  for(int j = 0; j < 83; j++) {
    for(int k = 0; k < 65535; k++) {
      test[i][j][k] = new MyClass();
    }
  }
}
 
static class MyClass {
  short[] test1 = new short[65];
  byte[] test2 = new byte[65];
}

И посмотреть расход памяти после этого. Единственное, что, я выбрал довольно хороший размер массива, паддинга будет меньше, чем в реальной ситуации. :)

 

Едем дальше. Если речь идет о мэппинге, то идем и курим чето типа этого и все станет сразу ясно на счет MappedByteBuffer, включая то что, данные могут содержаться в памяти, если это требуется, а так же, что это все говно может рефлектится на win в файл подкачки.

Изменено пользователем PointerRage
  • Upvote 3

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А я вижу Вы любитель поспорить. Люблю обламывать людей, и так, поехали.

Если под "не загружается на 100% ОЗУ" имелось ввиду кушанье памяти более чем 7** мб на геодату, то рекомендую пойти почитать, как минимум, спеку джавы и JVM, какой происходит оверхед при выделении памяти на объект и на массив примитивов. Это чтобы понимать хотя бы, о чем я говорил выше.

Далее, очень желательно, прежде чем писать, хотя бы, ознакомиться с методом хранения данных в геодвижке. Не умеем и не можем? Нет проблем, я расскажу:

1. Выделяется 3х мерный массив блоков геодаты.

2. На каждый блок геодаты (их в одном регионе 65535 штук) создается объект определенного типа блока:

  - Flat, который содержит только два байта

  - Complex, который содержит 192 байта

  - Multilevel, который содержит от 192 байтов до 12 мб

В каждом объекте блока хранятся уже готовые данные, которые не требуется собирать побайтово.

 

И так, у нас имеется:

Object[][][] pew = new...
Для примера, в объекте представляющим complex-блок будет чето типа:

short[] pew1 = new short[64];
byte[] pew2 = new byte[64];
Где же хранятся данные, если не в хипе? Мне правда очень интересно, может быть я пропустил один из JSR-ов новых и что-то изменилось? Или может быть была изменена JMM? :)

 

Едем дальше. Если речь идет о мэппинге, то идем и курим чето типа этого и все станет сразу ясно на счет MappedByteBuffer, включая то что, данные могут содержаться в памяти, если это требуется, а так же, что это все говно может рефлектится на win в файл подкачки.

 

Видно любитель, но также не получилось обломать, так как дело далеко не в гео движке, что заставляет есть всю ОЗУ.

Так что не один из вариантов не был направлен в ту сторону которую должен.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Видно любитель, но также не получилось обломать, так как дело далеко не в гео движке, что заставляет есть всю ОЗУ.

Так что не один из вариантов не был направлен в ту сторону которую должен.

А я вижу, что Вы несете полную херню, в которой сами не разбираетесь, вводя в заблуждение других людей и не более того. Бывает.

  • Upvote 2

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А я вижу, что Вы несете полную херню, в которой сами не разбираетесь, вводя в заблуждение других людей и не более того. Бывает.

Серьезно?

Тогда спросите у людей которых я ввожу в заблуждение, сколько у них люцера2 ест на их лайв проектах и сколько они выделяют озу)

И тогда скажите что я несу херню.

Вы лучше послушайте вашего коллегу монгола, он же мастер по фиксам и по переписанию всего с 0.

Дело ваше, это ваш код, ваша шара.

Я всего лишь дал подсказку, а слушать меня или нет это дело ваше.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Серьезно?

Тогда спросите у людей которых я ввожу в заблуждение, сколько у них люцера2 ест на их лайв проектах и сколько они выделяют озу)

И тогда скажите что я несу херню.

Вы лучше послушайте вашего коллегу монгола, он же мастер по фиксам и по переписанию всего с 0.

Дело ваше, это ваш код, ваша шара.

Я всего лишь дал подсказку, а слушать меня или нет это дело ваше.

Из этого сообщения, я могу сделать вывод только один: Вы совершенно некомпетентны.

Метод хранения геодаты в виде объектов, внутри которых примитивы, кушает где-то 3.8гб ОЗУ. Это факт и я его констатирую, для совсем уж "странных" людей. Все остальное может уходить на различные кеши для данных.

Я напомню, что на скриншоте ТСа, мы видим онлайн 1 (это подразумевает далеко не лайв сервер, это опять же, замечание для "странных" людей) и полностью занятую ОЗУ.

 

Причем тут мой "коллега" и как он связан с этим вопросом? Я говорю сейчас с Вами, а Вы со мной. Причем тут "переписывание всего с 0"? Держите глотание колес в секрете и не выносите на публику Вашу паранойю, в ином случае, Вам нужно будет принять пару кубиков эвтаназии.

 

Никаких подсказок я не увидел, я увидел лишь некомпетентного человека, который попытался ввести в заблуждение топик-стартера, а так же, других людей, которые найдут этот топик поиском.

 

За сим, я откланиваюсь, боюсь, что разговор окончен.

  • Upvote 4

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Из этого сообщения, я могу сделать вывод только один: Вы совершенно некомпетентны.

Метод хранения геодаты в виде объектов, внутри которых примитивы, кушает где-то 3.8гб ОЗУ. Это факт и я его констатирую, для совсем уж "странных" людей. Все остальное может уходить на различные кеши для данных.

Я напомню, что на скриншоте ТСа, мы видим онлайн 1 (это подразумевает далеко не лайв сервер, это опять же, замечание для "странных" людей) и полностью занятую ОЗУ.

 

Причем тут мой "коллега" и как он связан с этим вопросом? Я говорю сейчас с Вами, а Вы со мной. Причем тут "переписывание всего с 0"? Держите глотание колес в секрете и не выносите на публику Вашу паранойю, в ином случае, Вам нужно будет принять пару кубиков эвтаназии.

 

Никаких подсказок я не увидел, я увидел лишь некомпетентного человека, который попытался ввести в заблуждение топик-стартера, а так же, других людей, которые найдут этот топик поиском.

 

За сим, я откланиваюсь, боюсь, что разговор окончен.

Могу вам написать толстым шрифтом, что по мимо вашей нагрузки как вы отписали 3.8гб есть ещё косяк.

Скриншот ТСа не причем так как там нету онлайна, для того чтоб наблюдать ваш мего кодинг на сервере должно быть как минимум 400 человек.

Именно в эти моменты начинаются чудеса.

Коллега при том что как ребенок он на каждом вашем посте ставит репАп.

Только с ним был спор тут начался с вами и он тут как тут, странно да?

Спишем на совпадение.

Не понимаю почему вы сразу, решили упомянуть такие выражения как "колес" и "кубиков эвтаназии" имеете опыт?

Думаю также не о чем говорить дальше, склоняю голову.

Изменено пользователем ncsSpawN
  • Upvote 2

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...