SlideShare a Scribd company logo
Performance Engineering by Franz See (DevCon Java Roadshow) (ValueCommerce) [email_address] http://twitter.com/franz_see
UI Performance Page Loading Optimization
Best Practices Optimizing caching  — keeping your application's data and logic  off  the network altogether Minimizing round-trip times  — reducing the number of serial request-response cycles Minimizing request size  — reducing upload size Minimizing payload size  — reducing the size of responses, downloads, and cached pages Optimizing browser rendering  — improving the browser's layout of a page
Optimize caching HTTP caching allows these resources to be saved, or cached, by a browser or proxy. Once a resource is cached, a browser or proxy can refer to the locally cached copy instead of having to download it again on subsequent visits to the web page. Thus caching is a double win: you reduce round-trip time by eliminating numerous HTTP requests for the required resources, and you substantially reduce the total payload size of the responses. Besides leading to a dramatic reduction in page load time for subsequent user visits, enabling caching can also significantly reduce the bandwidth and hosting costs for your site.

Recommended for you

EDB Postgres DBA Best Practices
EDB Postgres DBA Best PracticesEDB Postgres DBA Best Practices
EDB Postgres DBA Best Practices

This technical presentation shows you the best practices with EDB Postgres tools, that are designed to make database administration easier and more efficient: ● Tune a new database using Postgres Expert ● Set up streaming replication in EDB Postgres Enterprise Manager (PEM) ● Create a backup schedule in EDB Postgres Backup and Recovery ● Automatically failover with EDB Postgres Failover Manager ● Use SQL Profiler and Index Advisor to add indexes The presentation also included a demonstration. To access the recording visit www.enterprisedb.com and access the webcast recordings section or email info@enterprisedb.com.

 
by EDB
postgresrelational databaseedb
World Wide Web Caching
World Wide Web CachingWorld Wide Web Caching
World Wide Web Caching

Web caching provides several benefits including bandwidth savings, reducing server load, and decreasing network latency. It works by intercepting HTTP requests and checking a local cache for the requested object before going to the origin server. Different caching approaches include proxy caching, reverse proxy caching, transparent proxy caching, and hierarchical caching. New techniques like adaptive caching and push caching aim to dynamically optimize cache placement near popular content or users.

QSpiders - Installation and Brief Dose of Load Runner
QSpiders - Installation and Brief Dose of Load RunnerQSpiders - Installation and Brief Dose of Load Runner
QSpiders - Installation and Brief Dose of Load Runner

The document provides information on performance testing processes and tools. It outlines 8 key steps: 1) create scripts, 2) create test scenarios, 3) execute load testing, 4) analyze results, 5) test reporting, 6) performance tuning, 7) communication planning, and 8) troubleshooting. It also discusses tools like LoadRunner, Controller, and Analysis for executing and analyzing tests. The document emphasizes having a thorough test process and communication plan to ensure performance testing is done correctly.

qspiders
Optimize caching Leverage browser caching -  Setting an expiry date or a maximum age in the HTTP headers for static resources allows the browser to load previously downloaded resources from local disk rather than over the network. Leverage proxy caching -  Enabling public caching in the HTTP headers for static resources allows the browser to download resources from a nearby proxy server rather than from a remoter origin server.
Minimize round-trip times Round-trip time (RTT) is the time it takes for a client to send a request and the server to send a response over the network, not including the time required for data transfer. That is, it includes the back-and-forth time on the wire, but excludes the time to fully download the transferred bytes (and is therefore unrelated to bandwidth). For example, for a browser to initiate a first-time connection with a web server, it must incur a minimum of 3 RTTs: 1 RTT for DNS name resolution; 1 RTT for TCP connection setup; and 1 RTT for the HTTP request and first byte of the HTTP response. Many web pages require dozens of RTTs.
Minimize round-trip times  Minimize DNS lookups -  Reducing the number of unique hostnames from which resources are served cuts down on the number of DNS resolutions that the browser has to make, and therefore, RTT delays. Minimize redirects -  Minimizing HTTP redirects from one URL to another cuts out additional RTTs and wait time for users. Combine external JavaScript -  Combining external scripts into as few files as possible cuts down on RTTs and delays in downloading other resources.
Minimize request size Every time a client sends an HTTP request, it has to send all associated cookies that have been set for that domain and path along with it. Most users have asymmetric Internet connections: upload-to-download bandwidth ratios are commonly in the range of 1:4 to 1:20. This means that a 500-byte HTTP header request could take the equivalent time to upload as 10 KB of HTTP response data takes to download. The factor is actually even higher because HTTP request headers are sent uncompressed. In other words, for requests for small objects (say, less than 10 KB, the typical size of a compressed image), the data sent in a request header can account for the majority of the response time.

Recommended for you

Weblogic performance tuning2
Weblogic performance tuning2Weblogic performance tuning2
Weblogic performance tuning2

The document discusses performance tuning topics in WebLogic Server including tuning EJBs, JMS, web applications, web services, and JDBC. It provides guidance on understanding performance objectives such as anticipated users, requests, data, and target CPU utilization. It also discusses monitoring disk and CPU utilization, bottlenecks, and provides specific tuning recommendations for EJBs, MDB pools, stateless session bean pools, entity bean pools, and JMS.

Weblogic plug in
Weblogic plug inWeblogic plug in
Weblogic plug in

The document discusses the WebLogic Server plugin which allows WebLogic Server to communicate with other web servers like Apache HTTP Server and Microsoft IIS. It specifically focuses on the Apache HTTP Server plugin, describing how it allows requests to be proxied from Apache to WebLogic Server so that dynamic functionality is handled by WebLogic Server. It provides instructions for installing the Apache plugin, which involves copying files and configuring Apache modules, and testing the installation.

Understanding Web Cache
Understanding Web CacheUnderstanding Web Cache
Understanding Web Cache

Overview of using cache on websites and some of the implementations of improving your sites performance through cache.

prodigyviewcachephp
Minimize request size Minimize cookie size -  Keeping cookies as small as possible ensures that an HTTP request can fit into a single packet. Serve static content from a cookieless domain -  Serving static resources from a cookieless domain reduces the total size of requests made for a page.
Minimize payload size The amount of data sent in each server response can add significant latency to your application, especially in areas where bandwidth is constrained. In addition to the network cost of the actual bytes transmitted, there is also a penalty incurred for crossing an IP packet boundary. (The maximum packet size, or Maximum Transmission Unit (MTU), is 1500 bytes on an Ethernet network, but varies on other types of networks.) Unfortunately, since it's difficult to know which bytes will cross a packet boundary, the best practice is to simply reduce the number of packets your server transmits, and strive to keep them under 1500 bytes wherever possible.
Minimize payload size Enable gzip compression -  Compressing resources with gzip can reduce the number of bytes sent over the network. Remove unused CSS -  Removing or deferring style rules that are not used by a document avoid downloads unnecessary bytes and allow the browser to start rendering sooner.  Minify JavaScript -  Compacting JavaScript code can save many bytes of data and speed up downloading, parsing, and execution time.
Minimize payload size Defer loading of JavaScript -  Deferring loading of JavaScript functions that are not called at startup reduces the initial download size, allowing other resources to be downloaded in parallel, and speeding up execution and rendering time. Optimize images -  Properly formatting, sizing, and losslessly compressing images can save many bytes of data. Serve resources from a consistent URL -  It's important to serve a resource from a unique URL, to eliminate duplicate download bytes and additional RTTs.

Recommended for you

Weblogic performance tuning1
Weblogic performance tuning1Weblogic performance tuning1
Weblogic performance tuning1

Performance tuning in WebLogic Server involves tuning various components like EJBs, JMS, web applications, and web services. It is important to understand performance objectives like anticipated load and target CPU utilization. Monitoring disk, CPU, and network utilization helps identify bottlenecks. Common tuning techniques include optimizing pooling, caching, threading, and disabling unnecessary processing.

SharePoint 2013 Performance Analysis - Robi Vončina
SharePoint 2013 Performance Analysis - Robi VončinaSharePoint 2013 Performance Analysis - Robi Vončina
SharePoint 2013 Performance Analysis - Robi Vončina

This session introduces tools that can help you analyze and troubleshoot performance with SharePoint 2013. This sessions presents tools like perfmon, Fiddler, Visual Round Trip Analyzer, IIS LogParser, Developer Dashboard and of course we create Web and Load Tests in Visual Studio 2013. At the end we also take a look at some of the tips and best practices to improve performance on SharePoint 2013.

sharepointperformance
The Magic of Tuning in PostgreSQL
The Magic of Tuning in PostgreSQLThe Magic of Tuning in PostgreSQL
The Magic of Tuning in PostgreSQL

Save costs on expensive Proprietary Software Licences and high-priced Hardware Solutions. Check this out!

proprietary software licencesashnikashnik pte ltd
Optimize browser rendering Once resources have been downloaded to the client, the browser still needs to load, interpret, and render HTML, CSS, and Javascript code. By simply formatting your code and pages in ways that exploit the characteristics of current browsers, you can enhance performance on the client side.
Optimize browser rendering Use efficient CSS selectors -  Avoiding inefficient key selectors that match large numbers of elements can speed up page rendering. Avoid CSS expressions -  CSS expressions degrade rendering performance; replacing them with alternatives will improve browser rendering for IE users. This best practices in this section apply only to Internet Explorer 5 through 7, which support CSS expressions. Put CSS in the document head -  Moving inline style blocks and <link> elements from the document body to the document head improves rendering performance. Specify image dimensions -  Specifying a width and height for all images allows for faster rendering by eliminating the need for unnecessary reflows and repaints.
Tips and Tricks Remove all 404 resources. Access logs to check 404 resources. grep 'HTTP/1.1&quot; 404' access.log Put CSS at the top, and CSS first before JS Put JS at the end of the page Set a reasonable buffer size for JSP for eager loading if possible divisible by 1500 bytes. <%@ page buffer=&quot;36kb&quot; %>
Tips and Tricks Enable GZIP using GZIP filter for text content types Pre GZIP Text static resources (Custom ant task) Compress images Page speed provides you with the compressed image https://developer.yahoo.com/yslow/smushit/ Minify JavaScript, CSS or even dynamic (JSP) contents YUI compressor from Yahoo! Closure Tools from Google Combining of external JavaScript and CSS resources Custom ant tasks CSS sprites http://csssprites.com/

Recommended for you

Implementing High Performance Drupal Sites
Implementing High Performance Drupal SitesImplementing High Performance Drupal Sites
Implementing High Performance Drupal Sites

UniMity's substantial presence in Drupal Camp Deccan 11-11-11 in HYD. Audience were just applauding with gusto at the end of our presentation (How to build and maintain high performance websites)

drupalhigh trafficcache
Optimiszing proxy
Optimiszing proxyOptimiszing proxy
Optimiszing proxy

This document discusses various techniques for optimizing proxy server performance, including: 1) Establishing baseline performance metrics and monitoring the server to identify bottlenecks. Common bottlenecks include incorrect settings, faulty resources, insufficient resources, or applications hogging resources. 2) Caching web content and using proxy arrays, network load balancing, or round robin DNS to distribute load across multiple proxy servers for improved performance and high availability. 3) Monitoring server components like CPU usage, memory usage, disk performance, and network bandwidth to identify optimization opportunities.

proxy server
Building a Scalable Architecture for web apps
Building a Scalable Architecture for web appsBuilding a Scalable Architecture for web apps
Building a Scalable Architecture for web apps

Visit http://wiki.directi.com/x/LwAj for the video. This is a presentation I delivered at the Great Indian Developer Summit 2008. It covers a wide-array of topics and a plethora of lessons we have learnt (some the hard way) over the last 9 years in building web apps that are used by millions of users serving billions of page views every month. Topics and Techniques include Vertical scaling, Horizontal Scaling, Vertical Partitioning, Horizontal Partitioning, Loose Coupling, Caching, Clustering, Reverse Proxying and more.

horizontalpartitioningcachingscaling
Tips and Tricks Browser caching using http header Cache-Control response header with at least one month expiration Ideally for static resources, and can be done also on get Ajax calls Caching of asynchronous call results (page scope) Progressive loading using Ajax Deferred loading
Tips and Tricks Use performance analyzer tools Yslow! from Yahoo! Page speed from Google
Possible UI Performance Drawback Maintainability  Support for JavaScript debugging is now impossible Minify JavaScript and CSS resources Combining of external JavaScript and CSS resources
References http://code.google.com/speed/page-speed/docs/rules_intro.html https://developer.yahoo.com/yslow/ https://developer.yahoo.com/yslow/smushit/ http://csssprites.com/ http://developer.yahoo.com/yui/compressor/ http://code.google.com/closure/

Recommended for you

Weblogic security
Weblogic securityWeblogic security
Weblogic security

WebLogic Security provides a comprehensive security architecture for securing WebLogic Server applications. It includes features such as authentication, authorization, auditing, identity assertion, and supports standards like SAML, JAAS, and WS-Security. The security service can be used standalone or as part of an enterprise security solution. It aims to balance ease of use with customizability and provides both default and customizable security providers.

Writing Scalable Software in Java
Writing Scalable Software in JavaWriting Scalable Software in Java
Writing Scalable Software in Java

Writing Scalable Software in Java - From multi-core to grid-computing

javascalability
Scalable Integration with JBoss Fuse
Scalable Integration with JBoss FuseScalable Integration with JBoss Fuse
Scalable Integration with JBoss Fuse

Slides on how to process large data, such as how to handle large amount of incoming frequent inputs, large Object or documents and how to provide data to massive amount of clients

jboss fuseintegrationjboss data grid
Back End Performance Engineering
Problems? Slow down Out of Memory
What are they? Profiler A form of Dynamic Program Analysis for  Improving performance Heap Analysis Tool Tool for analyzing heap dumps
Example

Recommended for you

OTM in the Cloud - OTM SIG 2012
OTM in the Cloud - OTM SIG 2012OTM in the Cloud - OTM SIG 2012
OTM in the Cloud - OTM SIG 2012

As interest in cloud solutions and their use with enterprise applications has increased, MavenWire has taken a lead in implementing and benchmarking several instances of OTM using Amazon Web Services (AWS) and Elastic Cloud Compute (EC2). This presentation outlines how the instances were set up and configured; potential benefits of OTM in the cloud; cost and performance comparisons between the cloud and "traditional" server configurations; areas of concern and issues to be aware of when implementing OTM in the cloud. In addition, we will also outline what we believe the future direction of cloud OTM will be, as well as where we believe it is best suited to customer needs.

benchmarkingperformanceotm
Scalable Text File Service with MongoDB (Intuit)
Scalable Text File Service with MongoDB (Intuit)Scalable Text File Service with MongoDB (Intuit)
Scalable Text File Service with MongoDB (Intuit)

Docstoc.com (founded in 2007, acquired by Intuit in 2013) is one of the largest online repositories of documents. A critical component of our product is our text file service, which delivers text documents to both humans and crawlers. In early 2013 this service, which was file system based, became a prohibitive bottleneck. To meet our scaling needs, we replaced it with one backed by a sharded MongoDB cluster. This talk will cover: Our traffic load (5:1 bots:humans ratio) How we implemented the system in our SOA environment How MongoDB fit our use case out of the box How we load tested peak time traffic before hardware purchase How we loaded the system and how we rolled it out live Performance metrics and gains in stability and reliability

mongodb world
Testing in-groovy
Testing in-groovyTesting in-groovy
Testing in-groovy

This document discusses unit testing in Groovy. It begins with reviewing basics of unit test structure and organization, including parts of a test like annotations and assertions, and different styles of organizing tests by class, feature, or fixture. The document then provides an example of a Groovy unit test for a game board, showing how to test for exceptions from invalid moves and assert that valid moves are properly marked on the board. It concludes with references for further reading on testing patterns and practices.

groovy unit test
Example
Example
Popular Profiling Tools Paid JProfiler YourKit Free Eclipse TPTP Netbeans Profiler Visual VM (comes with java 6u7)
Popular Heap Analysis Tools Jhat Eclipse Memory Analyzer Tool <Profiling tools>

Recommended for you

Ui perf
Ui perfUi perf
Ui perf

Optimizing web page performance involves minimizing round trips, request sizes, and payload sizes. This includes leveraging browser caching, combining and minifying assets, gzip compression, and optimizing images. Developer tools can identify optimization opportunities like unused resources and suggest techniques for faster loading and rendering.

web ui performance
Presentation1
Presentation1Presentation1
Presentation1

Gowebbaby is a global web design company that has designed over 500 custom WordPress websites and 1000 blogs. There are several major issues that can cause a WordPress website to run slowly, including unwanted plugins, lack of caching, poor hosting, database optimization issues, and using an outdated version of WordPress. The document provides tips in each area to improve website speed, such as disabling unused plugins, installing a caching plugin, choosing a fast hosting provider, optimizing the database, and upgrading to the latest version.

wordpress designerwordpress designwordpress developer
WordCamp RVA 2011 - Performance & Tuning
WordCamp RVA 2011 - Performance & TuningWordCamp RVA 2011 - Performance & Tuning
WordCamp RVA 2011 - Performance & Tuning

This document discusses optimizing WordPress performance. It recommends minimizing frontend assets like CSS and images, using caching plugins to improve load times, optimizing themes and plugins, and choosing a fast web server like Nginx. Real-world tests show Nginx outperforming Apache. Specific tips include simplifying themes, deleting unused plugins, moving scripts to the bottom, and using a CDN with caching plugins to serve static assets quickly. The document emphasizes improving perceived performance through responsiveness, feedback and progressive loading.

wordpressplugintuning
Common Profiling Views Self Tree Telemetry CPU Duration Per Method Call Tree CPU Load Memory Size per object of type Dominator Tree Memory Load Thread Duration per thread (---) (---)
Heap Analysis Quick recap of the Java Memory Model Learning to generate heap dumps (hprof) Setting up the Eclipse Memory Analyzer Tool The 3 basic reports – Overview, Leak Suspects, and Top Components The 'other' features
Java Memory Model Heap Young GEn Par Eden Space Par Survivor Space CMS Old Gen Non-Heap Code Cache CMS Perm Gen More info:  http://download.oracle.com/javase/6/docs/ ...  ...technotes/guides/management/jconsole.html
Generate HPROF -XX:+HeapDumpOnOutOfMemoryError jmap -heap:format=b <pid> jmap.exe -dump:format=b,file=HeapDump.hprof <pid> More info : http://wiki.eclipse.org/index.php/MemoryAnalyzer#Getting_a_Heap_Dump

Recommended for you

High Performance - Joomla!Days NL 2009 #jd09nl
High Performance - Joomla!Days NL 2009 #jd09nlHigh Performance - Joomla!Days NL 2009 #jd09nl
High Performance - Joomla!Days NL 2009 #jd09nl

This document provides an overview of optimizing the performance of Joomla! websites. It discusses basic principles like using content delivery networks and combining files. It recommends preparing Joomla! with tools like Firebug and enabling caching. Specific optimizations for templates and content are covered, like image resizing and subdomain delivery. Hosting configuration tips include MySQL optimization and using a CDN. The document uses a case study example and concludes with thanks.

joomlajd09nljoomladays
Robotframework Presentation - Pinoy Python Meetup 2011January12
Robotframework Presentation - Pinoy Python Meetup 2011January12Robotframework Presentation - Pinoy Python Meetup 2011January12
Robotframework Presentation - Pinoy Python Meetup 2011January12

Robotframework is a keyword-driven testing framework for acceptance testing and automation. It uses Python and allows testing web applications using libraries like SeleniumLibrary. Tests are written using an easy syntax and can be run from the command line. Results include logs, reports, and pass/fail information. Custom libraries can also be created and distributed for use within Robotframework tests.

philippinepythonfilipino
Oracle UCM: Web Site Performance Tuning
Oracle UCM: Web Site Performance TuningOracle UCM: Web Site Performance Tuning
Oracle UCM: Web Site Performance Tuning

A talk on how to optimize the Oracle Content Management System, and Site Studio in particular, for faster pages.

performanceweboracle
Setup Eclipse MAT Home Page : http://www.eclipse.org/mat/ Download Page : http://www.eclipse.org/mat/downloads.php Quick Start: http://wiki.eclipse.org/index.php/MemoryAnalyzer
3 Basic Reports Overview Leak Suspects Top Components
The 'other' features. Histogram Dominator Tree OQL
OQL

Recommended for you

Configuring Apache Servers for Better Web Perormance
Configuring Apache Servers for Better Web PerormanceConfiguring Apache Servers for Better Web Perormance
Configuring Apache Servers for Better Web Perormance

Apache is the most popular web server in the world, yet its default configuration can't handle high traffic. Learn how to setup Apache for high performance sites and leverage many of its available modules to deliver a faster web experience for your users. Discover how Apache can max out a 1 Gbps NIC and how to serve over 140,000 pages per minute with a small Apache cluster. This presentation was given by Spark::red's founding partner Devon Hillard in March 2012 at the Boston Web Performance Meetup.

sparkred; spark::red; apache
Browser Caching
Browser CachingBrowser Caching
Browser Caching

This document discusses browser caching and techniques to improve website performance through caching. Browser caching involves temporarily storing recently visited web pages on a user's hard disk to load them faster during the same browsing session. Making fewer HTTP requests, adding expires headers, using content delivery networks, and leveraging browser caching directives like Cache-Control can help optimize caching. Common file types like CSS, JavaScript, images that should be cached are also mentioned. The document provides details on various caching strategies and their benefits like reducing bandwidth usage and loading websites faster.

browser cachingcdncontent delivery networks (cdn).
Tips to improve your website performance
Tips to improve your website performanceTips to improve your website performance
Tips to improve your website performance

Are you trying to improve your website performance? Read the blog to find some handpicked strategies. Implement these and note the difference! https://www.webguru-india.com/blog/tips-to-improve-your-website-performance/

website development companywebsite design services
Histogram
 
Last Tips & Tricks 1.) Premature Optmization is the source of all evil 2.) Validate Assumptions 3.) Avoid blind fixes as much as possible 4.) Differentiate between CPU & IO 5.) Work Together
Thank You Questions? [email_address] http://devworks.devcon.ph http://devcon.ph http://facebook.com/DevConPH http://twitter.com/DevConPH http://twitter.com/franz_see

Recommended for you

Frontend performance
Frontend performanceFrontend performance
Frontend performance

The document provides best practices for optimizing frontend performance by reducing page load time. It discusses ways to reduce the number of HTTP requests, DNS lookups, redirects and duplicate scripts. It also recommends techniques like minifying assets, leveraging caching, prioritizing critical components, optimizing images and using content delivery networks.

performancefrontend
Client-side Website Optimization
Client-side Website OptimizationClient-side Website Optimization
Client-side Website Optimization

Did you know that 80% to 90% of the user's page-load time comes from components outside the firewall? Optimizing performance on the front end (e.g. from the client side) can enhance the user experience by reducing the response times of your web pages and making them load and render much faster.

assignmentwadeinfoiasi
Improving web site performance and scalability while saving
Improving web site performance and scalability while savingImproving web site performance and scalability while saving
Improving web site performance and scalability while saving

This document discusses various techniques for improving web site performance and scalability while reducing costs, including: 1. Optimizing code to reduce HTTP requests and payload size. 2. Leveraging browser caching through content expiration, HTTP compression, and cache validation. 3. Minifying and consolidating CSS and JavaScript files. 4. Using a content delivery network (CDN) to distribute static assets globally. 5. Caching data and view state to reduce database queries and payload size.

More Related Content

What's hot

Stress Test Drupal on Amazon EC2 vs. RackSpace cloud
Stress Test Drupal on Amazon EC2 vs. RackSpace cloudStress Test Drupal on Amazon EC2 vs. RackSpace cloud
Stress Test Drupal on Amazon EC2 vs. RackSpace cloud
Andy Kucharski
 
Optimiszing proxy
Optimiszing proxyOptimiszing proxy
Optimiszing proxy
Proxies Rent
 
Make Drupal Run Fast - increase page load speed
Make Drupal Run Fast - increase page load speedMake Drupal Run Fast - increase page load speed
Make Drupal Run Fast - increase page load speed
Andy Kucharski
 
EDB Postgres DBA Best Practices
EDB Postgres DBA Best PracticesEDB Postgres DBA Best Practices
EDB Postgres DBA Best Practices
EDB
 
World Wide Web Caching
World Wide Web CachingWorld Wide Web Caching
World Wide Web Caching
ersanbilik
 
QSpiders - Installation and Brief Dose of Load Runner
QSpiders - Installation and Brief Dose of Load RunnerQSpiders - Installation and Brief Dose of Load Runner
QSpiders - Installation and Brief Dose of Load Runner
Qspiders - Software Testing Training Institute
 
Weblogic performance tuning2
Weblogic performance tuning2Weblogic performance tuning2
Weblogic performance tuning2
Aditya Bhuyan
 
Weblogic plug in
Weblogic plug inWeblogic plug in
Weblogic plug in
Aditya Bhuyan
 
Understanding Web Cache
Understanding Web CacheUnderstanding Web Cache
Understanding Web Cache
ProdigyView
 
Weblogic performance tuning1
Weblogic performance tuning1Weblogic performance tuning1
Weblogic performance tuning1
Aditya Bhuyan
 
SharePoint 2013 Performance Analysis - Robi Vončina
SharePoint 2013 Performance Analysis - Robi VončinaSharePoint 2013 Performance Analysis - Robi Vončina
SharePoint 2013 Performance Analysis - Robi Vončina
SPC Adriatics
 
The Magic of Tuning in PostgreSQL
The Magic of Tuning in PostgreSQLThe Magic of Tuning in PostgreSQL
The Magic of Tuning in PostgreSQL
Ashnikbiz
 
Implementing High Performance Drupal Sites
Implementing High Performance Drupal SitesImplementing High Performance Drupal Sites
Implementing High Performance Drupal Sites
Shri Kumar
 
Optimiszing proxy
Optimiszing proxyOptimiszing proxy
Optimiszing proxy
Proxies Rent
 
Building a Scalable Architecture for web apps
Building a Scalable Architecture for web appsBuilding a Scalable Architecture for web apps
Building a Scalable Architecture for web apps
Directi Group
 
Weblogic security
Weblogic securityWeblogic security
Weblogic security
Aditya Bhuyan
 
Writing Scalable Software in Java
Writing Scalable Software in JavaWriting Scalable Software in Java
Writing Scalable Software in Java
Ruben Badaró
 
Scalable Integration with JBoss Fuse
Scalable Integration with JBoss FuseScalable Integration with JBoss Fuse
Scalable Integration with JBoss Fuse
Christina Lin
 
OTM in the Cloud - OTM SIG 2012
OTM in the Cloud - OTM SIG 2012OTM in the Cloud - OTM SIG 2012
OTM in the Cloud - OTM SIG 2012
MavenWire
 
Scalable Text File Service with MongoDB (Intuit)
Scalable Text File Service with MongoDB (Intuit)Scalable Text File Service with MongoDB (Intuit)
Scalable Text File Service with MongoDB (Intuit)
MongoDB
 

What's hot (20)

Stress Test Drupal on Amazon EC2 vs. RackSpace cloud
Stress Test Drupal on Amazon EC2 vs. RackSpace cloudStress Test Drupal on Amazon EC2 vs. RackSpace cloud
Stress Test Drupal on Amazon EC2 vs. RackSpace cloud
 
Optimiszing proxy
Optimiszing proxyOptimiszing proxy
Optimiszing proxy
 
Make Drupal Run Fast - increase page load speed
Make Drupal Run Fast - increase page load speedMake Drupal Run Fast - increase page load speed
Make Drupal Run Fast - increase page load speed
 
EDB Postgres DBA Best Practices
EDB Postgres DBA Best PracticesEDB Postgres DBA Best Practices
EDB Postgres DBA Best Practices
 
World Wide Web Caching
World Wide Web CachingWorld Wide Web Caching
World Wide Web Caching
 
QSpiders - Installation and Brief Dose of Load Runner
QSpiders - Installation and Brief Dose of Load RunnerQSpiders - Installation and Brief Dose of Load Runner
QSpiders - Installation and Brief Dose of Load Runner
 
Weblogic performance tuning2
Weblogic performance tuning2Weblogic performance tuning2
Weblogic performance tuning2
 
Weblogic plug in
Weblogic plug inWeblogic plug in
Weblogic plug in
 
Understanding Web Cache
Understanding Web CacheUnderstanding Web Cache
Understanding Web Cache
 
Weblogic performance tuning1
Weblogic performance tuning1Weblogic performance tuning1
Weblogic performance tuning1
 
SharePoint 2013 Performance Analysis - Robi Vončina
SharePoint 2013 Performance Analysis - Robi VončinaSharePoint 2013 Performance Analysis - Robi Vončina
SharePoint 2013 Performance Analysis - Robi Vončina
 
The Magic of Tuning in PostgreSQL
The Magic of Tuning in PostgreSQLThe Magic of Tuning in PostgreSQL
The Magic of Tuning in PostgreSQL
 
Implementing High Performance Drupal Sites
Implementing High Performance Drupal SitesImplementing High Performance Drupal Sites
Implementing High Performance Drupal Sites
 
Optimiszing proxy
Optimiszing proxyOptimiszing proxy
Optimiszing proxy
 
Building a Scalable Architecture for web apps
Building a Scalable Architecture for web appsBuilding a Scalable Architecture for web apps
Building a Scalable Architecture for web apps
 
Weblogic security
Weblogic securityWeblogic security
Weblogic security
 
Writing Scalable Software in Java
Writing Scalable Software in JavaWriting Scalable Software in Java
Writing Scalable Software in Java
 
Scalable Integration with JBoss Fuse
Scalable Integration with JBoss FuseScalable Integration with JBoss Fuse
Scalable Integration with JBoss Fuse
 
OTM in the Cloud - OTM SIG 2012
OTM in the Cloud - OTM SIG 2012OTM in the Cloud - OTM SIG 2012
OTM in the Cloud - OTM SIG 2012
 
Scalable Text File Service with MongoDB (Intuit)
Scalable Text File Service with MongoDB (Intuit)Scalable Text File Service with MongoDB (Intuit)
Scalable Text File Service with MongoDB (Intuit)
 

Viewers also liked

Testing in-groovy
Testing in-groovyTesting in-groovy
Testing in-groovy
Franz Allan See
 
Ui perf
Ui perfUi perf
Presentation1
Presentation1Presentation1
Presentation1
Rosie brown
 
WordCamp RVA 2011 - Performance & Tuning
WordCamp RVA 2011 - Performance & TuningWordCamp RVA 2011 - Performance & Tuning
WordCamp RVA 2011 - Performance & Tuning
Timothy Wood
 
High Performance - Joomla!Days NL 2009 #jd09nl
High Performance - Joomla!Days NL 2009 #jd09nlHigh Performance - Joomla!Days NL 2009 #jd09nl
High Performance - Joomla!Days NL 2009 #jd09nl
Joomla!Days Netherlands
 
Robotframework Presentation - Pinoy Python Meetup 2011January12
Robotframework Presentation - Pinoy Python Meetup 2011January12Robotframework Presentation - Pinoy Python Meetup 2011January12
Robotframework Presentation - Pinoy Python Meetup 2011January12
Franz Allan See
 

Viewers also liked (6)

Testing in-groovy
Testing in-groovyTesting in-groovy
Testing in-groovy
 
Ui perf
Ui perfUi perf
Ui perf
 
Presentation1
Presentation1Presentation1
Presentation1
 
WordCamp RVA 2011 - Performance & Tuning
WordCamp RVA 2011 - Performance & TuningWordCamp RVA 2011 - Performance & Tuning
WordCamp RVA 2011 - Performance & Tuning
 
High Performance - Joomla!Days NL 2009 #jd09nl
High Performance - Joomla!Days NL 2009 #jd09nlHigh Performance - Joomla!Days NL 2009 #jd09nl
High Performance - Joomla!Days NL 2009 #jd09nl
 
Robotframework Presentation - Pinoy Python Meetup 2011January12
Robotframework Presentation - Pinoy Python Meetup 2011January12Robotframework Presentation - Pinoy Python Meetup 2011January12
Robotframework Presentation - Pinoy Python Meetup 2011January12
 

Similar to Performance engineering

Oracle UCM: Web Site Performance Tuning
Oracle UCM: Web Site Performance TuningOracle UCM: Web Site Performance Tuning
Oracle UCM: Web Site Performance Tuning
Brian Huff
 
Configuring Apache Servers for Better Web Perormance
Configuring Apache Servers for Better Web PerormanceConfiguring Apache Servers for Better Web Perormance
Configuring Apache Servers for Better Web Perormance
Spark::red
 
Browser Caching
Browser CachingBrowser Caching
Browser Caching
Jaiswal Siddharth
 
Tips to improve your website performance
Tips to improve your website performanceTips to improve your website performance
Tips to improve your website performance
WebGuru Infosystems Pvt. Ltd.
 
Frontend performance
Frontend performanceFrontend performance
Frontend performance
sacred 8
 
Client-side Website Optimization
Client-side Website OptimizationClient-side Website Optimization
Client-side Website Optimization
Radu Pintilie
 
Improving web site performance and scalability while saving
Improving web site performance and scalability while savingImproving web site performance and scalability while saving
Improving web site performance and scalability while saving
mdc11
 
DrupalCampLA 2011 - Drupal frontend-optimizing
DrupalCampLA 2011 - Drupal frontend-optimizingDrupalCampLA 2011 - Drupal frontend-optimizing
DrupalCampLA 2011 - Drupal frontend-optimizing
Ashok Modi
 
Client Side Performance @ Xero
Client Side Performance @ XeroClient Side Performance @ Xero
Client Side Performance @ Xero
Craig Walker
 
Web Performance, Scalability, and Testing Techniques - Boston PHP Meetup
Web Performance, Scalability, and Testing Techniques - Boston PHP MeetupWeb Performance, Scalability, and Testing Techniques - Boston PHP Meetup
Web Performance, Scalability, and Testing Techniques - Boston PHP Meetup
Jonathan Klein
 
Web performance Talk
Web performance TalkWeb performance Talk
Web performance Talk
Prasoon Agrawal
 
Web site loading time optimization
Web site loading time optimizationWeb site loading time optimization
Web site loading time optimization
Damith Kothalawala
 
Web Site Optimization
Web Site OptimizationWeb Site Optimization
Web Site Optimization
Sunil Patil
 
Web site optimization
Web site optimizationWeb site optimization
Web site optimization
Sunil Patil
 
Reducing latency on the web with the Azure CDN - DevSum - SWAG
Reducing latency on the web with the Azure CDN - DevSum - SWAGReducing latency on the web with the Azure CDN - DevSum - SWAG
Reducing latency on the web with the Azure CDN - DevSum - SWAG
Maarten Balliauw
 
Website Performance at Client Level
Website Performance at Client LevelWebsite Performance at Client Level
Website Performance at Client Level
Constantin Stan
 
Dynamic Content Acceleration: Lightning Fast Web Apps with Amazon CloudFront ...
Dynamic Content Acceleration: Lightning Fast Web Apps with Amazon CloudFront ...Dynamic Content Acceleration: Lightning Fast Web Apps with Amazon CloudFront ...
Dynamic Content Acceleration: Lightning Fast Web Apps with Amazon CloudFront ...
Amazon Web Services
 
AJAX for Scalability
AJAX for ScalabilityAJAX for Scalability
AJAX for Scalability
Tuenti
 
Ajax For Scalability
Ajax For ScalabilityAjax For Scalability
Ajax For Scalability
erikschultink
 
Web Speed And Scalability
Web Speed And ScalabilityWeb Speed And Scalability
Web Speed And Scalability
Jason Ragsdale
 

Similar to Performance engineering (20)

Oracle UCM: Web Site Performance Tuning
Oracle UCM: Web Site Performance TuningOracle UCM: Web Site Performance Tuning
Oracle UCM: Web Site Performance Tuning
 
Configuring Apache Servers for Better Web Perormance
Configuring Apache Servers for Better Web PerormanceConfiguring Apache Servers for Better Web Perormance
Configuring Apache Servers for Better Web Perormance
 
Browser Caching
Browser CachingBrowser Caching
Browser Caching
 
Tips to improve your website performance
Tips to improve your website performanceTips to improve your website performance
Tips to improve your website performance
 
Frontend performance
Frontend performanceFrontend performance
Frontend performance
 
Client-side Website Optimization
Client-side Website OptimizationClient-side Website Optimization
Client-side Website Optimization
 
Improving web site performance and scalability while saving
Improving web site performance and scalability while savingImproving web site performance and scalability while saving
Improving web site performance and scalability while saving
 
DrupalCampLA 2011 - Drupal frontend-optimizing
DrupalCampLA 2011 - Drupal frontend-optimizingDrupalCampLA 2011 - Drupal frontend-optimizing
DrupalCampLA 2011 - Drupal frontend-optimizing
 
Client Side Performance @ Xero
Client Side Performance @ XeroClient Side Performance @ Xero
Client Side Performance @ Xero
 
Web Performance, Scalability, and Testing Techniques - Boston PHP Meetup
Web Performance, Scalability, and Testing Techniques - Boston PHP MeetupWeb Performance, Scalability, and Testing Techniques - Boston PHP Meetup
Web Performance, Scalability, and Testing Techniques - Boston PHP Meetup
 
Web performance Talk
Web performance TalkWeb performance Talk
Web performance Talk
 
Web site loading time optimization
Web site loading time optimizationWeb site loading time optimization
Web site loading time optimization
 
Web Site Optimization
Web Site OptimizationWeb Site Optimization
Web Site Optimization
 
Web site optimization
Web site optimizationWeb site optimization
Web site optimization
 
Reducing latency on the web with the Azure CDN - DevSum - SWAG
Reducing latency on the web with the Azure CDN - DevSum - SWAGReducing latency on the web with the Azure CDN - DevSum - SWAG
Reducing latency on the web with the Azure CDN - DevSum - SWAG
 
Website Performance at Client Level
Website Performance at Client LevelWebsite Performance at Client Level
Website Performance at Client Level
 
Dynamic Content Acceleration: Lightning Fast Web Apps with Amazon CloudFront ...
Dynamic Content Acceleration: Lightning Fast Web Apps with Amazon CloudFront ...Dynamic Content Acceleration: Lightning Fast Web Apps with Amazon CloudFront ...
Dynamic Content Acceleration: Lightning Fast Web Apps with Amazon CloudFront ...
 
AJAX for Scalability
AJAX for ScalabilityAJAX for Scalability
AJAX for Scalability
 
Ajax For Scalability
Ajax For ScalabilityAjax For Scalability
Ajax For Scalability
 
Web Speed And Scalability
Web Speed And ScalabilityWeb Speed And Scalability
Web Speed And Scalability
 

Recently uploaded

20240702 Présentation Plateforme GenAI.pdf
20240702 Présentation Plateforme GenAI.pdf20240702 Présentation Plateforme GenAI.pdf
20240702 Présentation Plateforme GenAI.pdf
Sally Laouacheria
 
Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...
Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...
Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...
Chris Swan
 
Choose our Linux Web Hosting for a seamless and successful online presence
Choose our Linux Web Hosting for a seamless and successful online presenceChoose our Linux Web Hosting for a seamless and successful online presence
Choose our Linux Web Hosting for a seamless and successful online presence
rajancomputerfbd
 
Observability For You and Me with OpenTelemetry
Observability For You and Me with OpenTelemetryObservability For You and Me with OpenTelemetry
Observability For You and Me with OpenTelemetry
Eric D. Schabell
 
Coordinate Systems in FME 101 - Webinar Slides
Coordinate Systems in FME 101 - Webinar SlidesCoordinate Systems in FME 101 - Webinar Slides
Coordinate Systems in FME 101 - Webinar Slides
Safe Software
 
Pigging Solutions Sustainability brochure.pdf
Pigging Solutions Sustainability brochure.pdfPigging Solutions Sustainability brochure.pdf
Pigging Solutions Sustainability brochure.pdf
Pigging Solutions
 
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptxRPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
SynapseIndia
 
What's New in Copilot for Microsoft365 May 2024.pptx
What's New in Copilot for Microsoft365 May 2024.pptxWhat's New in Copilot for Microsoft365 May 2024.pptx
What's New in Copilot for Microsoft365 May 2024.pptx
Stephanie Beckett
 
論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...
論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...
論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...
Toru Tamaki
 
20240705 QFM024 Irresponsible AI Reading List June 2024
20240705 QFM024 Irresponsible AI Reading List June 202420240705 QFM024 Irresponsible AI Reading List June 2024
20240705 QFM024 Irresponsible AI Reading List June 2024
Matthew Sinclair
 
Recent Advancements in the NIST-JARVIS Infrastructure
Recent Advancements in the NIST-JARVIS InfrastructureRecent Advancements in the NIST-JARVIS Infrastructure
Recent Advancements in the NIST-JARVIS Infrastructure
KAMAL CHOUDHARY
 
Implementations of Fused Deposition Modeling in real world
Implementations of Fused Deposition Modeling  in real worldImplementations of Fused Deposition Modeling  in real world
Implementations of Fused Deposition Modeling in real world
Emerging Tech
 
DealBook of Ukraine: 2024 edition
DealBook of Ukraine: 2024 editionDealBook of Ukraine: 2024 edition
DealBook of Ukraine: 2024 edition
Yevgen Sysoyev
 
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
Kief Morris
 
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
Erasmo Purificato
 
Cookies program to display the information though cookie creation
Cookies program to display the information though cookie creationCookies program to display the information though cookie creation
Cookies program to display the information though cookie creation
shanthidl1
 
7 Most Powerful Solar Storms in the History of Earth.pdf
7 Most Powerful Solar Storms in the History of Earth.pdf7 Most Powerful Solar Storms in the History of Earth.pdf
7 Most Powerful Solar Storms in the History of Earth.pdf
Enterprise Wired
 
Mitigating the Impact of State Management in Cloud Stream Processing Systems
Mitigating the Impact of State Management in Cloud Stream Processing SystemsMitigating the Impact of State Management in Cloud Stream Processing Systems
Mitigating the Impact of State Management in Cloud Stream Processing Systems
ScyllaDB
 
20240704 QFM023 Engineering Leadership Reading List June 2024
20240704 QFM023 Engineering Leadership Reading List June 202420240704 QFM023 Engineering Leadership Reading List June 2024
20240704 QFM023 Engineering Leadership Reading List June 2024
Matthew Sinclair
 
Advanced Techniques for Cyber Security Analysis and Anomaly Detection
Advanced Techniques for Cyber Security Analysis and Anomaly DetectionAdvanced Techniques for Cyber Security Analysis and Anomaly Detection
Advanced Techniques for Cyber Security Analysis and Anomaly Detection
Bert Blevins
 

Recently uploaded (20)

20240702 Présentation Plateforme GenAI.pdf
20240702 Présentation Plateforme GenAI.pdf20240702 Présentation Plateforme GenAI.pdf
20240702 Présentation Plateforme GenAI.pdf
 
Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...
Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...
Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...
 
Choose our Linux Web Hosting for a seamless and successful online presence
Choose our Linux Web Hosting for a seamless and successful online presenceChoose our Linux Web Hosting for a seamless and successful online presence
Choose our Linux Web Hosting for a seamless and successful online presence
 
Observability For You and Me with OpenTelemetry
Observability For You and Me with OpenTelemetryObservability For You and Me with OpenTelemetry
Observability For You and Me with OpenTelemetry
 
Coordinate Systems in FME 101 - Webinar Slides
Coordinate Systems in FME 101 - Webinar SlidesCoordinate Systems in FME 101 - Webinar Slides
Coordinate Systems in FME 101 - Webinar Slides
 
Pigging Solutions Sustainability brochure.pdf
Pigging Solutions Sustainability brochure.pdfPigging Solutions Sustainability brochure.pdf
Pigging Solutions Sustainability brochure.pdf
 
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptxRPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
 
What's New in Copilot for Microsoft365 May 2024.pptx
What's New in Copilot for Microsoft365 May 2024.pptxWhat's New in Copilot for Microsoft365 May 2024.pptx
What's New in Copilot for Microsoft365 May 2024.pptx
 
論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...
論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...
論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...
 
20240705 QFM024 Irresponsible AI Reading List June 2024
20240705 QFM024 Irresponsible AI Reading List June 202420240705 QFM024 Irresponsible AI Reading List June 2024
20240705 QFM024 Irresponsible AI Reading List June 2024
 
Recent Advancements in the NIST-JARVIS Infrastructure
Recent Advancements in the NIST-JARVIS InfrastructureRecent Advancements in the NIST-JARVIS Infrastructure
Recent Advancements in the NIST-JARVIS Infrastructure
 
Implementations of Fused Deposition Modeling in real world
Implementations of Fused Deposition Modeling  in real worldImplementations of Fused Deposition Modeling  in real world
Implementations of Fused Deposition Modeling in real world
 
DealBook of Ukraine: 2024 edition
DealBook of Ukraine: 2024 editionDealBook of Ukraine: 2024 edition
DealBook of Ukraine: 2024 edition
 
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
 
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
 
Cookies program to display the information though cookie creation
Cookies program to display the information though cookie creationCookies program to display the information though cookie creation
Cookies program to display the information though cookie creation
 
7 Most Powerful Solar Storms in the History of Earth.pdf
7 Most Powerful Solar Storms in the History of Earth.pdf7 Most Powerful Solar Storms in the History of Earth.pdf
7 Most Powerful Solar Storms in the History of Earth.pdf
 
Mitigating the Impact of State Management in Cloud Stream Processing Systems
Mitigating the Impact of State Management in Cloud Stream Processing SystemsMitigating the Impact of State Management in Cloud Stream Processing Systems
Mitigating the Impact of State Management in Cloud Stream Processing Systems
 
20240704 QFM023 Engineering Leadership Reading List June 2024
20240704 QFM023 Engineering Leadership Reading List June 202420240704 QFM023 Engineering Leadership Reading List June 2024
20240704 QFM023 Engineering Leadership Reading List June 2024
 
Advanced Techniques for Cyber Security Analysis and Anomaly Detection
Advanced Techniques for Cyber Security Analysis and Anomaly DetectionAdvanced Techniques for Cyber Security Analysis and Anomaly Detection
Advanced Techniques for Cyber Security Analysis and Anomaly Detection
 

Performance engineering

  • 1. Performance Engineering by Franz See (DevCon Java Roadshow) (ValueCommerce) [email_address] http://twitter.com/franz_see
  • 2. UI Performance Page Loading Optimization
  • 3. Best Practices Optimizing caching — keeping your application's data and logic off the network altogether Minimizing round-trip times — reducing the number of serial request-response cycles Minimizing request size — reducing upload size Minimizing payload size — reducing the size of responses, downloads, and cached pages Optimizing browser rendering — improving the browser's layout of a page
  • 4. Optimize caching HTTP caching allows these resources to be saved, or cached, by a browser or proxy. Once a resource is cached, a browser or proxy can refer to the locally cached copy instead of having to download it again on subsequent visits to the web page. Thus caching is a double win: you reduce round-trip time by eliminating numerous HTTP requests for the required resources, and you substantially reduce the total payload size of the responses. Besides leading to a dramatic reduction in page load time for subsequent user visits, enabling caching can also significantly reduce the bandwidth and hosting costs for your site.
  • 5. Optimize caching Leverage browser caching - Setting an expiry date or a maximum age in the HTTP headers for static resources allows the browser to load previously downloaded resources from local disk rather than over the network. Leverage proxy caching - Enabling public caching in the HTTP headers for static resources allows the browser to download resources from a nearby proxy server rather than from a remoter origin server.
  • 6. Minimize round-trip times Round-trip time (RTT) is the time it takes for a client to send a request and the server to send a response over the network, not including the time required for data transfer. That is, it includes the back-and-forth time on the wire, but excludes the time to fully download the transferred bytes (and is therefore unrelated to bandwidth). For example, for a browser to initiate a first-time connection with a web server, it must incur a minimum of 3 RTTs: 1 RTT for DNS name resolution; 1 RTT for TCP connection setup; and 1 RTT for the HTTP request and first byte of the HTTP response. Many web pages require dozens of RTTs.
  • 7. Minimize round-trip times Minimize DNS lookups - Reducing the number of unique hostnames from which resources are served cuts down on the number of DNS resolutions that the browser has to make, and therefore, RTT delays. Minimize redirects - Minimizing HTTP redirects from one URL to another cuts out additional RTTs and wait time for users. Combine external JavaScript - Combining external scripts into as few files as possible cuts down on RTTs and delays in downloading other resources.
  • 8. Minimize request size Every time a client sends an HTTP request, it has to send all associated cookies that have been set for that domain and path along with it. Most users have asymmetric Internet connections: upload-to-download bandwidth ratios are commonly in the range of 1:4 to 1:20. This means that a 500-byte HTTP header request could take the equivalent time to upload as 10 KB of HTTP response data takes to download. The factor is actually even higher because HTTP request headers are sent uncompressed. In other words, for requests for small objects (say, less than 10 KB, the typical size of a compressed image), the data sent in a request header can account for the majority of the response time.
  • 9. Minimize request size Minimize cookie size - Keeping cookies as small as possible ensures that an HTTP request can fit into a single packet. Serve static content from a cookieless domain - Serving static resources from a cookieless domain reduces the total size of requests made for a page.
  • 10. Minimize payload size The amount of data sent in each server response can add significant latency to your application, especially in areas where bandwidth is constrained. In addition to the network cost of the actual bytes transmitted, there is also a penalty incurred for crossing an IP packet boundary. (The maximum packet size, or Maximum Transmission Unit (MTU), is 1500 bytes on an Ethernet network, but varies on other types of networks.) Unfortunately, since it's difficult to know which bytes will cross a packet boundary, the best practice is to simply reduce the number of packets your server transmits, and strive to keep them under 1500 bytes wherever possible.
  • 11. Minimize payload size Enable gzip compression - Compressing resources with gzip can reduce the number of bytes sent over the network. Remove unused CSS - Removing or deferring style rules that are not used by a document avoid downloads unnecessary bytes and allow the browser to start rendering sooner. Minify JavaScript - Compacting JavaScript code can save many bytes of data and speed up downloading, parsing, and execution time.
  • 12. Minimize payload size Defer loading of JavaScript - Deferring loading of JavaScript functions that are not called at startup reduces the initial download size, allowing other resources to be downloaded in parallel, and speeding up execution and rendering time. Optimize images - Properly formatting, sizing, and losslessly compressing images can save many bytes of data. Serve resources from a consistent URL - It's important to serve a resource from a unique URL, to eliminate duplicate download bytes and additional RTTs.
  • 13. Optimize browser rendering Once resources have been downloaded to the client, the browser still needs to load, interpret, and render HTML, CSS, and Javascript code. By simply formatting your code and pages in ways that exploit the characteristics of current browsers, you can enhance performance on the client side.
  • 14. Optimize browser rendering Use efficient CSS selectors - Avoiding inefficient key selectors that match large numbers of elements can speed up page rendering. Avoid CSS expressions - CSS expressions degrade rendering performance; replacing them with alternatives will improve browser rendering for IE users. This best practices in this section apply only to Internet Explorer 5 through 7, which support CSS expressions. Put CSS in the document head - Moving inline style blocks and <link> elements from the document body to the document head improves rendering performance. Specify image dimensions - Specifying a width and height for all images allows for faster rendering by eliminating the need for unnecessary reflows and repaints.
  • 15. Tips and Tricks Remove all 404 resources. Access logs to check 404 resources. grep 'HTTP/1.1&quot; 404' access.log Put CSS at the top, and CSS first before JS Put JS at the end of the page Set a reasonable buffer size for JSP for eager loading if possible divisible by 1500 bytes. <%@ page buffer=&quot;36kb&quot; %>
  • 16. Tips and Tricks Enable GZIP using GZIP filter for text content types Pre GZIP Text static resources (Custom ant task) Compress images Page speed provides you with the compressed image https://developer.yahoo.com/yslow/smushit/ Minify JavaScript, CSS or even dynamic (JSP) contents YUI compressor from Yahoo! Closure Tools from Google Combining of external JavaScript and CSS resources Custom ant tasks CSS sprites http://csssprites.com/
  • 17. Tips and Tricks Browser caching using http header Cache-Control response header with at least one month expiration Ideally for static resources, and can be done also on get Ajax calls Caching of asynchronous call results (page scope) Progressive loading using Ajax Deferred loading
  • 18. Tips and Tricks Use performance analyzer tools Yslow! from Yahoo! Page speed from Google
  • 19. Possible UI Performance Drawback Maintainability Support for JavaScript debugging is now impossible Minify JavaScript and CSS resources Combining of external JavaScript and CSS resources
  • 20. References http://code.google.com/speed/page-speed/docs/rules_intro.html https://developer.yahoo.com/yslow/ https://developer.yahoo.com/yslow/smushit/ http://csssprites.com/ http://developer.yahoo.com/yui/compressor/ http://code.google.com/closure/
  • 21. Back End Performance Engineering
  • 22. Problems? Slow down Out of Memory
  • 23. What are they? Profiler A form of Dynamic Program Analysis for Improving performance Heap Analysis Tool Tool for analyzing heap dumps
  • 27. Popular Profiling Tools Paid JProfiler YourKit Free Eclipse TPTP Netbeans Profiler Visual VM (comes with java 6u7)
  • 28. Popular Heap Analysis Tools Jhat Eclipse Memory Analyzer Tool <Profiling tools>
  • 29. Common Profiling Views Self Tree Telemetry CPU Duration Per Method Call Tree CPU Load Memory Size per object of type Dominator Tree Memory Load Thread Duration per thread (---) (---)
  • 30. Heap Analysis Quick recap of the Java Memory Model Learning to generate heap dumps (hprof) Setting up the Eclipse Memory Analyzer Tool The 3 basic reports – Overview, Leak Suspects, and Top Components The 'other' features
  • 31. Java Memory Model Heap Young GEn Par Eden Space Par Survivor Space CMS Old Gen Non-Heap Code Cache CMS Perm Gen More info: http://download.oracle.com/javase/6/docs/ ... ...technotes/guides/management/jconsole.html
  • 32. Generate HPROF -XX:+HeapDumpOnOutOfMemoryError jmap -heap:format=b <pid> jmap.exe -dump:format=b,file=HeapDump.hprof <pid> More info : http://wiki.eclipse.org/index.php/MemoryAnalyzer#Getting_a_Heap_Dump
  • 33. Setup Eclipse MAT Home Page : http://www.eclipse.org/mat/ Download Page : http://www.eclipse.org/mat/downloads.php Quick Start: http://wiki.eclipse.org/index.php/MemoryAnalyzer
  • 34. 3 Basic Reports Overview Leak Suspects Top Components
  • 35. The 'other' features. Histogram Dominator Tree OQL
  • 36. OQL
  • 38.  
  • 39. Last Tips & Tricks 1.) Premature Optmization is the source of all evil 2.) Validate Assumptions 3.) Avoid blind fixes as much as possible 4.) Differentiate between CPU & IO 5.) Work Together
  • 40. Thank You Questions? [email_address] http://devworks.devcon.ph http://devcon.ph http://facebook.com/DevConPH http://twitter.com/DevConPH http://twitter.com/franz_see

Editor's Notes

  1. Eden Space: The pool from which memory is initially allocated for most objects. Survivor Space: The pool containing objects that have survived the garbage collection of the Eden space. Tenured Generation: The pool containing objects that have existed for some time in the survivor space. Permanent Generation: The pool containing all the reflective data of the virtual machine itself, such as class and method objects. With Java VMs that use class data sharing, this generation is divided into read-only and read-write areas. Code Cache: The HotSpot Java VM also includes a code cache, containing memory that is used for compilation and storage of native code. Survivor Space: The pool containing objects that have survived the garbage collection of the Eden space.