是否值得编译一个C程序并运行它而不是PHP页面?

时间:2009-05-16 15:08:42

标签: php c

似乎在大多数情况下,获得的速度不值得 - 是这样吗?否则很多人会为他们最受欢迎的页面做这件事。使用C程序是否真正有益处。我可以想到一个不重要的情况:当服务器上的网络瓶颈远大于CPU瓶颈时,程序运行的速度变得不那么重要了。

7 个答案:

答案 0 :(得分:8)

C是一门优秀的语言。但它是为系统级编程而设计的,而不是制作网页。另一方面,PHP是为制作网页而设计的。使用正确的工具来完成正确的工作。在这种情况下PHP。

你也是从一个错误的前提开始的。即PHP不够快,无法提供页面内容。有很多网站只是不同意这种说法。也许有一些角落的情况,C是这项工作的唯一选择,但我发现你不太可能遇到这种情况。

答案 1 :(得分:2)

当你使用C作为锤子时,一切看起来都像是拇指。

正如Jared所说,使用正确的工具。你可以在C中做到这一切,很多都有。但是,您可能会考虑PHP的Web与C的开发速度。在PHP(例如动态数组)中做一些非常简单的事情在C中并不简单。

答案 2 :(得分:0)

大多数网站都在内存中使用缓存来实现高速响应。 在这种情况下,负载不再在页面的创建中,所以我不会去c程序。

答案 3 :(得分:0)

我想说,即使在您说明的情况下,重新设计服务器端工作以作为C程序运行也是不值得的。无论流量多少。

升级服务器或实施有效缓存的成本总是低于写入重写服务器端代码以在C中运行所需的工作。

答案 4 :(得分:0)

这实际上取决于代码。例如,我宁愿编译处理我的网络图算法的C代码;但是,我永远不会转换显示最小CSS的简单静态页面。

答案 5 :(得分:0)

如果您甚至需要提出问题,答案是否定的。

基于Web的应用程序受到网络,数据库,i / o和CPU的限制,并且通过在C中编写代码所获得的速度增加肯定会被抵消,但由于性质的原因,开发时间增加了语言,并且仍然受到其他因素的影响更明显。

如果你的代码需要运行得非常快,做一些计算难度很大或涉及的东西,或许C可能是正确的答案,但大多数网站都不是这样的。

一旦确定当前实施太慢,将非常具体的处理或繁重的代码重写为C模块可能是值得的,但这些优化最好在轨道上完成,同时确保了解真正的瓶颈。应用

如果你有一个不错的库或平台,例如.NET MVC,那么使用C#进行一般的web开发是一个可行的想法。 C,不是那么多。

答案 6 :(得分:0)

有一种情况(在所有其他情况下我都能想到,答案是它不值得 - 其他答案中有很多推理)。

所以情况是

  • 程序需要进行大量的数据处理或计算
  • 有大量优化的C代码

我会说复杂的光线追踪系统是这种情况的候选者,但没有任何复杂性。

即使在这种情况下,我也会用PHP实现页面并运行后台作业来完成繁重的任务。