Bundler البطيء للغاية 1.0.3 (bundler.require) مع حوالي 100 جواهر في القضبان 3.0.1 وروبي 1.9.2
-
26-09-2019 - |
سؤال
أنا أستخدم Rails 3.0.1 و Bundler 1.0.3 و Ruby 1.9.2p0 (2010-08-18 Revision 29036). كان كل شيء على ما يرام وسريع حتى بدأت في إضافة Prepise & Omniauth. من ذلك على كل ما ينطوي على تهيئة Bundler (Calling Bundler.require كما هو الحال في application.rb) استغرق الأعمار (عن طريق 30-50 ثانية وهو كثير على سبيل المثال استدعاء "طرق أشعل النار").
يتم فقد الوقت في "config/application.rb":
Bundler.require(:default, Rails.env) if defined?(Bundler)
حاولت تعطيل / تمكين الأحجار الكريمة (مثل تلك التي أضفتها أخيرًا أو جميع الأحجار الكريمة المتعلقة بالاختبار) ولكن يبدو كما لو أنها مشكلة تتضمن حاجزًا من إجمالي الأحجار الكريمة بدلاً من أي مشاكل ترميز محددة في بعض الأحجار الكريمة.
للاختبار النهائي ، قمت بإنشاء مشروع Fresh Rails 3.0.1 مع جوهرة RVM جديدة وأضفت GEMS واحدة تلو الأخرى. لا يزال هو نفسه في حوالي 30-50 الأحجار الكريمة (وهو أمر غير عادي بالنسبة للمشاريع الكبيرة ولم يكن من قبل مشكلة).
أي أفكار (إلى جانب: تقليل عدد الأحجار الكريمة)؟
المحلول 2
أفضل ما توصلت إليه هو استخدام Spork. إنه يعمل بشكل رائع ويعوض بدء التشغيل البطيء. يبدأ Spork خادم DRB الذي يمكن لـ RSPEC / Cucumber توصيل واستخدام عمليات Ruby المسبقة لتشغيل الاختبارات. تقوم بإعادة تحميل بعض الملفات (الاختبارات ، والفئات ، ...) لكل تشغيل ، بحيث تكون جديدة تقريبًا مثل عملية جديدة.
نصائح أخرى
نفس المشكلة. إضافة GEMS مناسبة لزيادة وقت البيئة bootup من bundler. لم أحدد هذه المشكلة بعد. إنه حوالي 20 ثانية من النفقات العامة قبل تشغيل المواصفات. يجعلني مجنون ؛ .. (