Vladimir Makarov
Vladimir Makarov is a software developer. His major interests lay in algorithms, programming languages, compilers and JITs. Vladimir finished Moscow Institute of Physics and Technology and got his PhD in computer science in Russian Academy of Sciences.
Last 20 years he has been working on GCC at RedHat. Vladimir started his work on Ruby MRI in 2015. His MRI projects are new hash tables and ongoing implementation of new VM instructions and MJIT.
Vladimir lives in Toronto, Canada.
Vladimir Makarov's contributions
Article
An MIR-based JIT prototype for Ruby
Vladimir Makarov
Get insights for improving JIT (just-in-time) compiler performance for Ruby based on a GCC engineer's experience developing an MIR-based JIT prototype.
Article
How I developed a faster Ruby interpreter
Vladimir Makarov
Learn about 8 optimization techniques for a faster interpreter in Ruby which I developed using a dynamically specialized internal representation (IR).
Article
Code specialization for the MIR lightweight JIT compiler
Vladimir Makarov
Learn about a code specialization technique that creates a universal, lightweight JIT (Just-in-Time) compiler to generate machine code for the MIR project.
Article
The MIR C interpreter and Just-in-Time (JIT) compiler
Vladimir Makarov
Find out how the MIR project's C JIT compiler and interpreter compares to other C compilers for generated code and compilation speed.
Article
MIR: A lightweight JIT compiler project
Vladimir Makarov
Take an in-depth look at the MIR lightweight JIT compiler project's goals and state of development, such as the addition of support for CRuby.
Article
Register Transfer Language for CRuby
Vladimir Makarov
This post shows the advantages and disadvantages of using register transfer language (RTL) for CRuby, and it compares the performance of RTL CRuby with that of trunk CRuby.
Article
Towards The Ruby 3x3 Performance Goal
Vladimir Makarov
This blog post is about my work to improve CRuby performance by introducing new virtual machine instructions and a JIT. It is loosely based on my presentation at RubyKaigi 2017 in Hiroshima, Japan. Version 3 of Ruby should be 3 times faster than version 2.
Article
Towards Faster Ruby Hash Tables
Vladimir Makarov
Hash tables are an important part of dynamic programming languages. They are widely used because of their flexibility, and their performance is important for the overall performance of numerous programs. Ruby is not an exception. In brief, Ruby hash tables provide the following API: insert an element with given key if it is not yet on the table or update the element value if it is on the table delete an element with given key from the table get the...
![Featured image for: Mostly harmless: An account of pseudo-normal floating point numbers.](/sites/default/files/styles/list_item_thumb/public/blog/2021/05/ST-c_1x.png?itok=n2zbW-Pe)
An MIR-based JIT prototype for Ruby
Get insights for improving JIT (just-in-time) compiler performance for Ruby based on a GCC engineer's experience developing an MIR-based JIT prototype.
![Featured image for: Mostly harmless: An account of pseudo-normal floating point numbers.](/sites/default/files/styles/list_item_thumb/public/blog/2021/05/ST-c_1x.png?itok=n2zbW-Pe)
How I developed a faster Ruby interpreter
Learn about 8 optimization techniques for a faster interpreter in Ruby which I developed using a dynamically specialized internal representation (IR).
![Featured image for C language articles.](/sites/default/files/styles/list_item_thumb/public/ST-c_2x%20%281%29.png?itok=nQdtnRa1)
Code specialization for the MIR lightweight JIT compiler
Learn about a code specialization technique that creates a universal, lightweight JIT (Just-in-Time) compiler to generate machine code for the MIR project.
![Processor spelling?](/sites/default/files/styles/list_item_thumb/public/blog/2020/11/commet-lake-speed.png?itok=jwQy_vuG)
The MIR C interpreter and Just-in-Time (JIT) compiler
Find out how the MIR project's C JIT compiler and interpreter compares to other C compilers for generated code and compilation speed.
![mirall ossible future development directions for the MIR project.](/sites/default/files/styles/list_item_thumb/public/blog/2019/12/mirall.png?itok=Mhy1u-sG)
MIR: A lightweight JIT compiler project
Take an in-depth look at the MIR lightweight JIT compiler project's goals and state of development, such as the addition of support for CRuby.
![Ruby logo](/sites/default/files/styles/list_item_thumb/public/blog/2014/09/ruby-logo.png?itok=YpryMwUc)
Register Transfer Language for CRuby
This post shows the advantages and disadvantages of using register transfer language (RTL) for CRuby, and it compares the performance of RTL CRuby with that of trunk CRuby.
![Ruby logo](/sites/default/files/styles/list_item_thumb/public/blog/2014/09/ruby-logo.png?itok=YpryMwUc)
Towards The Ruby 3x3 Performance Goal
This blog post is about my work to improve CRuby performance by introducing new virtual machine instructions and a JIT. It is loosely based on my presentation at RubyKaigi 2017 in Hiroshima, Japan. Version 3 of Ruby should be 3 times faster than version 2.
![Ruby logo](/sites/default/files/styles/list_item_thumb/public/blog/2014/09/ruby-logo.png?itok=YpryMwUc)
Towards Faster Ruby Hash Tables