Я не очень много работал с исходным кодом интерпретатора YARV, поэтому следующие комментарии относятся только к интерпретатору 1.8.6 MIR.
При попытке написать расширение C для Ruby в Visual Studio, я с ужасом обнаружил, что загружаемые двоичные файлы Windows Ruby 1.8.6 скомпилированы с использованием Visual C++ 6.0, который был выпущен вскоре после окончания вторая мировая война. С тех пор компиляторы (и процессоры, на которые они нацелены) значительно продвинулись. В то время как сборка Linux получает новейшую gcc-доброту, Windows build хромает вместе с технологией компилятора прошлого века. Это одна из причин. (Отказ от ответственности: предположительно 1.9 должен быть построен с помощью mingw, из которых я не являюсь поклонником, но который также должен быть лучше, чем VC6)
Не зная, какие операционные системы, в частности, вы обнаружите медленнее в Windows, сложно комментировать дальше, но я хотел бы отметить, что я обнаружил, что реализация ввода-вывода на Ruby значительно менее эффективна как с сетевым, так и с локальным файловым вводом-выводом. Я никогда не углублялся в реализацию примитивов ввода-вывода, чтобы понять, почему, но я предполагаю, что реализации предполагают, что быстрые построения IO в Linux - это быстрые конструкции ввода-вывода в Windows, что почти всегда не так.
Я думал Руби код был интерпретирован. ? – leppie
Это только интерпретатор, который еще должен быть скомпилирован. Наиболее распространенная реализация написана на C. – nitecoder
В текущей стабильной сборке (1.9.1) используется новая виртуальная машина, называемая YARV, которая является движком JIT. – wvdschel