【发布时间】:2012-10-19 17:57:11
【问题描述】:
我开始使用 Xdebug 和 WinCacheGrind 来更多地了解我编写的代码。
我目前正在测试一个使用 MySQL 将其存储为持久会话的购物车对象。
以下是对象在典型的“添加到购物车”操作中执行的步骤:
- 构造一个使用默认值填充的购物车会话
- 在 MYSQL 中检查现有的购物车会话 $_COOKIE['session_id'] 和 $_SERVER['REMOTE_ADDR']。如果是这样,mysql 行填充购物车会话 (12ms)
- 在购物车中设置国家代码和州代码,以便进一步计算运费。
- 添加项目
- 添加项目选项
- 根据国家代码和州代码从 MYSQL 获取运输选项(常规、快递、次日)(9.1ms)
- 根据购物车中商品的重量计算每个选项的运费
- 设置折扣(0.1ms)
- 设置用户首选运输选项例如。常规;
- 在 MYSQL 中保存购物车会话(93ms),使用 php 函数序列化购物车内容。
- 在 VIEW 中显示购物车值。
对 db 的唯一调用是在第 2、6、11 步。
当然会有额外的数据库调用来获取项目详细信息、项目选项和折扣代码。但是对于示例,我将其保持在最低限度。
对于这个 PHP 请求,XDebug 给出的结果是 累计时间:130ms。
不好吗?
我真正的问题是,请求应该以“毫秒”为单位的速度有多快?我听说 YouTube 以 200ms Total 为目标,但我不是 Google,也没有未来工程师的超级天才激光 Intelligent 2055 团队...
感谢您的帮助。
C.
【问题讨论】:
-
我发现 KCacheGrind 在分析 xdebug 分析器转储方面优于 WinCacheGrind 远 -- 从这里下载 sourceforge.net/projects/precompiledbin
-
我下载了 KCacheGrind,但软件无法识别 cachegrind.* 文件。
-
更改文件名:文件格式被识别,但它需要不同的命名约定(我不知道为什么)。
标签: php performance xdebug profiler