Ruby on Rails и многоядерные процессоры

#ruby-on-rails #ruby

#ruby-on-rails #ruby

Вопрос:

Я проводил некоторый тест на своем Pentium D (старом двухъядерном процессоре). Насколько я понял, Ruby был однопоточным, поэтому мне трудно понять, почему оба ядра используются по максимуму (100%) при создании новых проектов Rails и т.д. Кроме того, тесты проводились на Ruby 1.8.7 i386, который известен как медленная реализация среды выполнения, а Ruby в любом случае известен тем, что не является сильно многопоточным.

Есть идеи, что здесь происходит? Выиграет ли Rails от четырехъядерного процессора?

введите описание изображения здесь

Ответ №1:

Это связано с операционной системой.

При запуске однопоточного приложения на многоядерном процессоре могут пострадать оба ядра, поскольку:

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