Уменьшение нагрузки на процессор
Модератор: 4epT
Правила форума
Этот раздел является руководством и тут разрешено оставлять сообщения лишь для уточнения и внесения корректив в существующие материалы. Для вопросов существует ряд других разделов.
Этот раздел является руководством и тут разрешено оставлять сообщения лишь для уточнения и внесения корректив в существующие материалы. Для вопросов существует ряд других разделов.
Уменьшение нагрузки на процессор
этот вопрос часто задают, вот ответы на него которые нашел
1)не юзай бота вообще или количество уменьши
2)не использовать интерфейс (для отладки если только) консоль юзайте
3)выключи антивирусные программы
4)в конфиге повысь sleepTime
5)используй минимум плагинов
6)уменьшай обьем конфига (краткость сестра таланта)
7)добавь оперативки
8 )отключи дебаг (подробностине пишу)
статья на английскомтут
ps надо ли расписать подробнее?
1)не юзай бота вообще или количество уменьши
2)не использовать интерфейс (для отладки если только) консоль юзайте
3)выключи антивирусные программы
4)в конфиге повысь sleepTime
5)используй минимум плагинов
6)уменьшай обьем конфига (краткость сестра таланта)
7)добавь оперативки
8 )отключи дебаг (подробностине пишу)
статья на английскомтут
ps надо ли расписать подробнее?
читаю мануал тру весчь...
- piroJOKE
- Модератор
- Сообщения: 8205
- Зарегистрирован: Сб ноя 04, 2006 2:20 am
- Сервер RO:: localhost
- Откуда: Molvania
Точнее, "ты хотел узнать, что такое sleepTime, но боялся об этом спросить" ?
Поясняю.
OpenKore работает следующим образом (рисунок снизу).
Есть блок, принимающий сигналы сервера. Он получает пакеты, и устанавливает разные таблицы и флаги, моделируя ситуацию вокруг персонажа.
И есть некий "главный цикл", который все время исполняется, раз-за-разом. Он пролистывает всю конфигурацию, выполняет ВСЕ проверки, заданные в конфигурационных файлах (конфиг, монконтрол, итемсы), и в случае совпадений каких-то условий - генерирует сигналы серверу.
(Кроме того, оттуда же вызывается просчитывание маршрутов, идут общения к плагинами, и т.п.)
В конце этого "главного цикла" есть директива sleep. Она просто возвращает управление операционной системе на заданное в переменной sleepTime время (в микросекундах(?)).
Фактически, установка этой переменной задаёт, СКОЛЬКО раз в секунду будут выполнены все проверки.
Т.е., сколько раз в секунду будет обработана вся конфигурация.
Если мы сильно повысим значение слип-тайм, нагрузка на процессор упадет практически до нуля. Но, бот будет вести себя как лунатик. Представь себе, что твоя реакция стала из-за какой-то химии (например) 1 секунду, а то и более. В общем, вести себя он будет неадекватно. На это даже забавно посмотреть, вот попробуй!
А вот уменьшать это значение, чаще проверяя все условия и улучшая реакцию Kore на внешние раздражители, тоже нет особого смысла. Во-первых, растет нагрузка на проц. Во-вторых, есть время, в течении которого сигнал идет он нас до сервера и обратно (пинг), и делать реакцию быстрее чем ну... половина этого времени нет абсолютно никакого смысла.
Значение sleepTime по умолчанию 10000 (если я верно понимаю, 1/100 секунды (или 1/10?), т.е - 100 раз в секунду(?)). В старых ботах это значение по умолчанию было 50000. И это вполне рабочее значение. (У торговцев можно тыкать и 500000, им ведь вообщее ни на что реагировать не надо! )
ЗЫ: viewtopic.php?t=612 ("завышенное потребление ресурсов / процессорное время")
Поясняю.
OpenKore работает следующим образом (рисунок снизу).
Есть блок, принимающий сигналы сервера. Он получает пакеты, и устанавливает разные таблицы и флаги, моделируя ситуацию вокруг персонажа.
И есть некий "главный цикл", который все время исполняется, раз-за-разом. Он пролистывает всю конфигурацию, выполняет ВСЕ проверки, заданные в конфигурационных файлах (конфиг, монконтрол, итемсы), и в случае совпадений каких-то условий - генерирует сигналы серверу.
(Кроме того, оттуда же вызывается просчитывание маршрутов, идут общения к плагинами, и т.п.)
В конце этого "главного цикла" есть директива sleep. Она просто возвращает управление операционной системе на заданное в переменной sleepTime время (в микросекундах(?)).
Фактически, установка этой переменной задаёт, СКОЛЬКО раз в секунду будут выполнены все проверки.
Т.е., сколько раз в секунду будет обработана вся конфигурация.
Если мы сильно повысим значение слип-тайм, нагрузка на процессор упадет практически до нуля. Но, бот будет вести себя как лунатик. Представь себе, что твоя реакция стала из-за какой-то химии (например) 1 секунду, а то и более. В общем, вести себя он будет неадекватно. На это даже забавно посмотреть, вот попробуй!
А вот уменьшать это значение, чаще проверяя все условия и улучшая реакцию Kore на внешние раздражители, тоже нет особого смысла. Во-первых, растет нагрузка на проц. Во-вторых, есть время, в течении которого сигнал идет он нас до сервера и обратно (пинг), и делать реакцию быстрее чем ну... половина этого времени нет абсолютно никакого смысла.
Значение sleepTime по умолчанию 10000 (если я верно понимаю, 1/100 секунды (или 1/10?), т.е - 100 раз в секунду(?)). В старых ботах это значение по умолчанию было 50000. И это вполне рабочее значение. (У торговцев можно тыкать и 500000, им ведь вообщее ни на что реагировать не надо! )
ЗЫ: viewtopic.php?t=612 ("завышенное потребление ресурсов / процессорное время")
- Вложения
-
- кривейшая блок-схема,
поясняющая устройство OpenKore - koretheme.png (1.71 КБ) 12222 просмотра
- кривейшая блок-схема,
ппц пирожок, многабукф
Вот, учися:
У коры есть два состояния, в которых она последовательно находится
1. Кора работает и жрет процессорное время
2. Кора ничо не делает.
sleepTime обозначает, сколько времени кора будет находиться в состоянии 2.
зыы при чем тут конфиг-файлы? Конфиги вообще вроде читаются один раз, потом работает так называемый конечный автомат состояний. Одна фаза этого автомата и есть п.1
10000 если в микросекундах то это 10 миллисекунд.
----------------------
(pJ: спорить не буду. тем более, все что я изложил выше - мои домыслы. спасибо за краткое изложение! )
Вот, учися:
У коры есть два состояния, в которых она последовательно находится
1. Кора работает и жрет процессорное время
2. Кора ничо не делает.
sleepTime обозначает, сколько времени кора будет находиться в состоянии 2.
зыы при чем тут конфиг-файлы? Конфиги вообще вроде читаются один раз, потом работает так называемый конечный автомат состояний. Одна фаза этого автомата и есть п.1
10000 если в микросекундах то это 10 миллисекунд.
----------------------
(pJ: спорить не буду. тем более, все что я изложил выше - мои домыслы. спасибо за краткое изложение! )
http://www.openkore.com/wiki/index.php/CPUUsage
Пуск -> выполнить -> пишем cmd -> в открывшемся окошке пишем cd C:\ -> пишем set NDEBUG=1Disable 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!
Где там писать, тыкни носом. Я хз >_<.piroJOKE писал(а):В современных конченных... ээээ... я хотел сказать замечательных, да, операционках системы Виндовоз это прописываеццо в свойствах "моего компьютера".
Многие говорят что ок 1.6.9 и ниже работают быстрее 1.9.0+. Эта разница в скорости вызвана, в основном, тем, что как раз юзается эта штука (ндебуг) .