Здравствуйте. Есть смысл удалять все-все PVar'ы при дисконнекте игрока? Знаю что это необязательно, но не освободит ли это удаление память, которую сервер выделил под них ранее?
P.S да и вообще, какие советы можете дать относительно памяти?
Вид для печати
Здравствуйте. Есть смысл удалять все-все PVar'ы при дисконнекте игрока? Знаю что это необязательно, но не освободит ли это удаление память, которую сервер выделил под них ранее?
P.S да и вообще, какие советы можете дать относительно памяти?
Смысла удалять их при дисконнекте нет, так как они автоматически удаляются.
Подробнее о принципах работы pVar (именно по части памяти) можно прочесть тут.
Касаемо последнего вопроса: достаточно лишь просто выделять столько, сколько требуется для работы кода, и этого будет достаточно (подсчитывать нормально размер массивов). Но если ты жаждешь извращений и не самой рациональной траты времени, почитай об упакованных строках, например.
Хочешь вопрос? :D
Привет
Вообщем на PVar я делаю всякую мини п*елку в виде работ и типа готовки еды в моде.
Возник вопрос например я создал 1 pvar с названием cooking и при определенном первом этапе действия системы ему присваивается значение 1, дальше на втором этапе этому же пвару присваивается значение 2, и на третьем этапе присваивают 3 значения ну типа
Это как то влияет на нагрузку? Или если создал 1 пвар с одним названием и используешь её. Нагрузка приходиться именно на эту выделеную память или как там. Вообщем думаю ты понял суть вопросаPHP код:
SetPVar(playerid, "cooking") 1) в начале готовки
SetPVar(playerid, "cooking") 2) когда еда готова
SetPVar(playerid, "cooking") 3) и когда берешь еду
Зачем тогда вообще использовать PVar'ы? Если под один PV'ar выделяется 58 байт и при этом сразу же при коннекте игрока? Т.е если мне надо запомнить какое-то значение временно, к примеру из перехода игрока из одного диалога в другой, то какой смысл мне использовать PV'ar, если я могу записать это значение в обычную переменную (я рассматриваю только int и float) и "потратить" всего 4 байта? Получается, что профит мы получим только в случае если сервер будет пустовать? У нас есть 1000 слотов, если мы будем использовать обычную переменную, мы выделим 4000 байт под нужную нам переменную игроков, в случае с PV'ar мы выделим 0, но если на сервер зайдут 100 человек, тогда будет выделено 5800 байт? Не понимаю, разъясните, пожалуйста
Потому что эти 58*800 байт выделяются в любом случае: используешь ты pVar или нет.
Ты ещё начни использовать глобальный string вместо локального, ведь зачем выделять память в стэке (хотя она там выделена ещё при старте сервера и все твои "new" просто резервируют определённые участки памяти под свои нужды, а не выделяют новую память), когда можно создать глобальную переменную и делать всё то же самое, что и делает стэк, только в ручном режиме! :agree:
Если простым языком, то выделение памяти под стэк вшито в саму абстрактную машину. Ты лишь можешь контролировать количество выделяемой памяти через
Собственно, эта память нужна для хранения временных данных (информации о обрабатываемом коллбэке и т.п.), а так же её можно использовать путём создания локальных переменных.PHP код:
#pragma dynamic количество
У меня уже давно есть в планах написать урок, где объяснить подобные элементарные и важные вещи максимально доступно, но пока всё руки не доходят.