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

Don't guess, measure!

There is only one way to get a good picture about the fast and slow parts of a program—by measuring it. We can do it manually, by inserting time-measuring calls in the code, or we can use specialized tools. We have a name for measuring—profiling—and we call specialized tools for measuring profilers.

In the rest of this chapter, we'll look at different techniques of measuring the execution speed. First we will measure the now familiar program, SlowCode, with a simple software stopwatch and then we'll look at a few open source and commercial profilers.

Before we start, I'd like to point out a few basic rules that apply to all profiling techniques:

  • Always profile without the debugger. The debugger will slow the execution in unexpected places and that will skew the results. If you are starting your program from the Delphi IDE, just press Ctrl+Shift+F9 instead of F9.
  • Try not to do anything else on the computer while profiling. Other programs will take the CPU away from the measured program which will make it run slower.
  • Take care that the program doesn't wait for user action (data entry, button click) while profiling. This will completely skew the report.
  • Repeat the tests a few times. Execution times will differ because Windows (and any other OS that Delphi supports) will always execute other tasks besides running your program.
  • All the above especially holds for multithreaded programs, which is an area explored in Chapters 5 to 7.
主站蜘蛛池模板: 澎湖县| 高雄市| 万载县| 万全县| 普定县| 蒙自县| 葵青区| 榆林市| 申扎县| 湖南省| 界首市| 绥德县| 南江县| 嘉定区| 镇赉县| 江孜县| 西城区| 崇左市| 白水县| 商水县| 敦煌市| 南安市| 阜阳市| 绥阳县| 平潭县| 建始县| 陆丰市| 库尔勒市| 新民市| 蒙城县| 金阳县| 安平县| 宁夏| 阿拉善左旗| 洪湖市| 广宗县| 宜宾市| 额敏县| 即墨市| 杭锦后旗| 龙口市|