最快的脚本编程语言?

时间:2010-08-11 14:16:25

标签: scripting g-wan

我有一个Web应用程序项目,其中表现更多 比什么都重要,我可以选择技术 使用。

与之无关的语言枪战基准 到网络应用程序。

你认为什么是最合适的候选人?

谢谢!


一位朋友在IRC上建议使用gwan服务器。看起来像我 正在寻找,但我以前从未听说过。任何人 有关此套餐的经验吗?易用性,可靠性?

在离开Apache之前,我想了解你的想法。

9 个答案:

答案 0 :(得分:7)

如果性能最重要,请不要使用脚本语言。特别是因为您可以完全控制技术堆栈。编译语言对CPU密集型操作的性能会更好。

答案 1 :(得分:6)

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

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

网络服务器正在使用select / poll技术:非阻塞I / O.但是,它有一个很好的东西。每个程序都可以像使用阻塞I / O一样编写。由于Web服务器本身编译每个C脚本,它可以将程序转换为使用非阻塞I / O.在此,它可以将自己链接到第三方库(如数据库访问),并仍然使用非阻塞I / O性质:没有线程/进程上下文切换。

为编写C脚本提供的工具是缓存和安全缓冲区。下一篇(撰写本文时尚未发布)版本还将包括一个Key-Value商店。

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

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

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

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

如果您想要安全:使用C的平台独立性:允许您的代码编译为(快速)CGI程序,也可以由G-WAN使用。可能G-WAN失败,您可以随时回退到Apache(快速)CGI(请参阅http://www.fastcgi.com/获取API)。

答案 2 :(得分:3)

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

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

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

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

答案 3 :(得分:3)

Javascript经常被仔细检查并针对移动设备进行优化,因此在实际的全尺寸服务器上,它的运行速度非常快。查看Node.JS,这是一个用于实现服务器端javascript以提供网页的项目:http://nodejs.org/

答案 4 :(得分:2)

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

答案 5 :(得分:1)

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

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

ASP.NET对于几乎任何东西都足够快,但是非常昂贵

与hiphop的PHP将是最容易学习,也足够快..

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

答案 6 :(得分:-1)

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

答案 7 :(得分:-1)

更新:看起来像使用NIO.2的Java 7已经设法使用C优于Gwan但是时间几乎是2倍,这是令人难以置信的,但你可以进行一些简单的测试。

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

答案 8 :(得分:-3)

禁用脚本语言是ASP,后跟PHP,但如果您希望应用程序扩展到无限速度,请使用C ++或Java。 Google搜索使用C ++ Gmail使用Java YouTube = Python Twiiter过去常常使用Ruby,现在转向Java Facebook =前端的PHP和后端的一些java

但我建议前端使用PHP,后端使用C ++