Недавно была опубликована статья под заголовком "Глобально оптимальный, восьмой и наиболее быстрый вид интерпретаторов байткода". Несколько тезисов из статьи вызвали у меня сомнения в их справедливости. Об этом я попробовал написать ряд комментариев тире вопросов к указанной статье. Но основной лейтмотив всех ответов сводился к тому - "а ты напиши свою статью". Подход не столько инженерно-научный, сколько детсадовский. Мне бы хватило и содержательных ответов в формате комментариев, но как говорится - уговорили.
Рубрика «виртуальная машина»
Ответ на статью о «Наиболее быстром интерпретаторе»
2024-11-09 в 20:41, admin, рубрики: jit-компиляция, x86, виртуальная машина, интерпретаторы, оптимизация, процессорPython: как переменные работают на самом деле? Погружаемся в байткод и C
2024-09-23 в 9:57, admin, рубрики: C, python, байткод, виртуальная машина, переменныеПривет! Меня зовут Никита Соболев, я core-разработчик языка программирования CPython, а так же автор серии видео про его устройство.
Сегодня я хочу рассказать, как на самом деле работают переменные в CPython.
Под катом куча кишков питона и видео на 46 минут с дополнительными кишками питона (ни один настоящий питон не пострадал при написании данной статьи).
Начнем с видео, а далее в текстовом формате опишем основные моменты.
Какой план?
Давайте посмотрим на высоком уровне, что происходит в CPython, когда он работает с именами:
Админы, без вас мы только Users
2023-07-28 в 10:18, admin, рубрики: serverspace, vps, Блог компании Serverspace, виртуальная машина, облачные технологии, сервер, Серверное администрирование, системное администрирование, системный администраторДорогие читатели Habr!
Сегодня мы с радостью отмечаем День администратора, посвященный тем, благодаря кому наши сети функционируют безупречно, а серверы работают словно синхронизированные оркестровые инструменты.
Манипуляции с байт-кодом Java
2023-04-08 в 8:01, admin, рубрики: asm, c++, class, classloader, Foo, java, javascript, jit, push, spring, timeweb_статьи_перевод, XML, Блог компании Timeweb Cloud, виртуальная машина, консольВ этой статье мы разберём, как добавить к файлу класса публичный атрибут. Когда загрузчик классов завершит загрузку модифицированного файла класса, мы увидим то поле, которое добавили вручную.
Читать полностью »
Что нам несет Python 3.12
2023-02-20 в 6:22, admin, рубрики: distutils, django, flask, moscowpython, python, python3.12, виртуальная машина, Программирование, Разработка веб-сайтовПереписали виртуальную машину
Раньше виртуальная машина была написана в одном файле ceval.c почти на 8 000 строк. Это делало работу с опкодами довольно сложной, особенно если нужно было провести эксперименты.
В Python 3.12 ее переписали на новый DSL. И теперь ее гораздо проще менять, оптимизировать и проводить эксперименты.
В качестве примера, можно посмотреть на попытку добавления register-based интерпретатора. Другой пример, что часто два опкода идут вместе и выполняются последовательно большую часть времени. Например, LOAD_CONST
Читать полностью »
Бесполезный и красиво ужасный язык программирования ALLang
2022-12-02 в 6:13, admin, рубрики: виртуальная машина, Компиляторы, Программирование, Си, трансляторы, эзотерический, язык ассемблера, язык программированияВведение
Примерно год назад я писал язык программирования под названием ALLang. Расшифровка его звучит так: Another LISP Language, что незамысловато даёт понимание его второсортности. Тем не менее, таковой язык всё же предлагает интересные особенности в своей реализации со стороны эзотерических языков. Писал я ALLang исключительно по фану. Но начнём мы пожалуй по порядку с его высокоуровневых особенностей и будем постепенно углубляться вниз, в самую его крамешную бездну эзотерического внутреннего выполнения.
Внешние особенности
Как мы проверяли производительность новых процессоров в облаке для 1С по тесту Гилёва
2020-05-21 в 7:14, admin, рубрики: 1С, intel, xeon, архитектура, Блог компании КРОК Облачные сервисы, виртуализация, виртуальная машина, облачные сервисы, процессор, тест, частота
Америку не откроем, если скажем, что виртуальные машины на новых процессорах всегда производительнее оборудования на процессорах старого поколения. Интереснее другое: при анализе возможностей систем, казалось бы, очень близких по своим техническим характеристикам, результат может быть совершенно различным. Мы в этом убедились, когда протестировали процессоры Intel в нашем облаке, чтобы проверить, какие из них дают наибольшую отдачу при работе систем на 1С.
Спойлер: как показал наш тест, всё зависит от поставленной задачи. Нам удалось из всей линейки новых процессоров Intel выбрать тот продукт, который дал кратный прирост производительности благодаря тому, что в Intel Xeon Gold 6244 меньшее количество ядер, на каждое ядро приходится большее количество L3 кэш-памяти и назначена большая тактовая частота — как базовая, так и в режиме Turbo Boost. Иными словами, именно эти процессоры лучше справляются с ресурсоёмкими задачами в пересчёте на единицу производительности/рубль. Для 1С это подходит как нельзя лучше: с новыми процессорами приложения на 1С в нашем облаке начали буквально «дышать».
А теперь расскажем, как мы проводили тестирование. Ниже — результаты синтетических тестов Гилёва. На них можно ориентироваться, но в любом случае нужно проверять реальную утилизацию самостоятельно на своих задачах. Читать полностью »
Zork и Z-Machine: как разработчики перенесли игру с мейнфреймов на 8-битные домашние компьютеры
2019-12-12 в 4:34, admin, рубрики: apple II, interactive fiction, TRS-80, Zork, виртуальная машина, Игры и игровые приставки, мейнфреймы, ненормальное программирование, обработка естественных языков, разработка игр, старое железо
Компьютерные игры существуют почти столько же, сколько и сами компьютеры. Хотя в это трудно поверить, текстовая адвенчура Zork была Fortnite-ом своего времени. Но Zork был ещё и чем-то большим. Ради портируемости и экономии пространства сам Zork был написан на Zork Implementation Language (ZIL), в котором активно использовалась совершенно новая на тот момент концепция объектно-ориентированного программирования, и выполнялся в виртуальной машине. И всё это происходило в 1979 году. Разработчики использовали всевозможные хитрости, чтобы уместить как можно бОльшую часть Подземной империи в компьютеры, имевшие всего 32 КБ ОЗУ. Однако Zork стал не только технологическим прорывом, но и большой вехой в истории компьютерных игр. При этом возник он не на пустом месте.
Читать полностью »