所以我正在创建一个 Web 应用程序,我需要在其中加密/解密文件,将它们压缩并将它们发送到浏览器。该站点使用 php (codeigniter),但实际的文件服务组件可以使用不同的语言。我想知道我是否会通过使用 php 以外的东西来提高速度,比如直接的 c 甚至 shell 脚本?尝试第一次就做对。谢谢大家。
最佳答案
使用 FastCGI+C/Python/Whatever_fast 可以为您带来巨大的性能提升(取决于您的用例的具体情况),其原因是:
- 有状态。 PHP 必须在每个请求上启动一个新进程并且没有数据 可以很容易地重复使用。使用 FastCGI,您可以创建巨大的内存缓存。
- 更好地控制正在发生的事情。实际上 完全控制。
Opencaching.pl 站点有一个用 PHP 编写的组件,该组件生成 PNG 图像以覆盖 Google map 小部件。 Overlay 通过在 map 顶部渲染请求的图像来工作,这样就可以标记许多地理点,而无需为每个地理点创建 DOM 对象。该代码由 SQL 查询组成,该查询获取给定坐标之间的点,然后使用 PHP 的内置 ImageMagick API 在 Canvas 上绘制它们。 map 的每个 View 都会导致对 PHP 脚本的多次查询,更不用说浏览和缩放了。表演很糟糕。大量内存和 CPU 使用率。
当我使用 Apache 上的 FastCGI 作为服务解决方案将脚本重写为 C 时,保留相同的逻辑、相同的 SQL 并将 ImageMagick 换成 SDL,猜猜是什么,巨大的改进!突然间,最大的瓶颈变成了允许更好图形的数据库。 SDL是一个游戏图形库所以它的性能必须更好!使用 PHP,您只能使用 medicore 质量库。
关于php - 压缩和加密基准比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6416664/