2009-06-18 61 views
12

Şimdi bir süredir IronPython kullanıyorum, ancak gelişmemi gerçekten engelleyen bir şey, 'un yavaş yavaş başlatılmasıdır. Dili ve çalışma şeklini seviyorum, ancak kodumu çalıştırmaya başlamadan önce 20 saniye kadar beklemek zorunda kaldığım için sinir bozucu.IronPython başlangıç ​​zamanı neden bu kadar yavaş?

Biraz kazma yaptım ve sorunun import ing ile değil, bu aşamadan önce olduğu anlaşılıyor.

Teşekkürler.

+3

Yup, kesinlikle yavaştır. DLR'nin tamamen .NET 4.0'a tamamen entegre olup olmadığını görmek ilginç olacaktır. –

+0

Umarım. Bu utanç verici, çünkü çok güzel bir parça. .NET 4, muhteşem görünüyor. Ne yazık ki 20GB'lık sabit diskim VS2010'u taşımak için çok stresliydi :) –

cevap

17

Bu sorunu gidermek için çalışıyoruz 2.6. Bugün download Beta 1 yapabilirsiniz ve muhtemelen çok daha iyi bir başlangıç ​​zamanı göreceksiniz.

Sorun, çoğu zaman genellikle JITing kodu harcanmasıdır. Özellikle 64-bit bir makinede iseniz, 64-bit daha yavaş olduğu için telaffuz edilir. 2.6'da, şimdi ilk kez çalıştırılana kadar bir şeyler derlemeyi geciktiriyoruz, sadece bir veya iki kez ihtiyaç duyuyorlarsa onları yorumluyoruz ve çalışma zamanında oluşturduğumuz bir kod kodunu IronPython.dll'e taşıdık. Ngen'den çok faydalar. Uygulama ne kadar büyük olursa, muhtemelen tüm bu değişikliklerden göreceğiniz daha büyük bir iyileştirme.

IronPython'u yüklerken ngen seçeneğini işaretlemediyseniz, "ngen install ipy.exe" dosyasını kullanarak komut satırından geri dönüp ngenini kaldırabilirsiniz. Ngen.exe C: \ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ ngen.exe veya C: \ Windows \ Microsoft.NET \ Framework64 \ v2.0.50727 \ ngen.exe içinde ise 64- bit makinesi. Ama bir yönetici komut istemi olması gerekiyor. Bu size bugün istikrarlı sürümde bazı faydalar sağlayacaktır. Eğer 64-bit kullanıyorsanız, kutuyu işaretlemiş olsanız bile bunu yapmanız gerekir - ngen'in 64-bit'te düzgün çalışmasını engelleyen bir hata var.

+0

Bu gece daha sonra 2.6'ya bir göz atacağım. Geçmişte ngen ile bazı kötü deneyimlerim oldu (ahem .. TOAD) bu yüzden yükleme sırasında bunu unutmadım - Ben de onu çalıştırırım! Teşekkürler. –

+0

Bunun üzerinde çalıştığını duyduğuma sevindim. IronPython'u yoğun bir şekilde kullanıyorum ve bu benim 1. sorunum. – riwalk

İlgili konular