web application performance
DESCRIPTION
This is useful for any entry level web developer. It describes what is performance. Tools you can used to measure and optimize performance and steps to follow to do the same.TRANSCRIPT
Web application performance
1
Saturday, April 8, 2023
Presented by Pranjal Srivastava
What is performance?
Performance definition
• The accomplishment of a given task measured against preset known standards of accuracy, completeness, cost, and speed.
http://www.businessdictionary.com/definition/performance.html#ixzz2Y5INtXmj
• Performance is based on your “Perception”
Perception
Perception
What is web application performance?
Why application should perform well?
image courtesy “Times of India”
What is good / acceptable performance• Good performance is a relative term
– Varies based on type of applications– Varies based on type of usage
• What we say good today may not be good enough in future
• 5-8 Second is generally a threshold for a page to load on a web application
• For a rich web app (like gMail) initial load time may be higher but that’s a trade
off for rich UX inside app• AJAX and Use of animated gif to show that
page is loading…
Steps to optimize you application
• Measure performance
• Diagnose bottlenecks
• Fix issues
Measure
• Performance with single user
• Load it and monitor performance
• Monitor performance on Production server
– Identify bottlenecks
Diagnose problems
• JS / HTML level• Code Level• DB level• Server level• Network
Commonly used tools for diagnosis
• Slow query log– Generally 5-10 ms is considered reasonable query
performance • Yslow (http://developer.yahoo.com/yslow)/
Page speed (https://developers.google.com/speed/pagespeed/)
• Code profiling and optimization• Web based tools
– http://www.webpagetest.org– http://tools.pingdom.com
Diagnostic tools (Page Speed)
Diagnostic tools (webpagetest.org)
• Initial page load time• Repeat page load time• Filmstrip View• Video view of page load• Load times for each individual elements
Fix (Browser level)• XHTML
• DIV based design
• Optimized images
• No errors in code (Validated HTML)
Fix (Network level)• Reduce size of files
– Gzip (JS, CSS compression)– JS/ CSS minify (reduce size)– Image compression (reduce size)
• Use Content delivery network (CDN)– images, videos, audio clips, CSS files, JS files. – Browsers limit the number of concurrent connections
to a single domain. Most permit four active connections
– Distributed data center– Distribute the load, save bandwidth, boost
performance• Combine multiple web calls
Fix (Code level)• Code Profiling
• Review code
• Change Algorithms
• Generally avoided since it can lead to functional bugs
Fix (Server level)• Increase server size
– Shared host– VPS– Dedicated server – CPU / Memory
• Use Server Clusters– Load balancing– Sticky sessions
AWS Server layout
Fix (DB level)• Indexes
• Not more than 3 and at max 5 tables join
• MySQL query cache– query_cache_size (if set to 0 no cache)– query_cache_type (value on or 1)– query_cache_limit (max size limit)
• Optimize based on engine used (InnoDB, MyiSAM)
Fix (Advanced)
• Cache– Code level Cache– Varnish
• DB cache– Code level Cache– Memcache
About Presenter• Pranjal Srivastava is founder of CodeFire Technologies Pvt Lts.
• He has over 14 years of experience in technology consultancy, architecting enterprise systems and optimizing performance of web applications.
• He received his B.Tech from Institute of Technology - Banaras Hindu University, Varanasi, India
• He can be reached at [email protected]