2009-01-26 57 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,只有更多的附加标签。

相关问题