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

Different types of speed

It is obvious from the previous example that we don't always mean the same thing when we talk about a program's speed. There is a real speed, as in the database example, and there is a perceived speed, hinted at in the document editor and game scenario. Sometimes we don't need to improve the program speed at all. We just have to make it not stutter while working (by making the user interface responsive at all times) and users will be happy.

We will deal with two types of performance in this book:

  • Programs that react quickly to user input
  • Programs that perform computations quickly

As you'll see, the techniques to achieve the former and the latter are somehow different. To make a program react quickly, we can sometimes just put a long operation (as was the calculation of the next move in the fictitious game) into a background thread. The code will still run as long as in the original version but the user interface won't be blocked and everybody will be happy.

To speed up a program (which can also help with a slowly-reacting user interface), we can use different techniques, from changing the algorithm to changing the code so that it will use more than one CPU at once to using a hand-optimized version, either written by us or imported from an external library.

To do anything, we have to know which part of the code is causing a problem. If we are dealing with a big legacy program, problematic part may be hard to find. In the rest of this chapter, we will look at different ways to locate such code. We'll start by taking an educated guess and then we'll improve that by measuring the code speed, first by using home-grown tools and then with a few different open source and commercial programs.

主站蜘蛛池模板: 新蔡县| 丰原市| 石首市| 鄂托克前旗| 措美县| 连州市| 十堰市| 襄城县| 祁阳县| 江陵县| 广灵县| 新巴尔虎右旗| 綦江县| 湾仔区| 永昌县| 梓潼县| 惠安县| 香格里拉县| 柘城县| 郁南县| 阳泉市| 长垣县| 靖远县| 阳山县| 喀喇| 张家港市| 凉山| 鹤壁市| 尼玛县| 宁武县| 岳阳县| 平乡县| 嵩明县| 大兴区| 通辽市| 泰和县| 霞浦县| 仁寿县| 亚东县| 星座| 龙岩市|