知识大全 对应用程序进行性能剖析
Posted 知
篇首语:世界上三种东西最宝贵本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 对应用程序进行性能剖析相关的知识,希望对你有一定的参考价值。
高性能MySQL:对应用程序进行性能剖析 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
对应用程序进行性能剖析
对任何需要消耗时间的任务都可以做性能剖析 当然也包括应用程序 实际上 剖析应用程序一般比剖析数据库服务器容易 而且回报更多 虽然前面的演示例子都是针对MySQL 服务器的剖析 但对系统进行性能剖析还是建议自上而下地进行 这样可以追踪自用户发起到服务器响应的整个流程 虽然性能问题大多数情况下都和数据库有关 但应用导致的性能问题也不少 性能瓶颈可能有很多影响因素
外部资源 比如调用了外部的Web 服务或者搜索引擎
应用需要处理大量的数据 比如分析一个超大的XML 文件
在循环中执行昂贵的操作 比如滥用正则表达式
使用了低效的算法 比如使用暴力搜索算法(na ve search algorithms)来查找列表中的项
幸运的是 确定MySQL 的问题没有这么复杂 只需要一款应用程序的剖析工具即可(作为回报 一旦拥有这样的工具 就可以从一开始就写出高效的代码)
建议在所有的新项目中都考虑包含性能剖析的代码 往已有的项目中加入性能剖析代码也许很困难 新项目就简单一些
性能剖析本身会导致服务器变慢吗?
说 是的 是因为性能剖析确实会导致应用慢一点 说 不是 是因为性能剖析可以帮助应用运行得更快 先别急 下面就解释一下为什么这么说
性能剖析和定期检测都会带来额外开销 问题在于这部分的开销有多少 并且由此获得的收益是否能够抵消这些开销
大多数设计和构建过高性能应用程序的人相信 应该尽可能地测量一切可以测量的地方 并且接受这些测量带来的额外开销 这些开销应该被当成应用程序的一部分 Oracle 的性能优化大师Tom Kyte 曾被问到Oracle 中的测量点的开销 他的回答是 测量点至少为性能优化贡献了 % 对此我们深表赞同 而且大多数应用并不需要每天都运行详细的性能测量 所以实际贡献甚至要超过 % 即使不同意这个观点 为应用构建一些可以永久使用的轻量级的性能剖析也是有意义的 如果系统没有每天变化的性能统计 则碰到无法提前预知的性能瓶颈就是一件头痛的事情 发现问题的时候 如果有历史数据 则这些历史数据价值是无限的 而且性能数据还可以帮助规划好硬件采购 资源分配 以及预测周期性的性能尖峰
那么何谓 轻量级 的性能剖析?比如可以为所有SQL 语句计时 加上脚本总时间统计 这样做的代价不高 而且不需要在每次页面查看(page view)时都执行 如果流量趋势比较稳定 随机采样也可以 随机采样可以通过在应用程序中设置实现
<?php
$profiling_enabled = rand( ) > ;
?>
这样只有 % 的会话会执行性能采样 来帮助定位一些严重的问题 这种策略在生产环境中尤其有用 可以发现一些其他方法无法发现的问题
几年前在写作本书的第二版的时候 流行的Web 编程语言和框架中还没有太多现成的性能剖析工具可以用于生产环境 所以在书中展示了一段示例代码 可以简单而有效地复制使用 而到了今天 已经有了很多好用的工具 要做的只是打开工具箱 就可以开始优化性能
首先 这里要 兜售 的一个好工具是一款叫做New Relic 的软件即服务(sofare asa service)产品 声明一下我们不是 托 我们一般不会推荐某个特定公司或产品 但这个工具真的非常棒 建议大家都用它 我们的客户借助这个工具 在没有我们帮助的情况下 解决了很多问题 即使有时候找不到解决办法 但依然能够帮助定位到问题 New Relic 会插入到应用程序中进行性能剖析 将收集到的数据发送到一个基于Web 的仪表盘 使用仪表盘可以更容易利用面向响应时间的方法分析应用性能 这样用户只需要考虑做那些正确的事情 而不用考虑如何去做 而且New Relic 测量了很多用户体验相关的点 涵盖从Web 浏览器到应用代码 再到数据库及其他外部调用
返回目录 高性能MySQL
编辑推荐
ASP NET开发培训视频教程
数据仓库与数据挖掘培训视频教程
cha138/Article/program/MySQL/201311/29718相关参考
高性能MySQL:使用性能剖析 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 使用性能剖析 当
高性能MySQL:理解性能剖析 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 理解性能剖析 M
Java通过对Java语言规范进行修改显著简化了一些实用结构的实现在那些修改中最引人注目的就是内部类和匿名类如运用得当它们可使程序更易理解和维护本文介绍内部类和匿名
中水回用技术的目的是通过必要的水处理方法去除水中的杂质,使之符合中水回用水质标准。处理的方法应根据中水的水源和用水对象对水质的要求确定。在中水回用处理过程中,有的方法除了具有某一特定的处理效果外,往往
中水回用技术的目的是通过必要的水处理方法去除水中的杂质,使之符合中水回用水质标准。处理的方法应根据中水的水源和用水对象对水质的要求确定。在中水回用处理过程中,有的方法除了具有某一特定的处理效果外,往往
中水回用技术的目的是通过必要的水处理方法去除水中的杂质,使之符合中水回用水质标准。处理的方法应根据中水的水源和用水对象对水质的要求确定。在中水回用处理过程中,有的方法除了具有某一特定的处理效果外,往往
程序内部剖析——JAR文件揭密 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 大多数Java程序
高性能MySQL:剖析MySQL查询 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 剖析MySQ
Spring事务管理高级应用难点剖析(2) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 应用分
高性能MySQL:剖析单条查询(1)[1] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 剖析单