2012-07-02 55 views
2

我是一個開發嵌入式應用程序的團隊的一員,該團隊使用16MB內存的ARM9設備以及它自己的操作系統。我們目前正在開發C語言,但都是將語言切換到其他語言。針對16mb ram的V8 javascript ARM設備

目前C++和Haskell是很好的候選人,但我在考慮Coffee-script。問題是,如果Chrome的v8引擎會使用很多內存,這是一個可行的選擇?如果是這樣,還有沒有其他可能適合該法案?

忘了提及,我需要與安裝在系統上的C庫進行簡單的互操作。由於我們今天的大多數代碼都是C,並且會有很長的重寫期,使用C函數不應該是一件麻煩事(不得不創建綁定等)。

不幸的是,我們還通過舊的編譯器(GCC 3.4.3)的約束。

回答

1

與自動內存管理的任何語言將永遠有內存開銷以及任何動態類型語言總是會增加一些開銷。因此,如果你只限於16MB並想擠出很多它,那就使用靜態類型和顯式內存管理,這意味着C++。

現代C++(好吧,不C++ 11的功能在GCC 3.4.3,但標準庫已經在那裏和提升應該編譯)仍然會做大部分的內存管理你同時仍保持低開銷。與C幾乎向後兼容使與現有庫的互操作變得微不足道。

如果你不需要擠出那麼多,許多語言都可以。 Mono似乎相當有前途,因爲它是最小的受管運行時間之一,速度快,可移植並且有多種語言(C#,F#,Boo等)。但我想即使是JavaScript也應該這樣做;它的解釋器非常小,如果你在內存中不需要那麼多對象,它們甚至可以適應分開分配所有東西的所有開銷。

+0

用更多信息更新了問題...我非常懷疑我們的應用程序使用了很多內存。我們的應用程序是設備上唯一的應用程序(不包括操作系統),並且它在內存上應該相對容易。 –

+1

@RobinHeggelund漢森:如果16MiB仍然很多,JavaScript可能會運行良好。解釋器是相當小的,所以它只是更大的內存開銷,因爲需要分配所有的東西,包括整數和布爾值等簡單的東西。 –