2012-03-14 48 views
1

我寫了一個腳本來使用active_record而不使用rails。我的測試是在Windows 7上啓用的(趨勢科技防病毒保護啓用 - 無法禁用它,因爲筆記本屬於我的公司),Lenovo T520。我寫了一個tk腳本,大約一秒鐘開始。我添加了'sqlite3'寶石,它在2秒內開始。需要active_record的ruby減慢腳本啓動到30秒

需要'active_record'寶石啓動時間達30秒!

我可以對此做些什麼(請不要建議更改os)?紅寶石只是爲了與rails一起使用,以便它可以在性能不錯的unix盒子上運行?

版本: 紅寶石1.9.3p125(2012-02-16)[I386-的mingw32] 的ActiveRecord(3.2.2)

編輯:有趣的事情發生了。啓動腳本幾次後「需要'active_record'」在0.53秒內完成。也許它是os-caching或病毒防護忽略文件,因爲它認爲它們是安全的。重新啓動後,第一次運行時間增加到3.5秒,第二次運行時再次降低到已知的0.53秒。

+0

您是否試過[DataMapper](http://datamapper.org/)而不是ActiveRecord? Ruby對於通用腳本來說很好,但ActiveRecord並不是輕量級或者快速啓動的。 – 2012-03-14 18:31:33

+1

好吧,只需要dm-core就可以把它縮短到12秒。這幾乎可以接受。但不知何故,我仍然很煩。我認爲使用像Ruby這樣的腳本語言在Windows上編寫一個以數據爲中心的應用程序將是完全有可能的。但我已經在第零步掙扎了。我明白,我必須爲orm框架付費。但僅僅12秒就可以啓動它,而不用做任何事情,這是一個痛苦的屁股(至少在開發過程中)。 – user331471 2012-03-14 21:05:37

回答

0

我有一個不知何故可以接受的解決方案。這取決於需要的模塊的順序上:

啓動30秒: 需要 'TK' 需要 'active_record'

啓動2秒: 需要 'active_record' 需要 'TK'

恕我直言,這件事情是回答(但我不是很滿意)。