1. PHP / Говнокод #5265

    +195

    1. 1
    for($j=0;$j<23000000;$j++); //пауза ~3 сек

    Ну как вам? :)

    Запостил: Yanovsky, 13 Января 2011

    Комментарии (48) RSS

    • ТрубоПаскалевский delay не сильно лучше.
      Ответить
      • Он хотя бы при старте модуля Crt тестирует скорость процессора.
        Ответить
        • ...получает 0 и делит потом на него.
          Ответить
          • На самом деле делит на 55, но только в TP 7.0 неправильное деление: оно ожидает, что результат деления 32-битного числа на 55 поместится в 16 бит.

            Самое интересное, что это легко исправляется: под DelayCnt можно выделить 32 бита и выполнить полноценное 32-битное деление (двухступенчатое или с префиксом размера).

            Но метод ущербный: как уже замечено, если запустить программу на ноутбуке с питанием от батарей, а потом перейти на сетевое питание, программа ускорится.
            Ответить
    • >//пауза ~3 сек
      даа, очень гибко настраивается, в зависимости от мощности проца на сервере или квоты на процессорное время :)
      Ответить
      • Да, а потом такое сообщение от хостинга:
        Уважаемые клиенты, проверьте, пожалуйста, свои функции отвечающие за тайминг. Мы поменяли процессоры...
        Ответить
        • Уважаемые клиенты, в связи с тем, что параллельно запущен ВОВ, скорость работы интерпретатора уменьшилась, поэтому мы просим вас поменять константу на меньшую.
          Ответить
        • Уважаемые клиенты, ваш скрипт потребил процессорную квоту, поэтому хостинг для вас отключен до конца месяца.
          Ответить
    • Сразу видно, что автор произвёл слишком мало измерений - очень круглое число!
      Ответить
    • торможение двигателем...
      Ответить
    • Вот вы ржёте, а старые игрушки часто заточены под контретную частоту. Я их ейчас запускаю, а там всё моментально пролетает, приходится замедлять через досбокс.
      Ответить
      • на спектрумах и высчитывали паузу в NOPах
        Ответить
        • А на паскале в результате вычислений получался 0 и на него потом делили.
          Ответить
      • У меня прикольнее было, запускаешь игру на ноуте с питанием от батареи - работает всё как положено. Подключаешь к сети - ускоряется до субсветовых скоростей.
        Ответить
        • Были багрепорты для игр из-за какой-то проги, которая разгоняла проц на полную мощность, когда он был под нагрузкой некоторое время.

          Кстати, а как тогда сейчас высчитывается delay?
          Ответить
    • Не оригинально
      Ответить
    • Да это же усыпление процессора пилюлей из 2300.. тактов!
      Ответить
    • Какое воображение у человека! Я бы не додумался до такого..
      Ответить
      • Я писал еще на QuickBasic'e под DOS в школе такое пока не узнал что есть SLEEP :)
        Ответить
    • И что, работает? У меня есть большие сомнения. Неужто PHP настолько убог что не может соптимизировать пустой цикл?
      Ответить
      • не поленился, и правда работает! у меня 7 секунд
        <?php
        echo date(U)."<br>";
        for($j=0;$j<23000000;$j++); //пауза ~3 сек
        echo date(U);
        ?>
        Ответить
        • чо минусуете? говнокод написал? :)
          Ответить
          • За то, что не на С++ написал.
            Тут много сионистов с миносоружьями.
            Ответить
          • За 1-2 секунды выполняется.

            Может быть автор первичного сия чуда хотел доказать что его система весьма крутая и работает долго.

            Хотя тяжело вообще понять логику)))
            Где оптимизация НАХ!
            Ответить
        • >//пауза ~3 сек
          >и правда работает! у меня 7 секунд
          Не находите противоречие? ))
          Ответить
          • в том и говнокодовость, да. Значит у меня комп херовее говноавторского (atom 330, 2гб ессичо)
            Ответить
            • Говорить о том, что это работает несколько не уместно, если написанный в комментарии тайминг (как и ожидалось) не выдерживается.
              Ответить
              • В смысле вообще задержку хоть какую-то даёт.
                Я полагал что PHP достаточно умен, чтобы каким-нибудь JITом или оптимизатором пустой цикл выпилить к ебеням, но видимо, этого не стали делать из опасений совместимости с подобными просветленными программами
                Ответить
                • не осилили же, ниже ссылки на днявки
                  Ответить
                • PHP - динамический язык, в них ничего не выпиливается, питушок анскилльный.
                  Ответить
                  • ну пуздес. даже пехапешники стали пользоваться терминологией каролей
                    Ответить
                    • Я не пехапешник, просто только анскилльные питушки не знаю, что в динамических языках статический анализ работает оччень хуево.
                      Ответить
        • Код, использующий говнокод - сам становится говнокодом.
          Ответить
          • Тогда поздравляю вас, джентльмены, мы все говнокодеры. Говонокод есть в любой системной библиотеке
            Ответить
      • >Неужто PHP настолько убог что не может соптимизировать пустой цикл?

        ты не поверишь... но это так. в зенд не осилили даже AST - байткод генерируется самим парсером, какие нах оптимизации?
        Ответить
        • про байт-код можно поподробнее? Я думал ПХП чистый интерпретатор
          Ответить
          • а как же тогда работают APC / xCache и прочие аналогичные говноподпорки?
            нагуглил пруфы:
            http://php.find-info.ru/php/016/ch20lev1sec1.html
            http://blog.sjinks.pro/php/638-byte-code-optimization-in-php/
            Ответить
    • Охреневал ~3 сек
      Ответить
    • посчитаем, сколько юзверей положат сервак?
      Ответить
    • этапотрисающе )
      Ответить
    • Потом парень заканчивал, снимал презик, бросал его на пол, а эта самка ожидала следующего героя. Иногда за вечер через Наткину вагину «проходило» до двух десятков парней!
      Ответить

    Добавить комментарий