Инструмент gem Руби следует алгоритму обнаружения пути, который, по-видимому, не подходит для Windows (как я вижу из вашего ruby -v
).
Вы можете получить четкое изображение, если проследите, например, загрузку приложения Rails с ProcMon . Каждый (я действительно имею в виду каждый ) require
запускает сканирование всех каталогов в пути Ruby, а также всех каталогов gem. Типичный require
занимает 20 мс на средней машине. Поскольку Rails составляет сотни require
с, эти 20 мс легко суммируются до нескольких секунд при каждом запуске среды Rails. Потратьте время на инициализацию приборов в базе данных, и вы получите лучшее представление о том, почему для запуска тест-кейсов требуется столько времени.
Возможно, из-за каждой архитектуры и реализации файловой системы (кеширование путей и т. Д.), Это меньше проблем в Linux, чем в Windows. Я не знаю, кого ты должен винить, хотя. Похоже, что файловая система NTFS может быть улучшена за счет лучшей реализации кэширования пути, но очевидно, что инструмент gem может реализовывать само кэширование и иметь его производительность, не столь зависимую от платформы.