图解性能优化[试读]
译者序
不知读者是否还能回忆起自己第一次碰到性能问题时的场景,可能当时会嘀咕:“明明是我细心打磨的程序,怎么会有性能问题呢?”而当找出问题的症结时,自己也会一拍大腿——这个地方怎么当时就没考虑到呢?的确,性能问题就是这样在程序的各个地方考验着开发者。 随着大数据、高并发越来越多地出现在开发人员的用户场景下,开发人员也越来越关注程序的效率问题。小到一个字符串的拼接,大到各个系统的协调,在实现功能之余,性能的优劣也必须纳入评估范围。性能调优具有以一敌百的功效。性能好的程序与性能差的程序在执行效率、资源消耗方面有几倍甚至几百倍的差距。这对于公司而言是不小的成本差距。 然而,当开发人员想要学习一下... 查看全部[ 译者序 ]
前 言
不再做性能的“客户”!这里的“客户”是说,即使能够开发业务应用程序,能够搭建基础设施,也还是有欠缺的地方,就是与性能相关的知识和技能。 如今IT 正在飞快地发展,变得更容易使用,甚至不知道内部细节也没关系。但是,为了进行性能调优,需要理解系统内部的架构。这看似与时代逆行,但却是非常重要的。在IT 的世界里,懂得性能调优的人还很少,更多的人只是在紧要关头向那些懂性能的工程师寻求帮助。这就是开头“客户”一词的由来。 正如大家所知,IT 的世界正在朝着黑盒化的方向发展。其中,对工程师来说,性能为其提供了一块能永远发挥作用的天地。原因在于,即使IT在朝着黑盒化的方向发展,工程师也要在理解结... 查看全部[ 前 言 ]
第1章 性能的基础知识
1.1 学习性能所必需的知识 在最开始,我们先来介绍一下有关性能的基础理论。 性能变差的原因示例 曾经有客户过来咨询:“处理的数据条数变多时,数据库(DataBase,DB)的处理速度就会变得很慢,这让人很头疼。”听到这样的问题,一般就会马上想到“是不是DB 的这个SQL 语句不太好啊?是不是磁盘的I/O 不太好啊”等,即从一个方面去判断问题的原因。由于当时笔者有一定的知识储备,立即就推断出DB 进行单个处理的速度并没有变慢。但是据客户说,DB 单次处理的数据量分别为1000 条和100 万条时,花费的时间会有几十倍甚至几百倍的差别。由于找不到头绪,就从客户那里要来了应用程序... 查看全部[ 第1章 性能的基础知识 ]