我听到一个传闻,Java消耗的能量比PHP少,并且想知道这是否以及如何实现.我目前在一家公司工作,我们的大多数应用程序都基于PHP.功耗对我们来说从来都不是问题,但我们正在开展更重要的项目.我们喜欢PHP用于网络开发,并且想知道这样的谣言是如何传播的,如果它是真的.
我听到的例子是Facebook正在切换到Java的原因(我似乎无法在谷歌上找到任何这些东西).
由于我的一位客户问我这个问题,我很乐意证明这是真的.
如果计算机正在执行Java或PHP,它们并不特别在意.功耗几乎相同.那么问题就变成了性能问题 - 如果你能用一台服务器提供更多的请求,你将需要更少的服务器并且消耗更少的能量.或者,如果您没有使用网络规模应用程序,请更快地处理您的请求并花费更多时间闲置,这会消耗更少的功率.
鉴于纯Java和纯PHP,Java作为静态类型的JIT语言当然更快.问题是,鉴于团队成员和开发工作可供您使用,您可以更快地完成哪一项.
我的看法是,最好的方法是混合语言,使用现有的基于Java的基础设施工具,例如Terracotta来构建性能关键部分,以及更灵活地构建复杂但不是那么重的业务和表示逻辑的东西.
我真的怀疑这是一个语言问题.
有问题的平台具有如此多的可变性,无法呈现任何通用的比较.列举一些可变点.
Java的Servlet容器(Tomcat,Glassfish,Websphere,Jetty,...)
PHP的Web服务器(Apache,IIS,lighttpd,nginx,...)
PHP的操作码缓存
使用的库和framewokrs
操作系统
涉及硬盘
冷却
关于应用程序本身的算法
我真的怀疑你可以将这么多变量分离成一个有用的指标.最多可以使用相同的硬件选择两个等效的应用程序(注意所有平台的选择)并进行比较.然后改善最坏的情况,直到最好的一个.我认为,适当的测量结果将是每小时瓦特和每秒请求数.
在Ants的回答(upvote him)中注意到的是关键点:在满足足够需求的情况下,性能更好的平台总是更节能,因为它能够以更少的硬件提供相同数量的请求.
但是哪个平台表现更好不仅仅取决于语言,取决于上面提到的事情(还有更多).
我对这个问题感到惊讶,直到我进行谷歌搜索,这使得这个问题变成了现实.这是一个严重的问题,我不会想到的.
现在我正在考虑它,我认为这成为谁付电费的问题.Sun的Java战略是关于销售服务器:后端的大铁,前端的瘦客户端.
也许像Flex这样的技术将更多的工作转移回客户端,并使他们获得更大比例的电费.
但是,通过能源使用对语言进行排名,我会感到惊讶.
一个非常有趣的问题.我正在投票.
真是一个令人着迷的问题.用多种语言编写应用程序,将它们部署在相同的硬件上并测量功耗不是很有趣吗?我很乐意看到它.
如果你真的变得疯狂,那么除了向你展示应用程序的每个部分中消耗内存和CPU的位置之外,性能监控工具还会向你显示最耗电的地方?
现在我希望我能再次投票这个问题.