Страница 1 из 2

Уменьшение нагрузки на процессор

Добавлено: Пн фев 05, 2007 4:18 am
Kaiser
этот вопрос часто задают, вот ответы на него которые нашел

1)не юзай бота вообще :D или количество уменьши
2)не использовать интерфейс (для отладки если только) консоль юзайте
3)выключи антивирусные программы
4)в конфиге повысь sleepTime
5)используй минимум плагинов
6)уменьшай обьем конфига (краткость сестра таланта)
7)добавь оперативки
8 )отключи дебаг (подробностине пишу)

статья на английскомтут

ps надо ли расписать подробнее? :oops:

Добавлено: Пн фев 05, 2007 10:00 am
BraiNLesS
Ну если несложно, то да, лучше расписать аккурат по пунктам ;о)
Особенно первый пункт ;о) Ваще самый действенный ;о) У меня с ним комп не тормозит внатуре ;о)

Добавлено: Ср фев 28, 2007 5:42 pm
chapa
да, у меня тож ток 1 пунк помогает...

Добавлено: Ср фев 28, 2007 5:49 pm
piroJOKE
[2]
[4]
[7]

Остальное от лукавого.

Добавлено: Ср фев 28, 2007 5:59 pm
PhoeniX
Можете объяснить как влияет значение СлипТайм на оперативку, а то я не могу понять?

Добавлено: Ср фев 28, 2007 6:00 pm
piroJOKE
PhoeniX
При чем тут "оперативка"?... Прочти наш сабж.

Добавлено: Ср фев 28, 2007 6:05 pm
PhoeniX
Машинально написал, извиняюсь.Ну так как влияет значение СлипТайм на нагрузку процессора?

Добавлено: Ср фев 28, 2007 6:31 pm
piroJOKE
Точнее, "ты хотел узнать, что такое sleepTime, но боялся об этом спросить" ? :D

Поясняю.

OpenKore работает следующим образом (рисунок снизу).

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

И есть некий "главный цикл", который все время исполняется, раз-за-разом. Он пролистывает всю конфигурацию, выполняет ВСЕ проверки, заданные в конфигурационных файлах (конфиг, монконтрол, итемсы), и в случае совпадений каких-то условий - генерирует сигналы серверу.
(Кроме того, оттуда же вызывается просчитывание маршрутов, идут общения к плагинами, и т.п.)

В конце этого "главного цикла" есть директива sleep. Она просто возвращает управление операционной системе на заданное в переменной sleepTime время (в микросекундах(?)).
Фактически, установка этой переменной задаёт, СКОЛЬКО раз в секунду будут выполнены все проверки.
Т.е., сколько раз в секунду будет обработана вся конфигурация.

Если мы сильно повысим значение слип-тайм, нагрузка на процессор упадет практически до нуля. Но, бот будет вести себя как лунатик. Представь себе, что твоя реакция стала из-за какой-то химии (например) 1 секунду, а то и более. :o В общем, вести себя он будет неадекватно. На это даже забавно посмотреть, вот попробуй!

А вот уменьшать это значение, чаще проверяя все условия и улучшая реакцию Kore на внешние раздражители, тоже нет особого смысла. Во-первых, растет нагрузка на проц. Во-вторых, есть время, в течении которого сигнал идет он нас до сервера и обратно (пинг), и делать реакцию быстрее чем ну... половина этого времени нет абсолютно никакого смысла.

Значение sleepTime по умолчанию 10000 (если я верно понимаю, 1/100 секунды (или 1/10?), т.е - 100 раз в секунду(?)). В старых ботах это значение по умолчанию было 50000. И это вполне рабочее значение. (У торговцев можно тыкать и 500000, им ведь вообщее ни на что реагировать не надо! :twisted: )

ЗЫ: viewtopic.php?t=612 ("завышенное потребление ресурсов / процессорное время")

Добавлено: Ср фев 28, 2007 6:42 pm
Jerry
ппц пирожок, многабукф :)
Вот, учися:
У коры есть два состояния, в которых она последовательно находится
1. Кора работает и жрет процессорное время
2. Кора ничо не делает.

sleepTime обозначает, сколько времени кора будет находиться в состоянии 2.

зыы при чем тут конфиг-файлы? Конфиги вообще вроде читаются один раз, потом работает так называемый конечный автомат состояний. Одна фаза этого автомата и есть п.1
10000 если в микросекундах то это 10 миллисекунд.

----------------------

(pJ: спорить не буду. тем более, все что я изложил выше - мои домыслы. спасибо за краткое изложение! :oops: )

Добавлено: Вс июн 17, 2007 4:45 pm
Pika4u
http://www.openkore.com/wiki/index.php/CPUUsage
Disable consistency checks
Did you know the 1.9.2 and 1.9.3 intentionally uses more CPU for debugging purposes? It runs internal consistency checks in order to find bugs.

You can disable the consistency checks, by setting the environment variable "NDEBUG" to the value "1" (without quotes). Read this page to learn how to set environment variables. Disabling consistency checks will give you about 20%-30% speed increase.

Note that by doing this we don't be able to detect some possible bugs!
Пуск -> выполнить -> пишем cmd -> в открывшемся окошке пишем cd C:\ -> пишем set NDEBUG=1

Добавлено: Вс июн 17, 2007 5:13 pm
piroJOKE
...и эта штука действует ровно до закрытия этого окна.

В современных конченных... ээээ... я хотел сказать замечательных, да, операционках системы Виндовоз это прописываеццо в свойствах "моего компьютера".

ЗЫ: Надо бы это проверить. Что то большо большие цыфры заявлены.

Добавлено: Вс июн 17, 2007 5:16 pm
Pika4u
piroJOKE писал(а):В современных конченных... ээээ... я хотел сказать замечательных, да, операционках системы Виндовоз это прописываеццо в свойствах "моего компьютера".
Где там писать, тыкни носом. Я хз >_<.

Многие говорят что ок 1.6.9 и ниже работают быстрее 1.9.0+. Эта разница в скорости вызвана, в основном, тем, что как раз юзается эта штука (ндебуг) :).

Добавлено: Вс июн 17, 2007 5:21 pm
piroJOKE
Здесь. Испытай, плз, как оно!

Добавлено: Вс июн 17, 2007 5:28 pm
Pika4u
Полегче стало точно. 8 ботов, слиптайм 100.000, все из одной папки - система не тормозит вообще практически, раньше было похуже явно.

UP: Протестил, загрузка цп стала меньше в диспетчере задач.

P.S : Выбил карту ^^.

Добавлено: Ср июн 20, 2007 1:14 pm
4epT
народ а sleepTime вляет только на проверку конфига?
на выполнения макросов оно как-то должно влиять?