Змея / Говнокод #27113 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
In order to fund the development work on speeding CPython by a factor of five, something like $2M will be required.
This seems like a sizeable sum, but compared to the amount of money spent on Python development and the 
cost of running Python applications, it is quite a modest sum.

---

The overall aim is to speed up CPython by a factor of (approximately) five. We aim to do this in four distinct stages, 
each stage increasing the speed of CPython by (approximately) 50%.

1.5**4 ≈ 5

---

The interpreter will adapt to types and values during execution, exploiting [b]type stability[/b] in the program

---

Improved performance for [b]integers of less than one machine word[/b].
Improved peformance for [b]binary operators[/b].

---

Simple "JIT" compiler for small regions. Compile small regions of specialized code, using a relatively simple, fast compiler.
Extend regions for compilation. Enhance compiler to generate [b]superior machine code[/b].

питонисты готовят новую версию интерпретатора с революционной фичей - возможностью отъема денег у населения. Ожидается, что нововведение позволит языку быстро заработать очки на рынке пускания пыли в глаза.

https://github.com/markshannon/faster-cpython

Запостил: Fike Fike, (Updated )

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

  • Выглядит как пламенная речь гражданина О. Бендера.
    Ответить
            • Не буду я ничего делить на неведомую хуйню. Вдруг там ноль.
              Ответить
              • тогда так: берешь длину спринта (например, две недели) и умножаешь на форус фактор.

                сколько веремени получается -- на столько задач и берешь

                короче

                у тебя есть таска
                ты оценил ее в два дня

                но на самом деле ты пол дня будешь сидеть на тупых митингах, или мерджить конфликты в vcs, так что у тебя не два дня рабочего времени, а полтора

                вот про это и покус пактор
                Ответить
                • А я думал остальное время на всякие срочные задачи и тушения пожаров.
                  Ответить
                  • тушение тоже сюда входит, а еще отвлечение на общение с другими итд
                    Ответить
    • > factor of five

      Будут на Си переписывать через нейросеть фейсбука?
      Или напишут KPython (аналог KPHP)?
      Ответить
      • > Таким образом, компилятор Just In Time преобразует операционный код в машинный код для конкретной архитектуры, используя DynASM.

        > KPHP (kPHP, KittenPHP) — это свободный (GPL/LGPL) транслятор PHP-кода в С++ от компании ВКонтакте.

        Видимо, да.
        Ответить
      • А вот в PHP такая плюшка есть. Что можно из строки сформировать имя поля\переменной и обращаться по ней.

        class A
        {
           public $foo;
           public $bar;
        };
        
        $a = new A();
        $field = "foo"
        echo $a->$field;


        И будет выведено значение $a->foo.

        Интересно, как это в C++ код отображалось?
        Ответить
        • Никак.

          "KPHP не компилирует то, что принципиально не компилируемо".
          Ответить
          • Ну я бы индекс строил, если бы натыкался на такое.
            То есть хранил бы четверки (имя, смещение, тип, вид - переменная\поле класса)
            И уже основываясь на нём подстановку делал.
            Ответить
            • Да. Первый принцип какой-то менеджерской ненужной науки: «Если задача не противоречит законам физики, то она имеет решение».
              Ответить
          • > KPHP не компилирует то, что принципиально не компилируемо
            А жаль, фича хорошая.

            Можно объект из словаря сформировать.
            Ответить
          • Обязательно компилировать class A в сишную структуру (тем более, что поля foo и bar хранят объекты с динамической тупизацией)? Его же можно скомпилировать в карту map<string, pitushnya>, ключами которой будут "foo" и "bar". Тогда и этот реальный пример скомпилируется.
            Ответить
            • Тогда это немногим будет отличаться от самого интерпретатора, кстати.
              Ответить
              • Ну основные поля, которые прямо в конструкторе заполнены, можно в сишную структуру записать. А остальной хлам свалить в мапу. Тогда и пирфоманс для основных полей будет и динамические фишки. v8 вроде так и оптимизирует js'ные классы.
                Ответить
                • Что делать, если поле int, а в него через рефлексию по имени пытаются засунуть string.
                  Ответить
                  • сделать рядом мапу и всегда работаь через нее?
                    Ответить
                    • > всегда

                      Ну мы же хотели типизированные поля, чтобы избежать оверхеда от мапы и вариантных типов...

                      JIT'у легче в этом плане. Он всегда может деоптимизацию сделать.
                      Ответить
                    • З.Ы. Хотя можно и runtime error при таком обращении кинуть, наверное. Типа там int и ниибёт. Но это уже получается свой язык, а не PHP.
                      Ответить
                      • > runtime error при таком обращении кинуть
                        Фу, это не путь похапэ. Чтобы был настоящий путь похапэ, надо эту runtime error в обязательном порядке высрать пользователю в браузер. А если программист не хочет пользователю показывать runtime error — пусть ставит собачку!
                        Ответить
                        • Путь пхп - молча сконвертить эту хуйню в инт. А если не сконвертилось - положить туда ноль.
                          Ответить
    • Но даже без всего этого php сейчас работает достаточно быстро, подбираясь к java и C++.

      Какая аналитика )))
      Ответить
      • у пыхоебов какой-то комплекс про жабу, видимо. Я постоянно слышу: мы как жаба, мы не хуже жабы, мы уже догнали жабу

        и при этом: ой, ну мы же не будем как в жабе?


        короче, я три дня скакал за вами, чтобы сказать, как вы мне безразличны
        Ответить
        • они там смешно придумывали синтаксис для аннотаций, прекрасно понимая что вообще-то надо использовать собачку, но собачка у них святое
          Ответить
          • Кстати, а чем дело-то закончилось? Помнится, там предлагаемые вореанты были один упоротее другого, и «@@annotation» было даже не очень ебануто (повторять повторять символы пхпшникам не привыкать: любой нормальный человек, написавший больше десяти строк на нормально типизированном языке, не может не хохотать, глядя на «===»).
            Ответить
    • «Я надеюсь, что эта статья была полезна для вас, и вам удалось лучше разобраться, что такое JIT в PHP 8. Не стесняйтесь связываться со мной в твиттере, если вы хотите добавить что-то, что я мог забыть здесь, и не забудьте поделиться этим со своими коллегами-разработчиками, это, несомненно, добавит немного пользы вашим беседам!-- @nawarian»

      Какое удобное средство связи )))

      Надеюсь, общение проходит как постинг видеообращений друг к другу?
      Ответить
      • Вот ты смеёшься, а мне реально попадались видео где блоггеры друг другу что-то отвечали.
        Ответить
        • Что-то типа такого?

          https://youtu.be/wevYgCyUSa8

          Кстати, это тот ещё багор. Вместо производства какого-либо контента многие делают реакции на реакции на что-то там модное, не люблю такое. Я вообще не понимаю смысла видеообращений в том виде, в котором они обычно существуют.

          Одно дело, когда студиоз записывает видео, где он сидит на восьмиметровой берёзе и ловит связь у себя в селе для дистанционки, а совсем другое – когда Василий Питухин 30 минут рассказывает, что Аркадий Питулин лох и дурак. Нет ни удобства текста, ни удобства подскаста.
          Ответить
          • > Аркадий Питулин лох и дурак.

            10 reasoms WHAI

            И еще скриншот с обведенным красным кружочком ёбаным ничем.
            Ответить
        • скоро все так и будет


          Здравствуйте, я написал научный пейпер. Вот вам он в виде видео на 78 минут.


          Здравтвйте. Я записал видеорецензию на ваш научный пейпер.

          С результатами наших исследований можно ознакомиться на ютьюбе
          Ответить
    • я где-то видел бенчмарк, где результаты отличались на пару процентов. какое ускорение )))

      зная как пишется пхп - джит там наверняка соответствующий
      Ответить
    • > Имея на руках токены, интерпретатор PHP проанализирует эту коллекцию токенов и постарается найти в них смысл.

      а вы еще жалуетесь, что это у вас бессмысленная работа.
      Ответить
      • Какой-то из крестоконпеляторов, помнится, выдавал ошибку "code makes no sense".
        Ответить
    • > Вы делаете что-то не завязанное на ввод/вывод, например, обработку изображений или машинное обучение.

      обработка изображений* и машинное обучение на PHP

      *если быть до конца честным, однажды мне приходилось нарезать equirectangular projection в cubemap, но это был замечательный экспириенс, чтобы больше никогда так не делать
      Ответить
      • > обработку изображений или машинное обучение

        Я могу тупить, но разве реальную работу там не какие-нибудь сишные либы делают? А пхп/питон просто оркестрируют этот процесс, стараясь как можно меньше трогать сами данные.
        Ответить
        • Там все равно дохера программировать на клиентском языке, по крайней мере с изображениями. Если в imagemagick нет нужного фильтра - а если вам зачем-то нужно месить изображения, в не просто ресайзить, то скорее всего у вас там какая-то кастомная хуйня - придется обходить каждый пиксель. Ну и это довод в пользу джита, типа он ускорит это дело, явно подразумевая реализацию в PHP-спейсе.
          Ответить
            • Или шейдер, хотя на серваках не всегда хорошее гпу есть, конечно.
              Ответить
            • пхпшник? на сях? там же ведь даже ошибку не заглушить.
              Ответить
              • > там же ведь даже ошибку не заглушить

                Да можно при желании... Поймать сигнал/seh, скипнуть инструкцию и продолжить исполнение.

                У меня, к примеру, есть функция, которая читает память забивая на ошибки. Но там не сигнал, там прямо прерывания в IDT захучены.
                Ответить
                • Я за «VEH». Даже как-то забавы ради делал такую хуйню с пропуском инструкции, но, ожидаемо, после этого ломалось вообще всё.
                  Ответить
                  • > ломалось вообще всё

                    Ну можно крестовый экцепшен заинжектить. Хотя в noexcept функциях может и не сработать...
                    Ответить

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

Переведи на "PHP", guest!

    А не использовать ли нам bbcode?


    8