SlideShare ist ein Scribd-Unternehmen logo
1 von 41
Downloaden Sie, um offline zu lesen
Hey, my web app’s slow!
Where’s the problem?
Charlie Arehart
Independent Consultant
charlie@carehart.org / @carehart
CHARLIE AREHART, @CAREHART
CHARLIE@CAREHART.ORG
Another day, another slow site…
• Video available at
http://fast.wistia.net/embed/iframe/swl2mt99vb
CHARLIE AREHART, @CAREHART
CHARLIE@CAREHART.ORG
A range of problems/solutions
• Understanding the challenges
• Finding the problems: from the client perspective
• Finding the problems: from the server perspective
• Solving the problems: several ways
• Testing your solutions
• Watching for problems over time
CHARLIE AREHART, @CAREHART
CHARLIE@CAREHART.ORG
About Charlie Arehart
Independent consultant
• 30+ in Enterprise IT
• Adobe Forum MVP, CAB member
• Frequent speaker to conf’s worldwide
• Organizer, Online ColdFusion Meetup
(coldfusionmeetup.com), 2800+
members
• Living in south central KY
Web home at www.carehart.org
• 100+ presentations, 80+ articles, 400+ blog
entries
• UGTV: recordings of 600+ presos by 300+
speakers
• CF411.com: 2000+ tools/resources, 150+
categories
• Hosting courtesy of EdgeWeb Hosting
CHARLIE AREHART, @CAREHART
CHARLIE@CAREHART.ORG
Housekeeping
• Slides available online
• carehart.org/presentations
• My meta resource site
• CF411.com
• Closely related talks this week at CF Summit 2015
• My DB Skills Killed She server – Dave Ferguson
• 10 Common CF Server Challenges… - Charlie Arehart
Understanding the
challenges
CHARLIE AREHART, @CAREHART
CHARLIE@CAREHART.ORG
Why worry about site speed?
(duh)
• Simple usability
• User impatience: they may seek alternatives
• Search engines now ranking based on speed
• Bandwidth (on your server): someone’s paying
• Cloud deployments: you’re definitely paying!
CHARLIE AREHART, @CAREHART
CHARLIE@CAREHART.ORG
Who am I talking to?
• Any kind of web app developer, any platform
• Whether designing for desktop or mobile
• Hybrid/responsive, static/dynamic, ajax, etc
• Less if using flat or single page models, of course
• Speed problems can affect anyone
• For many reasons…
CHARLIE AREHART, @CAREHART
CHARLIE@CAREHART.ORG
Where might a problem be?
• Could be on client, server, or network in between
• On the client?
• Could be your app/code
• Could be a temporary OS problem for the user
• CPU, memory, disk, etc
• Could be the user’s browser
• And so on
CHARLIE AREHART, @CAREHART
CHARLIE@CAREHART.ORG
Where might a problem be?
(cont)
• On the server?
• Could be a problem in app server
• Could be in web svr, db svr, etc
• Could be a temporary OS problem (cpu/disk/memory)
• Could be something in your code (app svr, db svr code)
• Could be issue with config
• Could be a need to optimize for web delivery
CHARLIE AREHART, @CAREHART
CHARLIE@CAREHART.ORG
Where could the problem be?
(cont)
• In the network?
• From client, within their network (wifi, wired, mobile)
• On server, could be comm between servers (app/db)
• Could be calls to 3rd party sites (from client or server)
• Could be infrastructure in between
• Network/mobile provider
• Proxies
• Firewall/load balancer
• Colleagues/family/neighbors overusing bandwidth
CHARLIE AREHART, @CAREHART
CHARLIE@CAREHART.ORG
Where could the problem be?
(cont)
• Can be maddening!
• But problems can be found and solved
• with right perspective, tools, techniques, resources
• Goal today
• Give you that perspective
• Show you such tools: some already at hand
• May be familiar to some; seems not to most
• Point you to resources for techniques and more
Finding the problems:
from the client
perspective
CHARLIE AREHART, @CAREHART
CHARLIE@CAREHART.ORG
Browser-provided tools
• Most browsers offer “dev tools” with similar features
• Right-click on browser whitespace, choose "inspect element"
• Or use ctrl-shift-I in most browsers, or F12 in some
• Safari: use Preferences>Show Developer Menu
• See “network” tab, especially
• Load times, of both your and 3rd party site requests
• Details on each resource requested (text, graphics, css, etc.)
• Options to focus on certain file names, types only
• Option to clear/preserve display of files between refreshes
• Clearing/disable of browser caching
• Dockability of window, other configurability
CHARLIE AREHART, @CAREHART
CHARLIE@CAREHART.ORG
Browser-provided tools (cont)
• Chrome network tab also offers
• “Capture screenshots”
• Bandwidth throttling simulation
• Most also offer javascript profiling and much more
• Features have evolved over the years
• Browser-specific observations follow
• Chrome/Opera
• Related tabs: timeline, profiles
• Audits tab makes recommendations
• …
CHARLIE AREHART, @CAREHART
CHARLIE@CAREHART.ORG
Browser-provided tools (cont)
• Firefox
• Related tabs: performance (to profile js)
• Right-click any requested file, choose "start performance
analysis" to see graphs of cached vs not cached
• or click on number of requests in bottom right, to see same
• Internet Explorer (especially as of 11)
• Related tabs: Profiler, UI Responsiveness, Memory
• See also Emulation tab
• See also tools>performance dashboard
• …
CHARLIE AREHART, @CAREHART
CHARLIE@CAREHART.ORG
Browser-provided tools (cont)
• Similar functionality in standalone apps
• Fiddler, Charles, ServiceCapture, many others
• See my list at cf411.com/genericproxies
• Let’s leave browser tools; focus on client machine
CHARLIE AREHART, @CAREHART
CHARLIE@CAREHART.ORG
System (OS) Monitoring Tools
• Problem could be on your/client’s machine
• Several tools built-into OS can help
• Can observe other things running on machine
• May be stealing cpu, memory, disk i/o, registry i/o, bandwidth
• Windows:
• Task Manager and its cousin, Resource Monitor
• See also Performance Monitor, Process Monitor
(downloadable)
• *nix
• top/plist
• OS X
• Activity Monitor
CHARLIE AREHART, @CAREHART
CHARLIE@CAREHART.ORG
Network testing tools
• Again, problem could be in network bandwidth of
your/client’s machine
• Several free services can test that
• speedtest.net
• speedof.me
• bandwidthplace.com
• See my list at cf411.com/networkbandwidthtest
• Great if you can be at client machine, what if not?
• Will cover later with “user experience monitoring” tools
CHARLIE AREHART, @CAREHART
CHARLIE@CAREHART.ORG
Page/site testing tools
• Several tools help evaluate web app performance
• As would be experienced by client
• Some downloadable client-based tools
• Yslow (yahoo), speedtracer (google), others
• See my list at cf411.com/pageperftest_client
• Many are services
• Most are free, some are paid
• These test from their servers to your app (simulate
client)
• Most evaluate, grade, and can recommend tweaks
• Let’s consider a few, with demos
CHARLIE AREHART, @CAREHART
CHARLIE@CAREHART.ORG
Page/site testing tools (cont)
• webpagetest.org
• tools.pingdom.com/fpt/
• Google pagespeed
• has feature to provide compressed content from your
site
• Several more
• See my list at cf411.com/pageperftest_server
Finding the problems:
from the server
perspective
CHARLIE AREHART, @CAREHART
CHARLIE@CAREHART.ORG
Could be any of many things
• Again: app server, web server, OS problems, DB svr
• Or third-party server called from your server app
• Key is to have tools to monitor on server
• And many such tools can alert on problems
• Let’s consider each major component
CHARLIE AREHART, @CAREHART
CHARLIE@CAREHART.ORG
Is it in your app server?
• Several tools can monitor different app servers
• Newrelic
• Appdynamics
• See my list at cf411.com/appmon
• Is it in ColdFusion? CF-specific monitor tools
• FusionReactor, SeeFusion
• CF Enterprise’s Server Monitor
• See my list at cf411.com/cfmon
CHARLIE AREHART, @CAREHART
CHARLIE@CAREHART.ORG
Is it in your web server?
• Several built-in web server monitoring tools
• Apache: mod_status
• IIS: Worker Process Monitor
• Nginx: ngx_http_stub_status_module
• Nginx Plus: "Live Activity Monitoring"
• Other downloadable or service-based tools
• Appdynamics
• IISTracer
• LeanSentry
• See my list at cf411.com/wsmon
CHARLIE AREHART, @CAREHART
CHARLIE@CAREHART.ORG
Is it an OS resource problems?
• See same OS tools discussed before for clients
• Good for point-in-time evaluation
• See downloadable and/or service-oriented tools
• To observe things over time, trigger alerts, etc
• Nagios, NewRelic, Zabbix
• See my list at cf411.com/sysmon
CHARLIE AREHART, @CAREHART
CHARLIE@CAREHART.ORG
Is it in your database server?
• So many database engines, so many tools
• Can monitor running queries, history, slowness
• Most have no overhead, yet few seem to consider them
• See my list at cf411.com/dbmon
• Consider also monitoring the OS resources there
• Again, problem “with DB” may really be about its server
• Remember also:
• Network problems could exist between app svr & db svr
• Would show as “slowness” of query processing
CHARLIE AREHART, @CAREHART
CHARLIE@CAREHART.ORG
Another dimension to consider
• User Experience Monitoring Tools
• With these you add small js code to your web app
• Gets sent to browser with your content
• Reports back “time on network”, “page render time”
• See tools like
• NewRelic Browser and Mobile Monitoring features
• FusionReactor User Experience Monitoring (UEM)
Solving the problems:
several ways
CHARLIE AREHART, @CAREHART
CHARLIE@CAREHART.ORG
So many problems,
so many solutions (so little time now)
• Again, some tools seen offer specific
recommendations
• Many other site speed resources to help you
• developer.yahoo.com/performance/
• yslow.org, stevesouders.com
• developers.google.com/speed/
• developers.google.com/speed/docs/insights/rules
• iispeed.com/pagespeed/optimizations
• www.perf.rocks
• And others
CHARLIE AREHART, @CAREHART
CHARLIE@CAREHART.ORG
Some sample blog entries
• yeoman.io/blog/performance-optimization.html
• stevesouders.com/blog/2013/05/13/moving-
beyond-window-onload/
• cdnify.com/blog/top-10-gulp-tasks-for-optimising-
front-end-performance/
• zoompf.com/blog/2013/10/easy-ways-to-speed-
up-your-wordpress-site
• rigor.com/blog/2015/02/identify-solve-3rd-party-
javascript-problems
CHARLIE AREHART, @CAREHART
CHARLIE@CAREHART.ORG
The common recommendations
• Most tools/resources focus on speeding up web
app content delivery, recommending that you:
• Minify Javascript/css
• Remove unused js/css
• Remove inline css
• Combine jss and css files into one
• Compress/minify things not already compressed
• binaries (pdf, svg, ico, bmp, etc)
• other text (html, rss/atom, etc)
• Good recommendations, as long as it’s the problem
CHARLIE AREHART, @CAREHART
CHARLIE@CAREHART.ORG
Caching (client, server)
• Can also implement many forms of caching
• Reduce number of page requests, speed them up
• Some caching is client-oriented
• Controlled from server code (see previous resources)
• May also be configurable in client
• Some caching is server-oriented
• In app server, or via ehCache, memcached, redis, etc
• See my list at cf411.com/distcache
CHARLIE AREHART, @CAREHART
CHARLIE@CAREHART.ORG
Caching (client, server, network)
• Can also cache content “on network”
• So requests from clients are handled “before” server
• Content Delivery Networks (CDN's)
• Akamai, Cloudfront, Lightspeed, etc
• See my list at cf411.com/cdn
• Reverse proxies
• squid, varnish, etc
CHARLIE AREHART, @CAREHART
CHARLIE@CAREHART.ORG
Automation
• Some tools can ease optimization task
• Some are tools you use as developer
• Some are server-side automation
• Some frameworks perform optimizations
• Server-side optimization
• mod_pagespeed, iispeed, etc
• See also services like Cloudflare, Squixa
• Development automation tools may optimize also
• grunt, maven, ant, rake, make, etc
Testing your solutions
CHARLIE AREHART, @CAREHART
CHARLIE@CAREHART.ORG
• So you’ve implemented solutions. How to test?
• First, lather/rinse/repeat page testing solutions earlier
• Recall also bandwidth throttling simulation tools
• Also consider load testing
• Jmeter, loadimpact, loadstorm, others
• Some can simulate different clients, bandwidths
• See my list at cf411.com/loadtest
Watching for problems
over time
CHARLIE AREHART, @CAREHART
CHARLIE@CAREHART.ORG
Many tools to help
• You’ve done your optimizing, testing
• How can you know if problems crop up later, over time?
• Many tools to help
• pingdom.com
• siteuptime.com
• monitor.us
• newrelic.com/synthetics
• zoompf.com/alerts
• See my list at cf411.com/sitemon
In Conclusion
CHARLIE AREHART, @CAREHART
CHARLIE@CAREHART.ORG
What we’ve learned
• Range of performance challenges
• On client, network, server
• And many parts within those
• Range of tools/resources to spot/solve problems
• Tools to watch for ongoing problems over time
• Gave lots of tools, links
• but also direction, perspective
• Hope you feel empowered to go solve problems!
• Feedback welcome, on twitter, email, etc

Weitere ähnliche Inhalte

Was ist angesagt?

Here Be Dragons - Debugging WordPress
Here Be Dragons - Debugging WordPressHere Be Dragons - Debugging WordPress
Here Be Dragons - Debugging WordPressRami Sayar
 
Configuring CQ Security
Configuring CQ SecurityConfiguring CQ Security
Configuring CQ Securityconnectwebex
 
CollabSphere SC 103 : Domino on the Web : Yes, It's (Probably) Hackable
CollabSphere SC 103 : Domino on the Web : Yes, It's (Probably) HackableCollabSphere SC 103 : Domino on the Web : Yes, It's (Probably) Hackable
CollabSphere SC 103 : Domino on the Web : Yes, It's (Probably) HackableDarren Duke
 
CIRCUIT 2015 - Monitoring AEM
CIRCUIT 2015 - Monitoring AEMCIRCUIT 2015 - Monitoring AEM
CIRCUIT 2015 - Monitoring AEMICF CIRCUIT
 
My Database Skills Killed the Server
My Database Skills Killed the ServerMy Database Skills Killed the Server
My Database Skills Killed the ServerColdFusionConference
 
Adobe AEM CQ5 - Developer Introduction
Adobe AEM CQ5 - Developer IntroductionAdobe AEM CQ5 - Developer Introduction
Adobe AEM CQ5 - Developer IntroductionYash Mody
 
Best Practices for WordPress in Enterprise
Best Practices for WordPress in EnterpriseBest Practices for WordPress in Enterprise
Best Practices for WordPress in EnterpriseTaylor Lovett
 
Html5 Offline Applications
Html5 Offline Applications Html5 Offline Applications
Html5 Offline Applications Sunny Sharma
 
Improve WordPress performance with caching and deferred execution of code
Improve WordPress performance with caching and deferred execution of codeImprove WordPress performance with caching and deferred execution of code
Improve WordPress performance with caching and deferred execution of codeDanilo Ercoli
 
Mobile Hybrid Development with WordPress
Mobile Hybrid Development with WordPressMobile Hybrid Development with WordPress
Mobile Hybrid Development with WordPressDanilo Ercoli
 
WordPress Development Tools and Best Practices
WordPress Development Tools and Best PracticesWordPress Development Tools and Best Practices
WordPress Development Tools and Best PracticesDanilo Ercoli
 
FITC - Here Be Dragons: Advanced JavaScript Debugging
FITC - Here Be Dragons: Advanced JavaScript DebuggingFITC - Here Be Dragons: Advanced JavaScript Debugging
FITC - Here Be Dragons: Advanced JavaScript DebuggingRami Sayar
 
PHP on Windows - What's New
PHP on Windows - What's NewPHP on Windows - What's New
PHP on Windows - What's NewZendCon
 
CodeIgniter PHP MVC Framework
CodeIgniter PHP MVC FrameworkCodeIgniter PHP MVC Framework
CodeIgniter PHP MVC FrameworkBo-Yi Wu
 
JSON REST API for WordPress
JSON REST API for WordPressJSON REST API for WordPress
JSON REST API for WordPressTaylor Lovett
 
SenchaCon 2016: A Look Ahead: Survey Next-Gen Modern Browser APIs - Shikhir S...
SenchaCon 2016: A Look Ahead: Survey Next-Gen Modern Browser APIs - Shikhir S...SenchaCon 2016: A Look Ahead: Survey Next-Gen Modern Browser APIs - Shikhir S...
SenchaCon 2016: A Look Ahead: Survey Next-Gen Modern Browser APIs - Shikhir S...Sencha
 
WordPress APIs
WordPress APIsWordPress APIs
WordPress APIsmdawaffe
 
CUST-10 Customizing the Upload File(s) dialog in Alfresco Share
CUST-10 Customizing the Upload File(s) dialog in Alfresco ShareCUST-10 Customizing the Upload File(s) dialog in Alfresco Share
CUST-10 Customizing the Upload File(s) dialog in Alfresco ShareAlfresco Software
 

Was ist angesagt? (20)

Here Be Dragons - Debugging WordPress
Here Be Dragons - Debugging WordPressHere Be Dragons - Debugging WordPress
Here Be Dragons - Debugging WordPress
 
Configuring CQ Security
Configuring CQ SecurityConfiguring CQ Security
Configuring CQ Security
 
CollabSphere SC 103 : Domino on the Web : Yes, It's (Probably) Hackable
CollabSphere SC 103 : Domino on the Web : Yes, It's (Probably) HackableCollabSphere SC 103 : Domino on the Web : Yes, It's (Probably) Hackable
CollabSphere SC 103 : Domino on the Web : Yes, It's (Probably) Hackable
 
CIRCUIT 2015 - Monitoring AEM
CIRCUIT 2015 - Monitoring AEMCIRCUIT 2015 - Monitoring AEM
CIRCUIT 2015 - Monitoring AEM
 
Cfml features modern_coding
Cfml features modern_codingCfml features modern_coding
Cfml features modern_coding
 
My Database Skills Killed the Server
My Database Skills Killed the ServerMy Database Skills Killed the Server
My Database Skills Killed the Server
 
Adobe AEM CQ5 - Developer Introduction
Adobe AEM CQ5 - Developer IntroductionAdobe AEM CQ5 - Developer Introduction
Adobe AEM CQ5 - Developer Introduction
 
Best Practices for WordPress in Enterprise
Best Practices for WordPress in EnterpriseBest Practices for WordPress in Enterprise
Best Practices for WordPress in Enterprise
 
Html5 Offline Applications
Html5 Offline Applications Html5 Offline Applications
Html5 Offline Applications
 
Improve WordPress performance with caching and deferred execution of code
Improve WordPress performance with caching and deferred execution of codeImprove WordPress performance with caching and deferred execution of code
Improve WordPress performance with caching and deferred execution of code
 
Mobile Hybrid Development with WordPress
Mobile Hybrid Development with WordPressMobile Hybrid Development with WordPress
Mobile Hybrid Development with WordPress
 
WordPress Development Tools and Best Practices
WordPress Development Tools and Best PracticesWordPress Development Tools and Best Practices
WordPress Development Tools and Best Practices
 
FITC - Here Be Dragons: Advanced JavaScript Debugging
FITC - Here Be Dragons: Advanced JavaScript DebuggingFITC - Here Be Dragons: Advanced JavaScript Debugging
FITC - Here Be Dragons: Advanced JavaScript Debugging
 
A Day of REST
A Day of RESTA Day of REST
A Day of REST
 
PHP on Windows - What's New
PHP on Windows - What's NewPHP on Windows - What's New
PHP on Windows - What's New
 
CodeIgniter PHP MVC Framework
CodeIgniter PHP MVC FrameworkCodeIgniter PHP MVC Framework
CodeIgniter PHP MVC Framework
 
JSON REST API for WordPress
JSON REST API for WordPressJSON REST API for WordPress
JSON REST API for WordPress
 
SenchaCon 2016: A Look Ahead: Survey Next-Gen Modern Browser APIs - Shikhir S...
SenchaCon 2016: A Look Ahead: Survey Next-Gen Modern Browser APIs - Shikhir S...SenchaCon 2016: A Look Ahead: Survey Next-Gen Modern Browser APIs - Shikhir S...
SenchaCon 2016: A Look Ahead: Survey Next-Gen Modern Browser APIs - Shikhir S...
 
WordPress APIs
WordPress APIsWordPress APIs
WordPress APIs
 
CUST-10 Customizing the Upload File(s) dialog in Alfresco Share
CUST-10 Customizing the Upload File(s) dialog in Alfresco ShareCUST-10 Customizing the Upload File(s) dialog in Alfresco Share
CUST-10 Customizing the Upload File(s) dialog in Alfresco Share
 

Andere mochten auch

Nbctg1000(r1)
Nbctg1000(r1)Nbctg1000(r1)
Nbctg1000(r1)CRC-PI
 
UN MISTERIO EL VPH LUIS PRATO
UN MISTERIO EL VPH LUIS PRATOUN MISTERIO EL VPH LUIS PRATO
UN MISTERIO EL VPH LUIS PRATOLuis Davila
 
2011 DFC taiwan-Chi 056 讓愛傳出去(成果呈交)
2011 DFC taiwan-Chi 056 讓愛傳出去(成果呈交)2011 DFC taiwan-Chi 056 讓愛傳出去(成果呈交)
2011 DFC taiwan-Chi 056 讓愛傳出去(成果呈交)Design For Change Taiwan
 
Fshar formation-applications-performantes-grace-a-fsharp
Fshar formation-applications-performantes-grace-a-fsharpFshar formation-applications-performantes-grace-a-fsharp
Fshar formation-applications-performantes-grace-a-fsharpCERTyou Formation
 
Nursing children in the age 1 3 - erasmus+ partner search
Nursing children in the age 1 3 - erasmus+ partner searchNursing children in the age 1 3 - erasmus+ partner search
Nursing children in the age 1 3 - erasmus+ partner searchŠtěpánka Mašlárová
 
Watch māori all blacks vs new zealand barbarians on android
Watch māori all blacks vs new zealand barbarians on androidWatch māori all blacks vs new zealand barbarians on android
Watch māori all blacks vs new zealand barbarians on androiddereksimon353
 
Geetanjali Desai C V ready
Geetanjali Desai C V readyGeetanjali Desai C V ready
Geetanjali Desai C V readyGeetanjali Desai
 
Capítulo VIII. Sistemas de Información Gerencial, James O´Brien. SESION SCM. ...
Capítulo VIII. Sistemas de Información Gerencial, James O´Brien. SESION SCM. ...Capítulo VIII. Sistemas de Información Gerencial, James O´Brien. SESION SCM. ...
Capítulo VIII. Sistemas de Información Gerencial, James O´Brien. SESION SCM. ...Andres Roa Gonzalez
 
LIC Recruitment 2016
LIC Recruitment 2016LIC Recruitment 2016
LIC Recruitment 2016Govtjobsx
 

Andere mochten auch (20)

Rab
RabRab
Rab
 
Nbctg1000(r1)
Nbctg1000(r1)Nbctg1000(r1)
Nbctg1000(r1)
 
UN MISTERIO EL VPH LUIS PRATO
UN MISTERIO EL VPH LUIS PRATOUN MISTERIO EL VPH LUIS PRATO
UN MISTERIO EL VPH LUIS PRATO
 
2011 DFC taiwan-Chi 056 讓愛傳出去(成果呈交)
2011 DFC taiwan-Chi 056 讓愛傳出去(成果呈交)2011 DFC taiwan-Chi 056 讓愛傳出去(成果呈交)
2011 DFC taiwan-Chi 056 讓愛傳出去(成果呈交)
 
Fshar formation-applications-performantes-grace-a-fsharp
Fshar formation-applications-performantes-grace-a-fsharpFshar formation-applications-performantes-grace-a-fsharp
Fshar formation-applications-performantes-grace-a-fsharp
 
Unit4
Unit4Unit4
Unit4
 
Act19 eamj
Act19 eamjAct19 eamj
Act19 eamj
 
El guila
El guilaEl guila
El guila
 
Rutas increíbles
Rutas increíblesRutas increíbles
Rutas increíbles
 
Nursing children in the age 1 3 - erasmus+ partner search
Nursing children in the age 1 3 - erasmus+ partner searchNursing children in the age 1 3 - erasmus+ partner search
Nursing children in the age 1 3 - erasmus+ partner search
 
Watch māori all blacks vs new zealand barbarians on android
Watch māori all blacks vs new zealand barbarians on androidWatch māori all blacks vs new zealand barbarians on android
Watch māori all blacks vs new zealand barbarians on android
 
Q25
Q25Q25
Q25
 
Presentación1
Presentación1Presentación1
Presentación1
 
mi album
mi albummi album
mi album
 
Geetanjali Desai C V ready
Geetanjali Desai C V readyGeetanjali Desai C V ready
Geetanjali Desai C V ready
 
Presentación proyecto
Presentación proyectoPresentación proyecto
Presentación proyecto
 
Capítulo VIII. Sistemas de Información Gerencial, James O´Brien. SESION SCM. ...
Capítulo VIII. Sistemas de Información Gerencial, James O´Brien. SESION SCM. ...Capítulo VIII. Sistemas de Información Gerencial, James O´Brien. SESION SCM. ...
Capítulo VIII. Sistemas de Información Gerencial, James O´Brien. SESION SCM. ...
 
LIC Recruitment 2016
LIC Recruitment 2016LIC Recruitment 2016
LIC Recruitment 2016
 
Rabia canina
Rabia caninaRabia canina
Rabia canina
 
Topic 11
Topic 11Topic 11
Topic 11
 

Ähnlich wie Hey My Web App is Slow Where is the Problem

Hey my web app is slow where is the problem
Hey my web app is slow where is the problemHey my web app is slow where is the problem
Hey my web app is slow where is the problemColdFusionConference
 
Hey! My website is slow where is the problem?
Hey! My website is slow where is the problem?Hey! My website is slow where is the problem?
Hey! My website is slow where is the problem?devObjective
 
Monitoring CF What are my options? Why Should I?
Monitoring CF What are my options? Why Should I?Monitoring CF What are my options? Why Should I?
Monitoring CF What are my options? Why Should I?ColdFusionConference
 
Website essentials things every library website should have
Website essentials  things every library website should haveWebsite essentials  things every library website should have
Website essentials things every library website should haveBrian Pichman
 
VA Smalltalk Update
VA Smalltalk UpdateVA Smalltalk Update
VA Smalltalk UpdateESUG
 
CNIT 129S: Ch 4: Mapping the Application
CNIT 129S: Ch 4: Mapping the ApplicationCNIT 129S: Ch 4: Mapping the Application
CNIT 129S: Ch 4: Mapping the ApplicationSam Bowne
 
HTTP - The Protocol of Our Lives
HTTP - The Protocol of Our LivesHTTP - The Protocol of Our Lives
HTTP - The Protocol of Our LivesBrent Shaffer
 
[Russia] Bugs -> max, time <= T
[Russia] Bugs -> max, time <= T[Russia] Bugs -> max, time <= T
[Russia] Bugs -> max, time <= TOWASP EEE
 
Find maximum bugs in limited time
Find maximum bugs in limited timeFind maximum bugs in limited time
Find maximum bugs in limited timebeched
 
APIs, now and in the future
APIs, now and in the futureAPIs, now and in the future
APIs, now and in the futureChris Mills
 
Heartbleed Bug Vulnerability: Discovery, Impact and Solution
Heartbleed Bug Vulnerability: Discovery, Impact and SolutionHeartbleed Bug Vulnerability: Discovery, Impact and Solution
Heartbleed Bug Vulnerability: Discovery, Impact and SolutionCASCouncil
 
4 Mapping the Application
4 Mapping the Application4 Mapping the Application
4 Mapping the ApplicationSam Bowne
 
Building high performance and scalable share point applications
Building high performance and scalable share point applicationsBuilding high performance and scalable share point applications
Building high performance and scalable share point applicationsTalbott Crowell
 
Solving Frequent ColdFusion Server Problems in New and Better Ways
Solving Frequent ColdFusion Server Problems in New and Better WaysSolving Frequent ColdFusion Server Problems in New and Better Ways
Solving Frequent ColdFusion Server Problems in New and Better WaysColdFusionConference
 
Measuring CDN performance and why you're doing it wrong
Measuring CDN performance and why you're doing it wrongMeasuring CDN performance and why you're doing it wrong
Measuring CDN performance and why you're doing it wrongFastly
 
Building data intensive applications
Building data intensive applicationsBuilding data intensive applications
Building data intensive applicationsAmit Kejriwal
 
Best practices-wordpress-enterprise
Best practices-wordpress-enterpriseBest practices-wordpress-enterprise
Best practices-wordpress-enterpriseTaylor Lovett
 
Intro to Service Worker API and its use cases
Intro to Service Worker API and its use casesIntro to Service Worker API and its use cases
Intro to Service Worker API and its use casessatejsahu
 

Ähnlich wie Hey My Web App is Slow Where is the Problem (20)

Hey my web app is slow where is the problem
Hey my web app is slow where is the problemHey my web app is slow where is the problem
Hey my web app is slow where is the problem
 
Hey! My website is slow where is the problem?
Hey! My website is slow where is the problem?Hey! My website is slow where is the problem?
Hey! My website is slow where is the problem?
 
Monitoring CF What are my options? Why Should I?
Monitoring CF What are my options? Why Should I?Monitoring CF What are my options? Why Should I?
Monitoring CF What are my options? Why Should I?
 
Website essentials things every library website should have
Website essentials  things every library website should haveWebsite essentials  things every library website should have
Website essentials things every library website should have
 
VA Smalltalk Update
VA Smalltalk UpdateVA Smalltalk Update
VA Smalltalk Update
 
CNIT 129S: Ch 4: Mapping the Application
CNIT 129S: Ch 4: Mapping the ApplicationCNIT 129S: Ch 4: Mapping the Application
CNIT 129S: Ch 4: Mapping the Application
 
Fusion Reactor
Fusion ReactorFusion Reactor
Fusion Reactor
 
Fr sponsor talk may 2015
Fr sponsor talk may 2015Fr sponsor talk may 2015
Fr sponsor talk may 2015
 
HTTP - The Protocol of Our Lives
HTTP - The Protocol of Our LivesHTTP - The Protocol of Our Lives
HTTP - The Protocol of Our Lives
 
[Russia] Bugs -> max, time <= T
[Russia] Bugs -> max, time <= T[Russia] Bugs -> max, time <= T
[Russia] Bugs -> max, time <= T
 
Find maximum bugs in limited time
Find maximum bugs in limited timeFind maximum bugs in limited time
Find maximum bugs in limited time
 
APIs, now and in the future
APIs, now and in the futureAPIs, now and in the future
APIs, now and in the future
 
Heartbleed Bug Vulnerability: Discovery, Impact and Solution
Heartbleed Bug Vulnerability: Discovery, Impact and SolutionHeartbleed Bug Vulnerability: Discovery, Impact and Solution
Heartbleed Bug Vulnerability: Discovery, Impact and Solution
 
4 Mapping the Application
4 Mapping the Application4 Mapping the Application
4 Mapping the Application
 
Building high performance and scalable share point applications
Building high performance and scalable share point applicationsBuilding high performance and scalable share point applications
Building high performance and scalable share point applications
 
Solving Frequent ColdFusion Server Problems in New and Better Ways
Solving Frequent ColdFusion Server Problems in New and Better WaysSolving Frequent ColdFusion Server Problems in New and Better Ways
Solving Frequent ColdFusion Server Problems in New and Better Ways
 
Measuring CDN performance and why you're doing it wrong
Measuring CDN performance and why you're doing it wrongMeasuring CDN performance and why you're doing it wrong
Measuring CDN performance and why you're doing it wrong
 
Building data intensive applications
Building data intensive applicationsBuilding data intensive applications
Building data intensive applications
 
Best practices-wordpress-enterprise
Best practices-wordpress-enterpriseBest practices-wordpress-enterprise
Best practices-wordpress-enterprise
 
Intro to Service Worker API and its use cases
Intro to Service Worker API and its use casesIntro to Service Worker API and its use cases
Intro to Service Worker API and its use cases
 

Mehr von ColdFusionConference

Building better SQL Server Databases
Building better SQL Server DatabasesBuilding better SQL Server Databases
Building better SQL Server DatabasesColdFusionConference
 
API Economy, Realizing the Business Value of APIs
API Economy, Realizing the Business Value of APIsAPI Economy, Realizing the Business Value of APIs
API Economy, Realizing the Business Value of APIsColdFusionConference
 
Crafting ColdFusion Applications like an Architect
Crafting ColdFusion Applications like an ArchitectCrafting ColdFusion Applications like an Architect
Crafting ColdFusion Applications like an ArchitectColdFusionConference
 
Security And Access Control For APIS using CF API Manager
Security And Access Control For APIS using CF API ManagerSecurity And Access Control For APIS using CF API Manager
Security And Access Control For APIS using CF API ManagerColdFusionConference
 
Monetizing Business Models: ColdFusion and APIS
Monetizing Business Models: ColdFusion and APISMonetizing Business Models: ColdFusion and APIS
Monetizing Business Models: ColdFusion and APISColdFusionConference
 
Become a Security Rockstar with ColdFusion 2016
Become a Security Rockstar with ColdFusion 2016Become a Security Rockstar with ColdFusion 2016
Become a Security Rockstar with ColdFusion 2016ColdFusionConference
 
Developer Insights for Application Upgrade to ColdFusion 2016
Developer Insights for Application Upgrade to ColdFusion 2016Developer Insights for Application Upgrade to ColdFusion 2016
Developer Insights for Application Upgrade to ColdFusion 2016ColdFusionConference
 
ColdFusion Keynote: Building the Agile Web Since 1995
ColdFusion Keynote: Building the Agile Web Since 1995ColdFusion Keynote: Building the Agile Web Since 1995
ColdFusion Keynote: Building the Agile Web Since 1995ColdFusionConference
 
Build your own secure and real-time dashboard for mobile and web
Build your own secure and real-time dashboard for mobile and webBuild your own secure and real-time dashboard for mobile and web
Build your own secure and real-time dashboard for mobile and webColdFusionConference
 
Herding cats managing ColdFusion servers with commandbox
Herding cats managing ColdFusion servers with commandboxHerding cats managing ColdFusion servers with commandbox
Herding cats managing ColdFusion servers with commandboxColdFusionConference
 

Mehr von ColdFusionConference (20)

Api manager preconference
Api manager preconferenceApi manager preconference
Api manager preconference
 
Cf ppt vsr
Cf ppt vsrCf ppt vsr
Cf ppt vsr
 
Building better SQL Server Databases
Building better SQL Server DatabasesBuilding better SQL Server Databases
Building better SQL Server Databases
 
API Economy, Realizing the Business Value of APIs
API Economy, Realizing the Business Value of APIsAPI Economy, Realizing the Business Value of APIs
API Economy, Realizing the Business Value of APIs
 
Don't just pdf, Smart PDF
Don't just pdf, Smart PDFDon't just pdf, Smart PDF
Don't just pdf, Smart PDF
 
Crafting ColdFusion Applications like an Architect
Crafting ColdFusion Applications like an ArchitectCrafting ColdFusion Applications like an Architect
Crafting ColdFusion Applications like an Architect
 
Security And Access Control For APIS using CF API Manager
Security And Access Control For APIS using CF API ManagerSecurity And Access Control For APIS using CF API Manager
Security And Access Control For APIS using CF API Manager
 
Monetizing Business Models: ColdFusion and APIS
Monetizing Business Models: ColdFusion and APISMonetizing Business Models: ColdFusion and APIS
Monetizing Business Models: ColdFusion and APIS
 
Become a Security Rockstar with ColdFusion 2016
Become a Security Rockstar with ColdFusion 2016Become a Security Rockstar with ColdFusion 2016
Become a Security Rockstar with ColdFusion 2016
 
ColdFusion in Transit action
ColdFusion in Transit actionColdFusion in Transit action
ColdFusion in Transit action
 
Developer Insights for Application Upgrade to ColdFusion 2016
Developer Insights for Application Upgrade to ColdFusion 2016Developer Insights for Application Upgrade to ColdFusion 2016
Developer Insights for Application Upgrade to ColdFusion 2016
 
Where is cold fusion headed
Where is cold fusion headedWhere is cold fusion headed
Where is cold fusion headed
 
ColdFusion Keynote: Building the Agile Web Since 1995
ColdFusion Keynote: Building the Agile Web Since 1995ColdFusion Keynote: Building the Agile Web Since 1995
ColdFusion Keynote: Building the Agile Web Since 1995
 
Restful services with ColdFusion
Restful services with ColdFusionRestful services with ColdFusion
Restful services with ColdFusion
 
Build your own secure and real-time dashboard for mobile and web
Build your own secure and real-time dashboard for mobile and webBuild your own secure and real-time dashboard for mobile and web
Build your own secure and real-time dashboard for mobile and web
 
Why Everyone else writes bad code
Why Everyone else writes bad codeWhy Everyone else writes bad code
Why Everyone else writes bad code
 
Securing applications
Securing applicationsSecuring applications
Securing applications
 
Testing automaton
Testing automatonTesting automaton
Testing automaton
 
Rest ful tools for lazy experts
Rest ful tools for lazy expertsRest ful tools for lazy experts
Rest ful tools for lazy experts
 
Herding cats managing ColdFusion servers with commandbox
Herding cats managing ColdFusion servers with commandboxHerding cats managing ColdFusion servers with commandbox
Herding cats managing ColdFusion servers with commandbox
 

Kürzlich hochgeladen

Building Your Own AI Instance (TBLC AI )
Building Your Own AI Instance (TBLC AI )Building Your Own AI Instance (TBLC AI )
Building Your Own AI Instance (TBLC AI )Brian Pichman
 
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdfUiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdfDianaGray10
 
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve DecarbonizationUsing IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve DecarbonizationIES VE
 
20230202 - Introduction to tis-py
20230202 - Introduction to tis-py20230202 - Introduction to tis-py
20230202 - Introduction to tis-pyJamie (Taka) Wang
 
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019IES VE
 
UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8DianaGray10
 
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...Aggregage
 
Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)Commit University
 
AI You Can Trust - Ensuring Success with Data Integrity Webinar
AI You Can Trust - Ensuring Success with Data Integrity WebinarAI You Can Trust - Ensuring Success with Data Integrity Webinar
AI You Can Trust - Ensuring Success with Data Integrity WebinarPrecisely
 
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration WorkflowsIgniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration WorkflowsSafe Software
 
Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1DianaGray10
 
How Accurate are Carbon Emissions Projections?
How Accurate are Carbon Emissions Projections?How Accurate are Carbon Emissions Projections?
How Accurate are Carbon Emissions Projections?IES VE
 
Videogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdfVideogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdfinfogdgmi
 
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCostKubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCostMatt Ray
 
Comparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and IstioComparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and IstioChristian Posta
 
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...Will Schroeder
 
VoIP Service and Marketing using Odoo and Asterisk PBX
VoIP Service and Marketing using Odoo and Asterisk PBXVoIP Service and Marketing using Odoo and Asterisk PBX
VoIP Service and Marketing using Odoo and Asterisk PBXTarek Kalaji
 
Machine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdfMachine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdfAijun Zhang
 
UiPath Platform: The Backend Engine Powering Your Automation - Session 1
UiPath Platform: The Backend Engine Powering Your Automation - Session 1UiPath Platform: The Backend Engine Powering Your Automation - Session 1
UiPath Platform: The Backend Engine Powering Your Automation - Session 1DianaGray10
 

Kürzlich hochgeladen (20)

Building Your Own AI Instance (TBLC AI )
Building Your Own AI Instance (TBLC AI )Building Your Own AI Instance (TBLC AI )
Building Your Own AI Instance (TBLC AI )
 
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdfUiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
 
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve DecarbonizationUsing IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
 
20230202 - Introduction to tis-py
20230202 - Introduction to tis-py20230202 - Introduction to tis-py
20230202 - Introduction to tis-py
 
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
 
UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8
 
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
 
Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)
 
AI You Can Trust - Ensuring Success with Data Integrity Webinar
AI You Can Trust - Ensuring Success with Data Integrity WebinarAI You Can Trust - Ensuring Success with Data Integrity Webinar
AI You Can Trust - Ensuring Success with Data Integrity Webinar
 
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration WorkflowsIgniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
 
Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1
 
201610817 - edge part1
201610817 - edge part1201610817 - edge part1
201610817 - edge part1
 
How Accurate are Carbon Emissions Projections?
How Accurate are Carbon Emissions Projections?How Accurate are Carbon Emissions Projections?
How Accurate are Carbon Emissions Projections?
 
Videogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdfVideogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdf
 
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCostKubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
 
Comparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and IstioComparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and Istio
 
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
 
VoIP Service and Marketing using Odoo and Asterisk PBX
VoIP Service and Marketing using Odoo and Asterisk PBXVoIP Service and Marketing using Odoo and Asterisk PBX
VoIP Service and Marketing using Odoo and Asterisk PBX
 
Machine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdfMachine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdf
 
UiPath Platform: The Backend Engine Powering Your Automation - Session 1
UiPath Platform: The Backend Engine Powering Your Automation - Session 1UiPath Platform: The Backend Engine Powering Your Automation - Session 1
UiPath Platform: The Backend Engine Powering Your Automation - Session 1
 

Hey My Web App is Slow Where is the Problem

  • 1. Hey, my web app’s slow! Where’s the problem? Charlie Arehart Independent Consultant charlie@carehart.org / @carehart
  • 2. CHARLIE AREHART, @CAREHART CHARLIE@CAREHART.ORG Another day, another slow site… • Video available at http://fast.wistia.net/embed/iframe/swl2mt99vb
  • 3. CHARLIE AREHART, @CAREHART CHARLIE@CAREHART.ORG A range of problems/solutions • Understanding the challenges • Finding the problems: from the client perspective • Finding the problems: from the server perspective • Solving the problems: several ways • Testing your solutions • Watching for problems over time
  • 4. CHARLIE AREHART, @CAREHART CHARLIE@CAREHART.ORG About Charlie Arehart Independent consultant • 30+ in Enterprise IT • Adobe Forum MVP, CAB member • Frequent speaker to conf’s worldwide • Organizer, Online ColdFusion Meetup (coldfusionmeetup.com), 2800+ members • Living in south central KY Web home at www.carehart.org • 100+ presentations, 80+ articles, 400+ blog entries • UGTV: recordings of 600+ presos by 300+ speakers • CF411.com: 2000+ tools/resources, 150+ categories • Hosting courtesy of EdgeWeb Hosting
  • 5. CHARLIE AREHART, @CAREHART CHARLIE@CAREHART.ORG Housekeeping • Slides available online • carehart.org/presentations • My meta resource site • CF411.com • Closely related talks this week at CF Summit 2015 • My DB Skills Killed She server – Dave Ferguson • 10 Common CF Server Challenges… - Charlie Arehart
  • 7. CHARLIE AREHART, @CAREHART CHARLIE@CAREHART.ORG Why worry about site speed? (duh) • Simple usability • User impatience: they may seek alternatives • Search engines now ranking based on speed • Bandwidth (on your server): someone’s paying • Cloud deployments: you’re definitely paying!
  • 8. CHARLIE AREHART, @CAREHART CHARLIE@CAREHART.ORG Who am I talking to? • Any kind of web app developer, any platform • Whether designing for desktop or mobile • Hybrid/responsive, static/dynamic, ajax, etc • Less if using flat or single page models, of course • Speed problems can affect anyone • For many reasons…
  • 9. CHARLIE AREHART, @CAREHART CHARLIE@CAREHART.ORG Where might a problem be? • Could be on client, server, or network in between • On the client? • Could be your app/code • Could be a temporary OS problem for the user • CPU, memory, disk, etc • Could be the user’s browser • And so on
  • 10. CHARLIE AREHART, @CAREHART CHARLIE@CAREHART.ORG Where might a problem be? (cont) • On the server? • Could be a problem in app server • Could be in web svr, db svr, etc • Could be a temporary OS problem (cpu/disk/memory) • Could be something in your code (app svr, db svr code) • Could be issue with config • Could be a need to optimize for web delivery
  • 11. CHARLIE AREHART, @CAREHART CHARLIE@CAREHART.ORG Where could the problem be? (cont) • In the network? • From client, within their network (wifi, wired, mobile) • On server, could be comm between servers (app/db) • Could be calls to 3rd party sites (from client or server) • Could be infrastructure in between • Network/mobile provider • Proxies • Firewall/load balancer • Colleagues/family/neighbors overusing bandwidth
  • 12. CHARLIE AREHART, @CAREHART CHARLIE@CAREHART.ORG Where could the problem be? (cont) • Can be maddening! • But problems can be found and solved • with right perspective, tools, techniques, resources • Goal today • Give you that perspective • Show you such tools: some already at hand • May be familiar to some; seems not to most • Point you to resources for techniques and more
  • 13. Finding the problems: from the client perspective
  • 14. CHARLIE AREHART, @CAREHART CHARLIE@CAREHART.ORG Browser-provided tools • Most browsers offer “dev tools” with similar features • Right-click on browser whitespace, choose "inspect element" • Or use ctrl-shift-I in most browsers, or F12 in some • Safari: use Preferences>Show Developer Menu • See “network” tab, especially • Load times, of both your and 3rd party site requests • Details on each resource requested (text, graphics, css, etc.) • Options to focus on certain file names, types only • Option to clear/preserve display of files between refreshes • Clearing/disable of browser caching • Dockability of window, other configurability
  • 15. CHARLIE AREHART, @CAREHART CHARLIE@CAREHART.ORG Browser-provided tools (cont) • Chrome network tab also offers • “Capture screenshots” • Bandwidth throttling simulation • Most also offer javascript profiling and much more • Features have evolved over the years • Browser-specific observations follow • Chrome/Opera • Related tabs: timeline, profiles • Audits tab makes recommendations • …
  • 16. CHARLIE AREHART, @CAREHART CHARLIE@CAREHART.ORG Browser-provided tools (cont) • Firefox • Related tabs: performance (to profile js) • Right-click any requested file, choose "start performance analysis" to see graphs of cached vs not cached • or click on number of requests in bottom right, to see same • Internet Explorer (especially as of 11) • Related tabs: Profiler, UI Responsiveness, Memory • See also Emulation tab • See also tools>performance dashboard • …
  • 17. CHARLIE AREHART, @CAREHART CHARLIE@CAREHART.ORG Browser-provided tools (cont) • Similar functionality in standalone apps • Fiddler, Charles, ServiceCapture, many others • See my list at cf411.com/genericproxies • Let’s leave browser tools; focus on client machine
  • 18. CHARLIE AREHART, @CAREHART CHARLIE@CAREHART.ORG System (OS) Monitoring Tools • Problem could be on your/client’s machine • Several tools built-into OS can help • Can observe other things running on machine • May be stealing cpu, memory, disk i/o, registry i/o, bandwidth • Windows: • Task Manager and its cousin, Resource Monitor • See also Performance Monitor, Process Monitor (downloadable) • *nix • top/plist • OS X • Activity Monitor
  • 19. CHARLIE AREHART, @CAREHART CHARLIE@CAREHART.ORG Network testing tools • Again, problem could be in network bandwidth of your/client’s machine • Several free services can test that • speedtest.net • speedof.me • bandwidthplace.com • See my list at cf411.com/networkbandwidthtest • Great if you can be at client machine, what if not? • Will cover later with “user experience monitoring” tools
  • 20. CHARLIE AREHART, @CAREHART CHARLIE@CAREHART.ORG Page/site testing tools • Several tools help evaluate web app performance • As would be experienced by client • Some downloadable client-based tools • Yslow (yahoo), speedtracer (google), others • See my list at cf411.com/pageperftest_client • Many are services • Most are free, some are paid • These test from their servers to your app (simulate client) • Most evaluate, grade, and can recommend tweaks • Let’s consider a few, with demos
  • 21. CHARLIE AREHART, @CAREHART CHARLIE@CAREHART.ORG Page/site testing tools (cont) • webpagetest.org • tools.pingdom.com/fpt/ • Google pagespeed • has feature to provide compressed content from your site • Several more • See my list at cf411.com/pageperftest_server
  • 22. Finding the problems: from the server perspective
  • 23. CHARLIE AREHART, @CAREHART CHARLIE@CAREHART.ORG Could be any of many things • Again: app server, web server, OS problems, DB svr • Or third-party server called from your server app • Key is to have tools to monitor on server • And many such tools can alert on problems • Let’s consider each major component
  • 24. CHARLIE AREHART, @CAREHART CHARLIE@CAREHART.ORG Is it in your app server? • Several tools can monitor different app servers • Newrelic • Appdynamics • See my list at cf411.com/appmon • Is it in ColdFusion? CF-specific monitor tools • FusionReactor, SeeFusion • CF Enterprise’s Server Monitor • See my list at cf411.com/cfmon
  • 25. CHARLIE AREHART, @CAREHART CHARLIE@CAREHART.ORG Is it in your web server? • Several built-in web server monitoring tools • Apache: mod_status • IIS: Worker Process Monitor • Nginx: ngx_http_stub_status_module • Nginx Plus: "Live Activity Monitoring" • Other downloadable or service-based tools • Appdynamics • IISTracer • LeanSentry • See my list at cf411.com/wsmon
  • 26. CHARLIE AREHART, @CAREHART CHARLIE@CAREHART.ORG Is it an OS resource problems? • See same OS tools discussed before for clients • Good for point-in-time evaluation • See downloadable and/or service-oriented tools • To observe things over time, trigger alerts, etc • Nagios, NewRelic, Zabbix • See my list at cf411.com/sysmon
  • 27. CHARLIE AREHART, @CAREHART CHARLIE@CAREHART.ORG Is it in your database server? • So many database engines, so many tools • Can monitor running queries, history, slowness • Most have no overhead, yet few seem to consider them • See my list at cf411.com/dbmon • Consider also monitoring the OS resources there • Again, problem “with DB” may really be about its server • Remember also: • Network problems could exist between app svr & db svr • Would show as “slowness” of query processing
  • 28. CHARLIE AREHART, @CAREHART CHARLIE@CAREHART.ORG Another dimension to consider • User Experience Monitoring Tools • With these you add small js code to your web app • Gets sent to browser with your content • Reports back “time on network”, “page render time” • See tools like • NewRelic Browser and Mobile Monitoring features • FusionReactor User Experience Monitoring (UEM)
  • 30. CHARLIE AREHART, @CAREHART CHARLIE@CAREHART.ORG So many problems, so many solutions (so little time now) • Again, some tools seen offer specific recommendations • Many other site speed resources to help you • developer.yahoo.com/performance/ • yslow.org, stevesouders.com • developers.google.com/speed/ • developers.google.com/speed/docs/insights/rules • iispeed.com/pagespeed/optimizations • www.perf.rocks • And others
  • 31. CHARLIE AREHART, @CAREHART CHARLIE@CAREHART.ORG Some sample blog entries • yeoman.io/blog/performance-optimization.html • stevesouders.com/blog/2013/05/13/moving- beyond-window-onload/ • cdnify.com/blog/top-10-gulp-tasks-for-optimising- front-end-performance/ • zoompf.com/blog/2013/10/easy-ways-to-speed- up-your-wordpress-site • rigor.com/blog/2015/02/identify-solve-3rd-party- javascript-problems
  • 32. CHARLIE AREHART, @CAREHART CHARLIE@CAREHART.ORG The common recommendations • Most tools/resources focus on speeding up web app content delivery, recommending that you: • Minify Javascript/css • Remove unused js/css • Remove inline css • Combine jss and css files into one • Compress/minify things not already compressed • binaries (pdf, svg, ico, bmp, etc) • other text (html, rss/atom, etc) • Good recommendations, as long as it’s the problem
  • 33. CHARLIE AREHART, @CAREHART CHARLIE@CAREHART.ORG Caching (client, server) • Can also implement many forms of caching • Reduce number of page requests, speed them up • Some caching is client-oriented • Controlled from server code (see previous resources) • May also be configurable in client • Some caching is server-oriented • In app server, or via ehCache, memcached, redis, etc • See my list at cf411.com/distcache
  • 34. CHARLIE AREHART, @CAREHART CHARLIE@CAREHART.ORG Caching (client, server, network) • Can also cache content “on network” • So requests from clients are handled “before” server • Content Delivery Networks (CDN's) • Akamai, Cloudfront, Lightspeed, etc • See my list at cf411.com/cdn • Reverse proxies • squid, varnish, etc
  • 35. CHARLIE AREHART, @CAREHART CHARLIE@CAREHART.ORG Automation • Some tools can ease optimization task • Some are tools you use as developer • Some are server-side automation • Some frameworks perform optimizations • Server-side optimization • mod_pagespeed, iispeed, etc • See also services like Cloudflare, Squixa • Development automation tools may optimize also • grunt, maven, ant, rake, make, etc
  • 37. CHARLIE AREHART, @CAREHART CHARLIE@CAREHART.ORG • So you’ve implemented solutions. How to test? • First, lather/rinse/repeat page testing solutions earlier • Recall also bandwidth throttling simulation tools • Also consider load testing • Jmeter, loadimpact, loadstorm, others • Some can simulate different clients, bandwidths • See my list at cf411.com/loadtest
  • 39. CHARLIE AREHART, @CAREHART CHARLIE@CAREHART.ORG Many tools to help • You’ve done your optimizing, testing • How can you know if problems crop up later, over time? • Many tools to help • pingdom.com • siteuptime.com • monitor.us • newrelic.com/synthetics • zoompf.com/alerts • See my list at cf411.com/sitemon
  • 41. CHARLIE AREHART, @CAREHART CHARLIE@CAREHART.ORG What we’ve learned • Range of performance challenges • On client, network, server • And many parts within those • Range of tools/resources to spot/solve problems • Tools to watch for ongoing problems over time • Gave lots of tools, links • but also direction, perspective • Hope you feel empowered to go solve problems! • Feedback welcome, on twitter, email, etc