16

我有一个 Web 应用程序项目,其中性能比其他任何东西都重要,而且我可以选择要使用的技术。

与 Web 应用程序无关的语言测试基准。

你会推荐什么作为最合适的候选人?

谢谢!


一位朋友推荐了 IRC 上的 gwan 服务器。看起来是我正在寻找的东西,但我以前从未听说过。有人有这个包的经验吗?易用性、可靠性?

在我离开 Apache 之前,我想了解一下您的想法。

4

9 回答 9

7

If performance counts more than anything else, don't use a scripting language. Especially since you have full control over the technology stack. Compiled languages will perform better for CPU intensive operations.

于 2010-08-11T14:52:17.353 回答
7

G-WAN 是一个简洁的网络服务器:它基于“C 脚本”概念:

AC 脚本只是由网络服务器编译然后加载到受保护内存中的 C 源代码。当对 servlet 发出请求时,Web 服务器将调用它。由 C 编译器编译的 servlet 与通常编译 C 程序一样“快”。但是,对于 CGI 或 FastCGI 等 C 脚本的优势在于,编译后的程序与 Web 服务器位于相同的内存空间中。这减少了通信的开销(在 CGI 的情况下,为每个请求创建一个进程,或者为 FastCGI 创建一个套接字)。

网络服务器正在使用选择/轮询技术:非阻塞 I/O。但是,它有一个巧妙的地方。每个程序都可以像使用阻塞 I/O 一样编写。由于网络服务器本身编译每个 C 脚本,它可以将程序转换为使用非阻塞 I/O。至此,它可以将自己链接到第三方库(如数据库访问),并且仍然利用非阻塞 I/O 特性:没有线程/进程上下文切换。

为编写 C 脚本提供的工具有,例如,缓存和安全缓冲区。下一个(在撰写本文时尚未发布)版本还将包括键值存储。

性能方面:有一些可用的基准测试表明它优于任何其他网络服务器,但我不相信这些。尝试用 C 和 PHP 编写一个小型 CPU 密集型程序。让 C 脚本在 G-WAN 上运行,PHP 脚本在 Apache 上运行,自己做一个基准测试。

还有更多,但这超出了这个问题的范围。

G-WAN 的一些缺点是它仅由一个人开发。但是,有一个论坛,您可以在其中提问。

易用性受限于您的 C 技能。但是,提供的 API 很简单。它仍然有一些不一致和(在我看来)丑陋的部分,但这不是问题。一个更严重的问题是每个版本都不能保证向后兼容,你可能不得不重写。

如果您想安全:利用 C 的平台独立性:允许将您的代码编译为(快速)CGI 程序并供 G-WAN 使用。如果 G-WAN 失败,您总是可以回退到 Apache 的(快速)CGI(有关 API,请参阅http://www.fastcgi.com/)。

于 2011-06-23T01:25:01.847 回答
3

LuaJit (Lua) 是最快的采用 JIT 技术的脚本语言。

如果您想要最快的服务器端 Web 应用程序(不总是脚本),那将是 g-wan .. 您可以使用 c、c++、java ..

ASP.NET 对于几乎任何事情也足够快,但价格昂贵

带有 hiphop 的 php 最容易学习,而且速度也足够快..

这取决于您需要多少请求.. 以及您学习语言的速度 ^^ 不要忘记缓存静态数据(使用 memcache 或 nosql)

于 2012-03-12T08:45:31.847 回答
3

Javascript 不断被审查和优化以在移动设备上使用,因此在实际的全尺寸服务器上它运行得非常快。查看 Node.JS,这是一个实现服务器端 javascript 以服务网页的项目:http ://nodejs.org/

于 2011-03-09T17:05:23.937 回答
3

首先确定您的应用程序性能是否真的取决于语言或其他一些因素(例如数据库请求)。缓存结果的能力也是一个非常重要的因素。

对于性能,所使用的语言在要检查的重点列表中排得很远,用例也会影响哪种语言更好。例如,如果您有许多正则表达式要检查,您应该检查候选语言中的正则表达式支持,等等...

对于图像处理,最重要的一点可能是您使用的底层图像库,通常用 C 编写。我想到了 ImageMagick 的案例,因为我目前正在使用它。它可用作大多数语言的库,并且脚本语言层只需要调用库的函数,并且在该级别使用的语言不会有太大变化(但缓存预先计算的结果图像可能会大大改变性能)。这个用例可能与调用加密库类似。

如果性能确实是个问题,对于图像处理,您还可以考虑使用与 GPU 加速卡一起使用的库(支持 cuda 或 openGPU 的库)。

于 2010-08-11T14:20:36.820 回答
2

好吧,如果您使用具有大量数据的数据库,那么您将花费更多的时间而不是运行 php 或 asp 或(在此处插入其他风格)脚本
如果可以的话,您应该构建应用程序的模型(或至少一个段)更多的数据库或处理器密集型部分)并尝试对这些部分进行基准测试

于 2010-08-11T14:43:40.880 回答
-1

更新:似乎使用 NIO.2 的 Java 7 已经设法胜过使用 C 的 Gwan,但在时间上几乎是 2 倍,这令人难以置信,但您可以进行一些简单的测试。

Java 唯一的缺点是无法集成基于 C 构建的共享库。我准备挑战某人来证明我错了,Java NIO.2 比 C 慢。

于 2012-01-25T05:18:24.713 回答
-3

快速脚本语言是 ASP,其次是 PHP,但如果您希望应用程序可以无限速度扩展,请使用 C++ 或 Java。Google 搜索使用 C++ Gmail 使用 Java YouTube = Python Twiiter 过去使用 Ruby 现在他们转向 Java Facebook = PHP 在前端,一些 Java 在后端

但我推荐前端的 PHP 和后端的 C++

于 2012-05-03T10:15:21.190 回答
-3

我推荐Java编程语言;它不是一种脚本语言,但它可能是可用于编写 Web 应用程序的最快的编程语言。我还建议使用像 Spring 这样的框架以获得更好的编程体验(相对于“原始”Java Servlet 编程)。

于 2010-08-11T14:58:12.230 回答