Просмотр полной версии : [Вопрос] Оптимизация SCM
vovandolg
14.08.2016, 02:09
При выполнении данного кода:
for (new i; i < 11; i++) SendClientMessage(playerid, -1, " ");
на слабых пк были замечены небольшие лаги,
видел тему где то по оптимизации такого кода да не могу найти,
возможно ли оптимизировать такой ужас?
Desulaid
14.08.2016, 02:16
http://pro-pawn.ru/showthread.php?10231
Лаги на клиенте или на сервере? Если на клиенте, то никакие серверные оптимизации не помогут и проблема, скорее всего, в другом месте.
vovandolg
14.08.2016, 02:44
Лаги на клиенте или на сервере? Если на клиенте, то никакие серверные оптимизации не помогут и проблема, скорее всего, в другом месте.
Да я как бы заметил это у всех, этот цикл в коннекте у меня,
при коннекте кроме подгрузки около 30 библиотек анимаций
и этого цикла особого не чего такого нету чтобы издавало мелкий поток лага.
Возможно поток музыки из интернета ещё, но он же 1 раз вызывается не 11 и не 30 раз как циклы...
Вот код допустим(Pawn.CMD + sscanf2):
https://pp.vk.me/c631828/v631828248/3d077/wIKPAMlQg6w.jpg
Вот что пишет при исполнении кода на сервере:
[01:29:13] [debug] Run time error 5: "Invalid memory access"
[01:29:13] [debug] AMX backtrace:
[01:29:13] [debug] #0 0003a66c in public pc_cmd_cc2 () at D:\Program\pawno\beta51.pwn:3981
А в чате пишет черным шрифтом в каждом сообщении SSCANF_OnGameModeInit
Да я как бы заметил это у всех, этот цикл в коннекте у меня,
при коннекте кроме подгрузки около 30 библиотек анимаций
и этого цикла особого не чего такого нету чтобы издавало мелкий поток лага.
И ты почему-то решил, что проблема в SendClientMessageToAll? Очевидно же, что проблема именно в подгрузке анимаций. Можешь использовать fixes.inc (http://pro-pawn.ru/showthread.php?14040-fixes-inc-%D0%B8%D1%81%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5-%D0%B1%D0%B0%D0%B3%D0%BE%D0%B2-SA-MP/), там подгрузка сделана более грамотно(функция для игрока вызывается дважды, если её вызывают первый раз).
И да, как я писал выше: никакие оптимизации этой функции на сервере никак не повлияют на производительность на клиенте.
vovandolg
14.08.2016, 04:21
Ну всё равно на сервере эта оптимизация не помешает, проблему бы только помог кто решить
http://pro-pawn.ru/showthread.php?10231
Ух ты, сколько пикосекунд сэкономил благодаря этому чуду? 0.5? Точно не берусь утверждать, но скорее всего игроки начнут аплодировать стоя, благодаря такой оптимизации, ведь все лаги исчезнут раз и навсегда!
Ух ты, сколько пикосекунд сэкономил благодаря этому чуду? 0.5? Точно не берусь утверждать, но скорее всего игроки начнут аплодировать стоя, благодаря такой оптимизации, ведь все лаги исчезнут раз и навсегда!
Похоже ты используешь свой метод - "работает, да и ладно". Я уверен, что та тема была создана для демонстрации одного из вариантов оптимизации кода, а не для одноразового использования очищения чата
Похоже ты используешь свой метод - "работает, да и ладно". Я уверен, что та тема была создана для демонстрации одного из вариантов оптимизации кода, а не для одноразового использования очищения чата
Если на то пошло,то давайте тогда везде,где есть циклы,будем юзать #emit,чтобы вдруг не использовать одну инструкцию несколько раз.
Ну всё равно на сервере эта оптимизация не помешает, проблему бы только помог кто решить
Я уже написал решение.
И ты почему-то решил, что проблема в SendClientMessageToAll? Очевидно же, что проблема именно в подгрузке анимаций. Можешь использовать fixes.inc (http://pro-pawn.ru/showthread.php?14040-fixes-inc-%D0%B8%D1%81%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5-%D0%B1%D0%B0%D0%B3%D0%BE%D0%B2-SA-MP/), там подгрузка сделана более грамотно(функция для игрока вызывается дважды, если её вызывают первый раз).
И да, как я писал выше: никакие оптимизации этой функции на сервере никак не повлияют на производительность на клиенте.
Да, наверно вариант с fixes.inc самый правильный, поскольку только он помогает избежать пролага при погрузки анимаций. Но тем не менее он и самый объемный (да и получаем небольшую, но видимую заддержку при первом использовании функции).
vovandolg
14.08.2016, 11:58
Вот вы заладили)) я уже поставил вариант с инклуда ziggi,
вопрос темы остался с оптимизацией цикла сообщений и на полигон бежать тестировать:crazy:
Daniel_Cortez
14.08.2016, 13:44
https://pp.vk.me/c631828/v631828248/3d077/wIKPAMlQg6w.jpg
Вот что пишет при исполнении кода на сервере:
[01:29:13] [debug] Run time error 5: "Invalid memory access"
[01:29:13] [debug] AMX backtrace:
[01:29:13] [debug] #0 0003a66c in public pc_cmd_cc2 () at D:\Program\pawno\beta51.pwn:3981
А в чате пишет черным шрифтом в каждом сообщении SSCANF_OnGameModeInit
Исправил, проверьте ещё раз ту тему с командой. Проблема была из-за бага в компиляторе, я подробно описал его здесь (http://pro-pawn.ru/showthread.php?10231&p=76282&viewfull=1#post76282).
vovandolg
14.08.2016, 14:15
DC, а можно ли как то такую оптимизацию применить к SendClientMessage(playerid, 0, str);?
Daniel_Cortez
14.08.2016, 15:01
DC, а можно ли как то такую оптимизацию применить к SendClientMessage(playerid, 0, str);?
Можно, но смысл? Вам уже отвечали ранее, в лучшем случае сэкономите пару микросекунд, может даже меньше. Та команда была всего лишь примером микрооптимизации, не более того.
vovandolg
14.08.2016, 15:12
Можно, но смысл? Вам уже отвечали ранее, в лучшем случае сэкономите пару микросекунд, может даже меньше. Та команда была всего лишь примером микрооптимизации, не более того.
Ну всё равно интересно, можно пример?:grin:
Powered by vBulletin® Version 4.2.0 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot