Загрузка ЦП

В этой теме 9 ответов, 5 участников, последнее обновление  yuriy 2 года/лет, 6 мес. назад.

Просмотр 10 сообщений - с 1 по 10 (из 10 всего)
  • Автор
    Сообщения
  • #774

    legozaur
    Участник
    Сообщений:9

    Зарегистрирован:
    18.05.2015

    Репутация:1

    Из-за цикла while очень сильно перегружается ЦП, лично у меня он нагружается на столько, что сравнимо с хорошей онлайн-клиент игрой.

     

    Что посоветуете?

    #775
    MicroSDA
    MicroSDA
    Участник
    Сообщений:64

    Зарегистрирован:
    24.04.2015

    Репутация:22

    Скинь код, чтоб посмотреть.

    #778

    legozaur
    Участник
    Сообщений:9

    Зарегистрирован:
    18.05.2015

    Репутация:1

     

    #include <SFML/Graphics.hpp>

    int main()
    {
    sf::RenderWindow window(sf::VideoMode(200, 200), “Lesson 1. kychka-pc.ru”);
    sf::CircleShape shape(100.f);
    shape.setFillColor(sf::Color::Green);

    while (window.isOpen())
    {
    sf::Event event;
    while (window.pollEvent(event))
    {
    if (event.type == sf::Event::Closed)
    window.close();
    }

    window.clear();
    window.draw(shape);
    window.display();
    }

    return 0;
    }

    #783
    MicroSDA
    MicroSDA
    Участник
    Сообщений:64

    Зарегистрирован:
    24.04.2015

    Репутация:22

    У тебя именно процессор грузит ? или сама программа лагает ?

    #784
    Павел Букреев
    Павел Букреев
    Хранитель
    Сообщений:586

    Зарегистрирован:
    04.01.2015

    Репутация:104

    Используйте кнопку вставки кода

    #788

    legozaur
    Участник
    Сообщений:9

    Зарегистрирован:
    18.05.2015

    Репутация:1

    Всё нормально работает, но такие “лёгкие” игры не должны жрать 20% ЦП на современных компах

    мы тут посоветовались с программистами, и пришли к выводу что это while (window.isOpen()) виноват, т.к. он доимного раз выполняется, что нагружает процессор.

    Мб есть какой вариант типа speep(50) ?

    #789
    MicroSDA
    MicroSDA
    Участник
    Сообщений:64

    Зарегистрирован:
    24.04.2015

    Репутация:22

    У меня игра с большей картой, множеством объектов на ней(как статических так и динамических). если запускаю через visual studio то 40 % загрузки цп, если просто из папки дебаг, без VS то 25 %. Проц мой intel core 2 quad q8200( весьма старый ).

    #1538
    +3

    ReRand0m
    Участник
    Сообщений:3

    Зарегистрирован:
    04.08.2015

    Репутация:5

    Заранее извиняюсь, что подымаю старую тему, но появилось что сказать по этой теме. Я не измерял нагрузку на ЦП, у меня была проблема другого характера – очень низкий FPS. Причём на аналоичном тестовом коде. Я заметил, что при движении мышкой по окну FPS проседал вплодь до 0,5! Покопавшись, таки нашёл причину. Вот это место:

    Если я правильно разобрался, то мы отлавливаем все события, а обрабатываем только закрытие окна. Но этот цикл не даёт продолжить, пока все события не будут обработаны. Возможно такая проблема только у меня. (Я программирую под Linux) В моём случае просто заменил на этот код:

    FPS поднялся до 2500. Но окно теперь закрывается только по Escape, хотя в случае моей “игры” это не критично.

    Если кто с подобным сталкивался и нашёл более лаконичное решение, напишите.

    #1539
    +1

    ReRand0m
    Участник
    Сообщений:3

    Зарегистрирован:
    04.08.2015

    Репутация:5

    Ну и чтобы по теме ответить, замерил нагрузку. При FPS 2500 у меня нагрузка ~50%

    Сделал так:

    …и нагрузка ~5%

    #3494
    +2

    yuriy
    Участник
    Сообщений:5

    Зарегистрирован:
    13.03.2016

    Репутация:4

    ещё можно

Просмотр 10 сообщений - с 1 по 10 (из 10 всего)

Для ответа в этой теме необходимо авторизоваться.