如何确定CodeIgniter速度?
我正在考虑使用一个称为CodeIgniter的PHP框架。
我感兴趣的一件事是它的速度。但是,我没有办法知道它有多快,宁愿不只是简单地说出他们的网站。有人知道我自己可以确定其速度吗,还是有人可以告诉我一个可以做到的站点?
解决方案
回答
我建议自己进行测试。使用xdebug的探查器创建与cachegrind兼容的文件,并使用Webgrind可视化该文件。
这样,我们最终可以获得非常可靠的信息。
回答
Code Igniter还具有一些内置的基准测试工具:
http://codeigniter.com/user_guide/general/profiling.html
回答
如果站点是数据库驱动的,那么如果瓶颈是应用程序框架,我将感到非常惊讶。我担心的是快速开发中的"快速",而不是快速处理请求中的"快速"。通过缓存策略和优化数据库访问,可以更好地完成重大优化。
除了数据库访问之外,我们自己的代码将是花费每个请求大部分时间的地方(即使与数据库访问相比,这通常并不重要),该框架可能不会影响花费在请求上的时间,除非它确实写得不好。
最好是寻找一个具有良好缓存支持的框架(我不知道,Code Igniter可能具有该缓存框架),这几乎总是比使用通过使用a框架快一点。
看看Zend Framework,它的优势是成为PHP 5,而据我所知,Code Igniter仍然是PHP 4. 当涉及到速度时,这可能是个问题,但我不支持哪个框架。 Zend具有良好的缓存支持和数据库探查器,可以找到瓶颈所在。
回答
是的,问题在于我们必须构建应用程序以对其进行概要分析。
在工作中,我们有几个外部编写的项目,在将它们放到我们的主机箱上之前,我们先进行了负载测试。我们都惊讶地发现两者都存在严重的性能问题。一个是用CakePHP编写的,另一个是使用Drupal编写的。除了需要在将要获得大量流量的任何网站上进行性能分析和负载测试之外,我认为这并不突出任何框架或者CMS的问题。在这两种情况下,造成问题的都是开发人员所做的,而不是软件平台的特性。例如,开发人员在Cake项目中创建了一个递归函数调用,该函数在每次递归时都实例化了整个Cake对象,并且如果该服务器在负载下正常运行,那么它将删除服务器。
我认为,绩效不应成为选择框架的决定性因素。客观差异可能很小,而我们使用它的方式可能会导致比框架的固有性能更多的性能问题。
我相信,要扩展任何PHP应用程序使其在负载下运行,我们将需要一个操作码缓存,并且需要使用诸如memcached之类的东西或者框架支持的任何内置缓存来编写智能内容缓存。
回答
西奥
是的,Code Igniter提供缓存。不知道效果如何,但是可以使用。
回答
保罗·琼斯(Paul M. Jones)最近更新了他的框架基准。他正在比较一些流行的PHP框架中Hello World应用程序的性能。
这些很有趣,但是请记住,关于真实世界的应用程序并不能说明太多。
回答
对于大多数项目,CodeIgniter的速度非常快。有人在这里发布了文章,如果我们是Google,我们会发现它在速度方面可以与其他框架相比。
我同意另一位发帖人的观点,即在选择框架时,性能通常不是一个大问题。对于大多数项目,主要框架都具有足够的性能。