2012-04-27 90 views
0

我試過尋找類似的問題,但找不到一個。Boo Interpreter Speed - Web應用程序

我有一個面向業務的ASPNET1.1 web應用程序。在應用程序中有很多硬編碼的規則。

我想開始使用Boo作爲腳本語言,開發人員可以使用它來在那裏編寫一些邏輯(不是最終用戶)。

只要BL中的更改完成,我就更新「腳本文件」,部署到服務器,就是這樣。無需編譯。這個很重要。

所以我有兩個問題:

  1. 看來只有CSScript和噓聲支持NET1.1,我不喜歡CSScript,因爲它需要一個exe或爲每個腳本編譯DLL。 Boo是正確的選擇嗎?我想使用JINT(NET2.0 +)或LUA(無法找到導入到C#的方法)。
  2. 執行Boo的速度有多快?我不想編譯它(我知道這很快,因爲它將是一種靜態語言)。我只想使用Boo解釋器Eval函數。

順便說一句,我想要執行的業務邏輯很簡單。它應該只是這樣的:

function(a, b) 
{ 
return a["Type"] == b["Type"]; 
} 

其中a和b只是哈希表或DataRow。所以我其實並不需要系統導入和所有這些。

在此先感謝

+0

任何人都可以幫助我嗎? – 2012-05-08 20:08:09

回答

0

我放棄噓聲,因爲即使我想只使用Eval方法,噓自動編譯該組件產生到AppDomain中的表達和負載。

由於我運行在ASPNET1.1和一個大型Web應用程序(成千上萬的用戶)中,效率和速度都不高。

即使我創建一個內部AppDomain並在其中運行腳本以便恢復內存。

如果我在同一個AppDomain中運行,內存將被吃掉並被吃掉,因爲這些新的程序集將被加載並且從不卸載。

所以我想從裏卡多在一些論壇上的迴應,這絕不是Boo語言被設計爲CLR語言的意圖,但它擊敗了Boo周圍的整個「腳本」光環。

這是噓:(

我只是測試LuaInterface 1.3.0(支持NET1.1最後一個),它具有佔地面積零一大噓聲,沒有組件的創建和只是普通的更好的一般(更像JavaScript,沒有足跡等)。

我只希望1.3.0版本足夠穩定。在不久的將來我沒有辦法將我的應用程序升級到NET2.0.

重要更新: LuaInterface和luanet有很多內存泄漏!!!!而我直接與lua52聯繫在一起。dll通過使用DllImport和使用作爲基礎的以下文件:https://simpleot.googlecode.com/svn-history/r32/SimpleOT/trunk/SimpleOT/Scripting/Lua.cs

我用lua52因爲它支持VC++ 2003。