2011-12-23 19 views
8

Basit bir sorun, eski bir Rails 2.3 uygulamasına sahibim ve herşeyi yapmak çok uzun sürüyor. rake 25 saniyeden fazla sürüyor, ancak gerçekten bir şey oluyor gibi görünmüyor.Rails uygulamasının yüklenmesini nasıl önleyebilirim?

Uygulamanın yüklendiği andan itibaren hangi tür yöntemlerin en uzun süreyi aldığını görmek için bir tür profiler dökümü elde etmenin basit bir yolu var mı?

Rails 2.3 ve 3.1 için bir çözüm daha da yardımcı olacaktır.

+0

Hangi Ruby'yi kullanıyorsunuz? – rkb

+0

@rkb Şu anda REE var, ancak tüm mücevherler 1.9 uyumlu olduğundan, profilleme için başka bir sürümü kullanabilirim. –

cevap

1

Uygulamanızı, örneğin, ruby-prof veya perftools.rb. Hala başlıyor olsa da, uygulama başladığında en kısa sürede bir /kill_me rotasını denemek için bir HTTP sorgusu başlat. /kill_me, uygulamanızın exit numaralı telefonu arayarak incelikle ölmesine neden olabilir. Sonuç olarak, başlangıç ​​için bir profiliniz var.

9

böyle bir şey raylar ortamı gerektiren bir tırmık görevi Profili:

desc "Load it" 
task :loadit => :environment do 

end 

sonra bu raylar 2.3 ile çalışmak gerektiğini sadece test ettik

ruby -Ilib -S ruby-prof -p graph_html `which rake` loadit > profile.html 

yakut-prof profile 3.x üzerinde ama neden çalışmaz diye bir sebep göremiyorum.

+2

'rake ortamı' sadece bunu yapan bir görevdir - Rails ortamını yükler. – rkb

+0

Ah evet, sanırım sadece komisyon ortamını çalıştırabilirsin, ama belki de FooModel.all ya da bir şey gibi komisyon görevinde bazı yöntemleri denemek istersiniz. – sunkencity

İlgili konular