Codeigniter:分析和性能

时间:2010-05-07 13:56:51

标签: performance codeigniter profiling

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

什么是剖析? 怎么用? 它是如何工作的? 什么被认为是“漫长”的时间?

更重要的是,

如何使用它来提高效果?

我问的原因是b / c我的应用现在真的缓慢。

5 个答案:

答案 0 :(得分:10)

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

  

$这 - >输出 - > enable_profiler(TRUE);

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

如果某些内容很慢,请启用探查器并检查它是控制器还是查询(或两者)。如果是数据库查询,那么你需要改进它们,这本身就是一个完整的主题。如果它是控制器,那么你需要找出具体导致速度减慢的代码。

阅读https://www.codeigniter.com/user_guide/libraries/benchmark.html并开始放置  您认为它可能会导致速度慢,循环和任何递归函数的基准测试开始和停止标记是您应该检查的第一个位置。一旦你找到一段缓慢的代码,你需要找到如何选择它,这本身就是一整套蠕虫。

速度慢可能是由于硬件坏,服务器繁忙,连接速度慢或其他问题很多,但这些问题超出了本问题的范围。

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

答案 1 :(得分:9)

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

有一种非常坚定的信念,为了找到可以有效优化以加快程序速度的代码,你可以通过各种函数计算测量时间并计算它们被调用的次数< / em>的

即使是硬件工程师,我本以为会更好地了解,他们提供了很好的定时器和计数器芯片,当他们正在构建我试图编程的电路板时,认为这将有助于我调整软件

不,谢谢,我告诉他们。我只需要一种方法随机停止并询问它在做什么,以及为什么它在做什么。这是随机工作的随意性和问题 - 他正在做什么的方法。如果我多次这样做,而且花费的时间很少,那么我抓不住它的机会基本上都是零。

Here is more on the subject.

答案 2 :(得分:1)

以下是我在研究CI绩效/基准测试时发现的一些主题:

http://codeigniter.com/forums/viewthread/101804/P0/

http://www.haughin.com/2008/02/13/optimizing-and-scaling-your-codeigniter-application/

在第一个帖子中,我相信有一些关于基准测试的讨论,但我从来没有找到一个确定的数字集来帮助对应用程序进行基准测试。

答案 3 :(得分:0)

http://lonnieezell.com/blog/web-development/introducing-forensics-profiling-for-codeigniter/ 这是一个很好的插件来衡量基于codeigniter的应用程序的性能

答案 4 :(得分:0)