Перейти к содержанию
Fire Monkey от А до Я
  • 0

Как уменьшить нагрузку на ЦП?


mrseagull

Вопрос

Программа на FM сильно нагружает ЦП. Использую в ней поток который постоянно работает в фоне, может дело в нем.
А так программа с обычным функционалом для работы с XML файлами, которые получает из интернета.

Подскажите как можно уменьшить нагрузку на ЦП, уже всякими способами пытался оптимизировать код, но что-то никак.

P.S Простите за глупый вопрос.

2016-04-29_15-51-50.png

Ссылка на комментарий

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

  • 0
  • Администраторы

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

Ссылка на комментарий
  • 0

Прогоните прогу через профайлер, посмотрите где возникает нагрузка на процессор. Дальше либо сами оптимизируйте, либо просите помощи у народа

Ссылка на комментарий
  • 0
3 минуты назад, Сысоев Максим сказал:

Прогоните прогу через профайлер, посмотрите где возникает нагрузка на процессор. Дальше либо сами оптимизируйте, либо просите помощи у народа

Как это сделать? Никогда не слышал про это, видимо ввиду своих не глубоких познаний 

Ссылка на комментарий
  • 1

Ну например я смотрю спайдером.

Допустим я пишу сейчас АПИ для телеграмма. Есть у меня демка. И, например, у меня большая нагрузка на процессор(на самом деле мизерная - 0.1-0.3%). Что бы определить место, где происходит нагрузка - я запускаю демку под профайлером.

Открываю Code Tracking и смотрю в моем юните(TelegaPI.Bot) на количество вызовов. Ознакомившись с этой сводкой - становится ясно - что больше всего вызовов происходит во время получения обновлений. Обновления от сервера получаю getUpdates. SetIsReceiving -метод, который в другом потоке в цикле проверяет обновления. Так что, если меня не устраивает нагрузка на ЦП - нужно обратить внимание на этот метод(SetIsReceiving, а точнее getUpdates, в котором вся логика работы)

 

Av7SSLc.png

Изменено пользователем Сысоев Максим
Ссылка на комментарий

Присоединяйтесь к обсуждению

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

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

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

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