O'Reilly Open Source Convention.
Books Safari Bookshelf Conferences O'Reilly Network
   


Arrow Home
Arrow Registration
Arrow Speakers
Arrow Keynotes
Arrow Tutorials
Arrow Sessions
Arrow At-a-Glance
Arrow BOFs
Arrow Events
Arrow Community
 Software
Arrow Exhibitors
Arrow Sponsors
Arrow Hotel/Travel
Arrow Venue Map
Arrow See & Do
Arrow Press
Arrow Mail List


O'Reilly Open Source Convention
Hornbill.

Tutorial

Making Programs Faster: Benchmarking, Profiling, and Performance Tuning
Mark-Jason†Dominus, Plover Systems Co.

Track: Perl
Date: Monday, July 07
Time:†8:45am - 12:15pm
Location:†Salon I

Almost every application must be made to run faster; some sooner, some later. Performance tuning of applications has long been a dark art, understood by few and riddled with terrible pitfalls. Stories abound of optimization projects that took weeks but yielded a pathetic 2% decrease in total run time. Don't let this happen to you.

Dominusí class begins with a brief introduction to the basic concepts of performance tuning. We'll then take an extensive look at modules for benchmarking and profiling, including several common blunders that even experts commit when benchmarking. We'll finish with a discussion of a few of the most important optimizations.

Throughout, the class will emphasize both high- and low-level approaches to performance tuning: when to tune and when to try something different, and if tuning is necessary, how to focus your efforts where they will do the most good. We'll learn how to rationally evaluate programming situations and when to try alternative approaches.

Short introduction:
Basic concepts and tools: CPU, wallclock, system, and user times
I/O, CPU, and memory-bound programs
'time,' 'times,' Time::HiRes

Performance tuning tools:
Benchmarking: the cardinal rule of benchmarking (look at the big picture)
Benchmark.pm.
Common errors of commission and interpretation
The incredible shrinking test case
When two optimizations look like zero
The pseudo-hash disaster
Case studies: Speeding up regexes, numerical calculation.

Profiling:
The 90-10 rule
The Wrong Question
The Innermost Loop
Speeding up the case that never occurs
Standard profiling modules
Case study: high-turnaround XML processing.

Common optimizations:
When common optimizations don't work.



O'Reilly Home | Privacy Policy

© 2003, O'Reilly Media, Inc.