Конечно, как автор перевода я попробовал все примеры, и даже попытался улучшить их самым очевидным способом: сделал отдельные опкоды для последовательностей плюсов, минусов, сдвигов и последовательности [+] и [-] (они часто используются и обозначают обнуление текущей ячейки) и получил следующие результаты:
Без Jit модифицированный вариант работает в 2-3 раза быстрее.
С Jit такой-же результат достигается примерно на половине тестов. А на Мандельброте он оказался даже медленнее. Видимо усложнение интерпретатора плохо сказывается на предсказаниях Jit-а и ему требуются дополнительные подсказки.
Отличный перевод отличной статьи! В свое время оригинал читал, очень идея понравилась, и то, как все просто сделано — пишем сначала примитивный лексер и парсер для языка (точно так же, как бы мы его и без pypy писали), все работает медленно, потом говорим pypy — «сделай jit» — и pypy после небольших подсказок магически генерирует из нашего парсера jit-компилятор.
Руководство: пишем интерпретатор с JIT на PyPy