• Использовать ли Python, когда можно обойтись bash?

    @fireSparrow
    Без кода сложно говорить что-то конкретное.

    Есть подозрение, что вы не вставляете в цикл никаких задержек. А ведь для большинства практических задач не нужно проверять что-то каждую наносекунду, можно делать, например, раз в 100 миллисекунд. А для некоторых задач и одна проверка в минуту может быть вполне адекватной частотой.

    Вот этот код у меня грузит процессор на 99-100%

    while True:
        x = range(3)


    А вот с этим процесс python3 я почти вообще не вижу в выводе команды top. Он там появляется всего несколько раз в минуту с какой-то смешной цифрой вроде 0,2 % загрузки процессора.

    import time
    
    while True:
        x = range(3)
        time.sleep(0.1)


    Так что используйте задержки в цикле и будет вам счастье.
    Ответ написан
    Комментировать
  • Использовать ли Python, когда можно обойтись bash?

    CityCat4
    @CityCat4
    Внимание! Изменился адрес почты!
    Учить /bin/sh
    И вот почему

    На /bin/sh можно реализовать бОльшую часть админских задач, привлекая питон (хотя я вот привлекаю Perl - мне он нравится больше) только тогда, когда реально необходимо, когда скажем реализация на /bin/sh становится громоздкой и самому тебе через месяц непонятной...
    Ответ написан
    7 комментариев
  • Как поднять фпс клиент-серверного приложения в реальном времени?

    @Nwton
    Из исходников agar io:
    setInterval(moveloop, 1000 / 60);
    setInterval(sendUpdates, 1000 / 40);

    1) Иначе говоря, инфу о нажатии клавиш клиент отправляет сразу;
    2) Сервер эту инфу принимает и 60 раз в секунду ведет перерасчет данных о состоянии поля;
    3) Параллельно 40 раз в секунду сервер долбит клиента, отправляя данные о текущем состоянии поля.
    5) И это работает (https://github.com/huytd/agar.io-clone)

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