Codeigniter:分析和性能

Posted

技术标签:

【中文标题】Codeigniter:分析和性能【英文标题】:Codeigniter: Profiling and Performance 【发布时间】:2010-05-07 13:56:50 【问题描述】:

我是应用程序开发和整个 CI 的新手,所以我有很多问题。

什么是分析? 它是如何使用的? 它是如何工作的? 什么是“长”时间?

更重要的是,

如何使用它来提高性能?

我问的原因是我的应用现在真的很慢。

【问题讨论】:

我有,但我不懂基准测试。 是在服务器环境还是在本地运行缓慢?如果它在服务器上,你在什么样的环境中?是所有页面都很慢还是只是少数导致问题? 这可能是我的服务器环境...但我不能确定。它是共享主机(mediatemple)。不过,有些页面比其他页面慢得多。我只是不知道如何确定! 我也很好奇其他人对此会怎么说。我在 Media Temple 的 Grid Service 上托管了一个站点,该站点也在开发中。这是一个基于 Codeigniter 的应用程序,而且速度也很慢。我还注意到我在同一个 Media Temple 服务上的 Wordpress 网站也很慢。我的下一步是与另一个主机注册以在不同平台上测试性能。 @someoneinomaha(好名字哈哈)。我在他们的 GS 上有一个 wordpress 网站,速度也像圣诞节一样慢...... 【参考方案1】:

当您使用分析时应该会很清楚,它用于查看页面的各个方面的速度。 将此行放在开始附近的主控制器中(例如,在您调用父构造函数之后的构造函数中:

$this->output->enable_profiler(TRUE);

这将在结果页面的底部打印大量分析信息。这将包括所有数据库查询、花费多长时间以及在控制器中花费了多长时间(php 时间而不是数据库查询时间)。

如果启动缓慢,请启用分析器并检查它是控制器还是查询(或两者)。如果是数据库查询,那么您需要改进它们,这本身就是一个完整的主题。如果是控制器,那么您需要找出具体是什么代码导致了减速。

阅读 https://www.codeigniter.com/user_guide/libraries/benchmark.html 并开始放置 您认为可能导致速度变慢的基准测试开始和停止标签、循环和任何递归函数是您应该首先检查的地方。一旦你找到一段缓慢的代码,你就需要找到如何优化它,这本身就是一大堆蠕虫。

速度慢可能是由于硬件故障、服务器繁忙、连接速度慢或大量其他问题造成的,但这些不在此问题的范围内。

编辑: 只是想补充一点,您没有使用 CI 的分析器或基准测试功能来提高速度,只是为了找到需要提高速度的地方。我知道这是一件小事,但只是觉得我应该指出来。

【讨论】:

我在死链接上应用了删除线。如果您有有效的链接,请编辑您的答案。【参考方案2】:

在性能调整中,底线是程序完成给定任务所需的时间(以挂钟时间计)。我知道这听起来像 DUH,但这是每个人都可以同意的一个概念。

有一个非常坚定的信念,即为了找到可以有效优化以加快程序速度的代码,我会测量各种函数所花费的时间并计算它们被调用的次数。

即使是我认为会更了解的硬件工程师,在他们构建我正在尝试编程的板组时,也愿意为我提供出色的计时器和计数器芯片,并认为这将有助于我调整软件.

不,谢谢,我告诉他们了。我所需要的只是一种随机停止并询问它到底在做什么,以及为什么这样做的方法。这是随机插入您的工人并询问他在做什么的方法。如果我多次这样做,并且大部分时间都花在了效率低下,那么我抓不到它的机会基本上为零。

Here is more on the subject.

【讨论】:

【参考方案3】:

你可以使用像 XHPROF 这样的高级分析器

http://code.tutsplus.com/tutorials/advanced-codeigniter-profiling-with-xhprof--net-24802

【讨论】:

以上是关于Codeigniter:分析和性能的主要内容,如果未能解决你的问题,请参考以下文章

Codeigniter:分析和性能

是“root web server”和localhost一样吗?安装CodeIgniter

[CI] 使用CodeIgniter框架搭建RESTful API服务

PHP mcrypt_create_iv 返回问号和不正确的长度 - CodeIgniter

Codeigniter 2 $this->db->join 与 $this->db->update 一起使用

在 codeigniter 2.1 中分析缓存使用情况