官术网_书友最值得收藏!

第2章 通過(guò)剖析找出瓶頸

閱讀本章后,你將能夠回答如下問(wèn)題。

如何找出代碼中的速度和RAM瓶頸?

如何剖析CPU和內(nèi)存占用情況?

如何確定剖析的深度?

如何剖析長(zhǎng)期運(yùn)行的應(yīng)用程序?

CPython在幕后做了什么?

如何在優(yōu)化性能時(shí)確保代碼正確無(wú)誤?

剖析讓你能夠找到瓶頸,以便通過(guò)做最少的工作來(lái)最大限度地提高性能。我們希望只做少量的工作就能極大地提高速度,同時(shí)減少資源的占用,但實(shí)際上,你的目標(biāo)是讓代碼足夠精簡(jiǎn)且足夠快。剖析讓你能夠做出最務(wù)實(shí)的決定,從而最大限度地減少工作量。

對(duì)于任何可度量的資源,都可進(jìn)行剖析,而不僅僅是CPU時(shí)間。本章介紹如何剖析CPU時(shí)間和內(nèi)存占用情況,這里介紹的方法也可用來(lái)剖析網(wǎng)絡(luò)帶寬和磁盤(pán)I/O。

如果程序的運(yùn)行速度太慢或占用的RAM太多,你肯定想修改代碼中導(dǎo)致這些問(wèn)題的罪魁禍?zhǔn)住.?dāng)然,你也可跳過(guò)剖析過(guò)程,直接對(duì)你認(rèn)為有問(wèn)題的代碼進(jìn)行修改,但需要注意的是,結(jié)果很可能是你將勁兒使錯(cuò)了地方。因此,不要憑直覺(jué),而應(yīng)先進(jìn)行剖析,找出目標(biāo)后再修改代碼的結(jié)構(gòu),這要合理得多。

有時(shí)候偷懶不是壞事。通過(guò)剖析,可快速找出需要消除的瓶頸,這樣只需做足夠的瓶頸消除工作就能獲得所需的性能。如果你未經(jīng)剖析就直接進(jìn)行優(yōu)化,很可能做的工作反而更多。請(qǐng)務(wù)必根據(jù)剖析結(jié)果確定優(yōu)化方向。

主站蜘蛛池模板: 东丰县| 宣城市| 抚松县| 沭阳县| 武邑县| 巴林左旗| 新宾| 巴里| 兴仁县| 嘉善县| 明光市| 潮安县| 绥阳县| 大足县| 石棉县| 山阴县| 沽源县| 晋中市| 临城县| 伊春市| 晋江市| 郓城县| 类乌齐县| 固原市| 东乌珠穆沁旗| 宣恩县| 屏边| 邻水| 浙江省| 德江县| 闽清县| 城步| 江陵县| 渑池县| 辛集市| 涿州市| 万山特区| 抚松县| 沾益县| 旬邑县| 麻江县|