Presentation - CF Conf Central

Download Report

Transcript Presentation - CF Conf Central

CF Performance Tuning
Matt Liotta
President & CEO
Montara Software, Inc.
Agenda
• Definitions
• Silver bullets
• What not to do
• How to get started
• Performance tuning techniques
•Q&A
Definitions
• Best practices
• Optimization
• Scalability
• Overhead
Silver Bullets
There are no silver bullets!!!
What Not To Do
1. Attempt to write optimized
code from the beginning
2. Write unreadable i.e. not
maintainable code that seems
to offer performance
advantages
3. Use techniques that you don’t
understand
How To Get Started
Hopefully with a highly structured
application
1. Load test your application
2. Find unacceptable bottlenecks
3. Use the following techniques
Performance Tuning Techniques
1.
2.
3.
4.
5.
6.
Caching
Database optimization
UI logic changes
Batch processing
Code optimization
Code rewriting
Caching
Just about any poorly written
application can performed
adequately with a proper
caching strategy
You can cache…
• Entire pages
• Parts of pages
• Backend logic e.g. queries
Caching (cont.)
• See code example
Database Optimization
Almost all poorly performing web
applications are a result database
interaction
Database interaction can be optimized by…
• Changing when and how often you query
• Using bind variables
• Using stored procedures
• Using joins correctly
• Using indexes correctly
• Not following proper database techniques
• Not using a database at all
Database Optimization (cont.)
• See code example
UI Logic Changes
Some performance problems can’t be
fixed with code alone because the
user interface simply requires to
much work to serve a request
A change in UI logic can…
• Drastically reduce the amount of
work needed to serve certain
requests
• Avoid redundant processing
UI Logic Changes (cont.)
• See code example
Batch Processing
Some web applications do work at
request time that could have been
done ahead of time
Batch processing can…
• Can reduce page execution time by
decoupling some of the work
• Allow programmatic control over
when certain work is done by an
application
Batch Processing (cont.)
• See code example
Code Optimization
Occasionally, the programming
logic is simply inefficient
Code optimization can…
• Speed up a request
• Reduce request overhead
Code Optimization (cont.)
• See code example
Code Rewriting
Rarely, parts of a web application
simply can’t be written well in
CFML
Rewriting code in another
language can…
• Reduce code complexity
• Reduce execution time
• Reduce overhead
Code Rewriting (cont.)
• See code example
Q&A
Matt Liotta
Blog: http://DevilM.com
Email: [email protected]