2009-01-26 59 views
16

在我們的嵌入式設備上,我們目前使用PHP作爲其網頁界面,不幸的是它很慢。我們一直在用Python進行試驗,但似乎(至少在無FPU的ARM架構上)與PHP一樣慢。是否有像C++這樣的編譯語言的Web框架?

因此,我們正在考慮使用C++等編譯語言來實現Web界面,但到目前爲止,我們發現的唯一的東西是Wt,它看起來更像桌面而不是Web框架,對於初學者來說它的文檔相當複雜。

所以我的問題是:你知道任何良好的C/C + +的Web框架?什麼會讓我完全開心會像C++ Django一樣,但是我懷疑存在這樣的事情:-)

+2

你在C++中做了很多字符串處理嗎?由於網絡編程是如此多的字符串處理,這將是一個真正的痛苦。這就是爲什麼PERL和PHP以及其他都是創建的,因爲他們非常擅長Web編程需要的類型,而C++則不是。 – Adam 2009-01-26 16:19:25

+5

我用C++完成了很多文本處理。只要使用好的庫(Boost string algo,regex,...),一切都會好的。 – 2009-01-26 22:24:24

+0

嘿,我一直在這個非常棘手的問題上工作github.com/corvusoft/restbed。我很想看到社區的成長。 – Corvusoft 2015-07-23 13:21:48

回答

10

如果我是你,我會給Wt一個嘗試。我不認爲你會發現另一個解決方案與Wt類似的性能一樣完整和易於使用。郵件列表是活躍的,並且定期發佈在嵌入式設備上使用它的人員。該項目的Wiki(here)提到了一些用於嵌入式部署和ARM性能的數字。

2

嘗試Lua。 Xavante嵌入式Web服務器在LuaForge的某處。

它非常快速,非常小並且非常具有可擴展性 - 因爲所有關於lua的都是。

您有權力使用Lua腳本適合betteer,並使用C++函數在需要更快的速度和連接到現有的本機代碼。

11

您的網站在PHP中速度緩慢的原因是什麼?你有沒有分析代碼來找出瓶頸?用另一種語言替換整個代碼庫可能對於這項工作來說太大了。

也許如果某些部分是計算密集型的,那麼也許你可以在C++中實現一個PHP模塊來完成這項工作。

+0

據我所知,大多數延遲是由包含生成最終頁面的各種組件的類的文件引起的。 – che 2009-01-26 16:14:10

+0

你確定嗎?即使複雜的PHP框架在包含複雜的文件網絡時也只有少數MS的延遲,並且如果您使用的是無框架PHP,那麼它可能更少。 – ryeguy 2009-01-26 16:38:41

+0

在我們的輕度加載的XScale框中,包括東西和創建對象需要0.75到1.7秒。 – che 2009-01-26 17:01:17

3

Nanogear怎麼樣。我沒有使用它,所以我不確定它是否合適。這裏是來自網站的引用。

C++是一個偉大的,通用 編程語言,但沒有現代化, 易於使用和功能強大的C++網絡 框架在這些 年被做了。我們試圖填補與 Nanogear的差距。受Zend Framework和Rails的啓發,我們希望將 C++輕鬆帶入網絡。

這裏是老googlecode網站的鏈接Google Code Nanogear看起來像那裏有更多的信息。

1

由於沒有人說過,我會的。嘗試Java。 Java是一種具有良好Web框架的編譯語言。它也是非常可擴展的。我曾經工作過的每一次合作使用java作爲其主要的網絡技術,這主要是由於這種可擴展性因素。不知道它是否會與你的架構一起工作,但它回答了這個問題:

是否有任何編譯語言的web框架like C++?

10

你可以看看CppCMS。我不知道它有多成熟或好,但它聽起來像你正在尋找的東西。

另一個選擇是用Python/PHP編寫主​​應用程序,然後用C重寫關鍵部分,這對我來說似乎更加理智。

4

這裏要看的一件事是使用C++進行某種Web服務而不是實際的Web應用程序開發環境。在我當前的一個項目中,我們生成JSON(並解析請求),然後讓客戶端(網絡瀏覽器)處理剩下的問題。您在客戶端計算機上擁有大量的計算能力,混合了一些javascripty的魔力和繁榮,現在您的嵌入式設備可以回到做它應該做的事情上。我個人很喜歡Wt,並且認爲如果你想用C++開發整個「網絡應用程序」,這是你最好的選擇。

至於你如何讓你的C++代碼開始投放了Web服務的細節,你可以用驚人Boost.Asio的庫(他們有一個HTTP服務器的例子)和json_spirit(我認爲它在CodeProject)

7

我剛剛看到此鏈接作爲CppCMS的引薦來源。關於它的幾個問題/答案。

問:它是如何成熟的?
A.有一個基於它的Wiki 100%。開發人員博客也運行在CppCMS上。所以你可以看到它很有用。 好。至少對作者而言。
問:「什麼讓我完全開心會像C++ Django一樣」
答:實際上它是「C++ Django」。很多想法都是直接從Django採取的,比如 表單,模板繼承等等。所以你可能會感到賓至如歸
Q. Nanogear
答:我已經看過它了......它有很多計劃,但不是太多的代碼。
問:有多少項目使用它。 A.不多。這是一個相當新的項目。
Q.我是誰?答:老實說我是CppCMS的開發者。

1

您可以試試embedded versionCppCMS

這是相當新的和exprerimental開發,但它看起來像它是 更適合於Wt,因爲它是礦石面向網絡(更接近Django) 而不是GUI樣。

1

你可以看看Tntnet。它使用自己的模板語言,看起來有點像PHP,只有更多的附加標籤。

相關問題