SlideShare a Scribd company logo
1 of 40
Download to read offline
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 Alpharetta, Georgia (Atlanta)
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
• slideshare.net/coldfusionconference
• carehart.org/presentations
• Meta resource site
• Cf411.com
• Closely related talks this week
• Our application got popular, and now it breaks – Dan
Wilson
• Automating front-end performance - Kitt Hodsden
Understanding the
challenges
CHARLIE AREHART, @CAREHART
CHARLIE@CAREHART.ORG
Why worry about site speed?
(duh)
• Simple usability
• User impatience: may seek alternatives
• Search engines now rankings based on speed
• Bandwidth (on your server): someone’s paying
• Especially cloud architectures: pay-as-you-use
CHARLIE AREHART, @CAREHART
CHARLIE@CAREHART.ORG
Who am I talking to?
• Any kind of web app developer, any platform
• Whether app designed for desktop or mobile
• Hybrid or responsive
• Static or dynamic (or ajax, etc)
• Less so 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 the user’s browser
• Could be your app/code
• Could be a temporary OS problem for the user
• CPU, memory, disk, etc
CHARLIE AREHART, @CAREHART
CHARLIE@CAREHART.ORG
Where might a problem be?
(cont)
• On the server?
• Could be a problem in app server, web svr, db svr
• Could be a temporary OS problem (cpu/disk/memory)
• Could be a temporary svr problem for some or all
• Could be your code (app svr, db svr)
• Could be whether you’ve optimized for web delivery
CHARLIE AREHART, @CAREHART
CHARLIE@CAREHART.ORG
Where could the problem be?
(cont)
• In the network?
• For 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
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
• In most browsers
• right-click on browser whitespace, choose "inspect element"
• Or use ctrl-shift-i, or F12 in IE
• Safari: use Preferences>Show Developer Menu
• See network tab, especially
• Load times, of both you’re and 3rd party site pages
• Details on each file requested
• Options to focus on certain file types only
• Option to clear/preserve display of files
• Dockability
• Clearing/disable browser caching
• Configurability
CHARLIE AREHART, @CAREHART
CHARLIE@CAREHART.ORG
Browser-provided tools (cont)
• Most also offer javascript profiling
• Features have evolved over the years
• Browser-specific observations
• Chrome/Opera
• Related tabs: timeline, profiles
• Audits tab makes recommendations
• Firefox
• 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
• Related tabs: performance (to profile js)
CHARLIE AREHART, @CAREHART
CHARLIE@CAREHART.ORG
Browser-provided tools (cont)
• Internet Explorer (especially as of 11)
• Related tabs: Profiler, UI Responsiveness, Memory
• See also Emulation tab
• See also tools>performance dashboard
• Similar functionality in standalone apps
• Fiddler, Charles, ServiceCapture, many others
• See my list at cf411.com/genericproxies
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
• Maybe stealing cpu, memory, disk i/o, registry i/o, bandwidth
• Windows:
• Task Manager
• see also Performance Monitor, Resource 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 tools
• Yslow (yahoo), speedtracer (google)
• 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
• 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
• Google pagespeed
• has feature to provide compressed content from your
site
• tools.pingdom.com/fpt/
• 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
• Third-party server called from your server app
• Key is to have tools to monitor
• 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 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
• See my list at cf411.com/dbmon
• Consider also monitoring the OS resources there
• Remember also possible network problems could exist
between app server and db server
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
• Browser reports back to tool the time on network,
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
• Again, some tools 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 to
• 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 any of many forms of caching,
to reduce number of page requests, speed them up
• Some caching is client-oriented
• Controlled from server code (see previous resources)
• Configurable in client
• Some is server
• 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”
• 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 the task of doing optimization
• Some are tools you use as developer
• Some are server-side implementations that automate
• During development, could use grunt, maven, ant,
rake, make, etc
• Some frameworks perform optimizations
• Server-side optimization
• mod_pagespeed, iispeed, etc
• See also services like Cloudflare, Squixa
Testing your solutions
CHARLIE AREHART, @CAREHART
CHARLIE@CAREHART.ORG
• Lather, rinse, repeat page testing solutions earlier
• Also consider load testing
• Jmeter, loadimpact, loadstorm, others
• Some can simulate different clients
• 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 testing, optimizing
• How can you know if problems crop up 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
• There are a range of performance challenges
• On the client, network, server
• And many parts within those
• Can solve
• By use of tools to spot the problems
• And tools/techniques/resources to resolve them
• Can watch for ongoing problems over time
• Hope you feel empowered to go solve problems!
• Don’t forget to do your evals

More Related Content

Similar to Hey my web app 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?ColdFusionConference
 
HTTP - The Protocol of Our Lives
HTTP - The Protocol of Our LivesHTTP - The Protocol of Our Lives
HTTP - The Protocol of Our LivesBrent Shaffer
 
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
 
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
 
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
 
VA Smalltalk Update
VA Smalltalk UpdateVA Smalltalk Update
VA Smalltalk UpdateESUG
 
[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
 
What is SaaS vs Open Source | Open Source CMS (Content Management System) vs ...
What is SaaS vs Open Source | Open Source CMS (Content Management System) vs ...What is SaaS vs Open Source | Open Source CMS (Content Management System) vs ...
What is SaaS vs Open Source | Open Source CMS (Content Management System) vs ...ClickTecs
 
JavaScript debugging diagnostic web tools and firefox
JavaScript debugging diagnostic web tools and firefoxJavaScript debugging diagnostic web tools and firefox
JavaScript debugging diagnostic web tools and firefoxGennady Feldman
 
APIs, now and in the future
APIs, now and in the futureAPIs, now and in the future
APIs, now and in the futureChris Mills
 
Metadata & Interoperability: Free Tools
Metadata & Interoperability: Free ToolsMetadata & Interoperability: Free Tools
Metadata & Interoperability: Free ToolsMike Jennings
 
APIs and SDKs: Breaking into and Succeeding in a Specialty Market
APIs and SDKs: Breaking into and Succeeding in a Specialty MarketAPIs and SDKs: Breaking into and Succeeding in a Specialty Market
APIs and SDKs: Breaking into and Succeeding in a Specialty MarketSTC-Philadelphia Metro Chapter
 
Four Practices to Fix Your Top .NET Performance Problems
Four Practices to Fix Your Top .NET Performance ProblemsFour Practices to Fix Your Top .NET Performance Problems
Four Practices to Fix Your Top .NET Performance ProblemsAndreas Grabner
 
27.1.2014, Tampere. Perinteinen mobiilimaailma murroksessa. Petri Niemi: Sing...
27.1.2014, Tampere. Perinteinen mobiilimaailma murroksessa. Petri Niemi: Sing...27.1.2014, Tampere. Perinteinen mobiilimaailma murroksessa. Petri Niemi: Sing...
27.1.2014, Tampere. Perinteinen mobiilimaailma murroksessa. Petri Niemi: Sing...Tieturi Oy
 
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
 

Similar to Hey my web app is slow where is the problem (20)

10 common cf server challenges
10 common cf server challenges10 common cf server challenges
10 common cf server challenges
 
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?
 
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
 
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
 
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
 
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
 
VA Smalltalk Update
VA Smalltalk UpdateVA Smalltalk Update
VA Smalltalk Update
 
[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
 
What is SaaS vs Open Source | Open Source CMS (Content Management System) vs ...
What is SaaS vs Open Source | Open Source CMS (Content Management System) vs ...What is SaaS vs Open Source | Open Source CMS (Content Management System) vs ...
What is SaaS vs Open Source | Open Source CMS (Content Management System) vs ...
 
JavaScript debugging diagnostic web tools and firefox
JavaScript debugging diagnostic web tools and firefoxJavaScript debugging diagnostic web tools and firefox
JavaScript debugging diagnostic web tools and firefox
 
APIs, now and in the future
APIs, now and in the futureAPIs, now and in the future
APIs, now and in the future
 
Metadata & Interoperability: Free Tools
Metadata & Interoperability: Free ToolsMetadata & Interoperability: Free Tools
Metadata & Interoperability: Free Tools
 
APIs and SDKs: Breaking into and Succeeding in a Specialty Market
APIs and SDKs: Breaking into and Succeeding in a Specialty MarketAPIs and SDKs: Breaking into and Succeeding in a Specialty Market
APIs and SDKs: Breaking into and Succeeding in a Specialty Market
 
Four Practices to Fix Your Top .NET Performance Problems
Four Practices to Fix Your Top .NET Performance ProblemsFour Practices to Fix Your Top .NET Performance Problems
Four Practices to Fix Your Top .NET Performance Problems
 
27.1.2014, Tampere. Perinteinen mobiilimaailma murroksessa. Petri Niemi: Sing...
27.1.2014, Tampere. Perinteinen mobiilimaailma murroksessa. Petri Niemi: Sing...27.1.2014, Tampere. Perinteinen mobiilimaailma murroksessa. Petri Niemi: Sing...
27.1.2014, Tampere. Perinteinen mobiilimaailma murroksessa. Petri Niemi: Sing...
 
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
 
Keep Applications Online
Keep Applications OnlineKeep Applications Online
Keep Applications Online
 

More from 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
 
Super Fast Application development with Mura CMS
Super Fast Application development with Mura CMSSuper Fast Application development with Mura CMS
Super Fast Application development with Mura CMSColdFusionConference
 
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
 

More from 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
 
Instant ColdFusion with Vagrant
Instant ColdFusion with VagrantInstant ColdFusion with Vagrant
Instant ColdFusion with Vagrant
 
Restful services with ColdFusion
Restful services with ColdFusionRestful services with ColdFusion
Restful services with ColdFusion
 
Super Fast Application development with Mura CMS
Super Fast Application development with Mura CMSSuper Fast Application development with Mura CMS
Super Fast Application development with Mura CMS
 
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
 

Recently uploaded

#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAndikSusilo4
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 

Recently uploaded (20)

#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & Application
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 

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 Alpharetta, Georgia (Atlanta) 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 • slideshare.net/coldfusionconference • carehart.org/presentations • Meta resource site • Cf411.com • Closely related talks this week • Our application got popular, and now it breaks – Dan Wilson • Automating front-end performance - Kitt Hodsden
  • 7. CHARLIE AREHART, @CAREHART CHARLIE@CAREHART.ORG Why worry about site speed? (duh) • Simple usability • User impatience: may seek alternatives • Search engines now rankings based on speed • Bandwidth (on your server): someone’s paying • Especially cloud architectures: pay-as-you-use
  • 8. CHARLIE AREHART, @CAREHART CHARLIE@CAREHART.ORG Who am I talking to? • Any kind of web app developer, any platform • Whether app designed for desktop or mobile • Hybrid or responsive • Static or dynamic (or ajax, etc) • Less so 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 the user’s browser • Could be your app/code • Could be a temporary OS problem for the user • CPU, memory, disk, etc
  • 10. CHARLIE AREHART, @CAREHART CHARLIE@CAREHART.ORG Where might a problem be? (cont) • On the server? • Could be a problem in app server, web svr, db svr • Could be a temporary OS problem (cpu/disk/memory) • Could be a temporary svr problem for some or all • Could be your code (app svr, db svr) • Could be whether you’ve optimized for web delivery
  • 11. CHARLIE AREHART, @CAREHART CHARLIE@CAREHART.ORG Where could the problem be? (cont) • In the network? • For 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
  • 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 • In most browsers • right-click on browser whitespace, choose "inspect element" • Or use ctrl-shift-i, or F12 in IE • Safari: use Preferences>Show Developer Menu • See network tab, especially • Load times, of both you’re and 3rd party site pages • Details on each file requested • Options to focus on certain file types only • Option to clear/preserve display of files • Dockability • Clearing/disable browser caching • Configurability
  • 15. CHARLIE AREHART, @CAREHART CHARLIE@CAREHART.ORG Browser-provided tools (cont) • Most also offer javascript profiling • Features have evolved over the years • Browser-specific observations • Chrome/Opera • Related tabs: timeline, profiles • Audits tab makes recommendations • Firefox • 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 • Related tabs: performance (to profile js)
  • 16. CHARLIE AREHART, @CAREHART CHARLIE@CAREHART.ORG Browser-provided tools (cont) • Internet Explorer (especially as of 11) • Related tabs: Profiler, UI Responsiveness, Memory • See also Emulation tab • See also tools>performance dashboard • Similar functionality in standalone apps • Fiddler, Charles, ServiceCapture, many others • See my list at cf411.com/genericproxies
  • 17. 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 • Maybe stealing cpu, memory, disk i/o, registry i/o, bandwidth • Windows: • Task Manager • see also Performance Monitor, Resource Monitor, Process Monitor (downloadable) • *nix • top/plist • OS X • Activity Monitor
  • 18. 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
  • 19. 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 tools • Yslow (yahoo), speedtracer (google) • 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 • Most evaluate, grade, and can recommend tweaks • Let’s consider a few, with demos
  • 20. CHARLIE AREHART, @CAREHART CHARLIE@CAREHART.ORG Page/site testing tools (cont) • webpagetest.org • Google pagespeed • has feature to provide compressed content from your site • tools.pingdom.com/fpt/ • Several more • See my list at cf411.com/pageperftest_server
  • 21. Finding the problems: from the server perspective
  • 22. CHARLIE AREHART, @CAREHART CHARLIE@CAREHART.ORG Could be any of many things • Again: app server, web server, OS problems, DB svr • Third-party server called from your server app • Key is to have tools to monitor • And many such tools can alert on problems • Let’s consider each major component
  • 23. 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
  • 24. 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
  • 25. 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 over time, trigger alerts, etc • Nagios, NewRelic, Zabbix • See my list at cf411.com/sysmon
  • 26. CHARLIE AREHART, @CAREHART CHARLIE@CAREHART.ORG Is it in your database server? • So many database engines, so many tools • See my list at cf411.com/dbmon • Consider also monitoring the OS resources there • Remember also possible network problems could exist between app server and db server
  • 27. 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 • Browser reports back to tool the time on network, render time • See tools like • NewRelic Browser and Mobile Monitoring features • FusionReactor User Experience Monitoring (UEM)
  • 29. CHARLIE AREHART, @CAREHART CHARLIE@CAREHART.ORG So many problems, so many solutions • Again, some tools 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
  • 30. 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
  • 31. CHARLIE AREHART, @CAREHART CHARLIE@CAREHART.ORG The common recommendations • Most tools/resources focus on speeding up web app content delivery, recommending to • 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
  • 32. CHARLIE AREHART, @CAREHART CHARLIE@CAREHART.ORG Caching (client, server) • Can also implement any of many forms of caching, to reduce number of page requests, speed them up • Some caching is client-oriented • Controlled from server code (see previous resources) • Configurable in client • Some is server • ehCache, memcached, redis, etc • See my list at cf411.com/distcache
  • 33. CHARLIE AREHART, @CAREHART CHARLIE@CAREHART.ORG Caching (client, server, network) • Can also cache content “on network” • Content Delivery Networks (CDN's) • Akamai, Cloudfront, Lightspeed, etc • See my list at cf411.com/cdn • Reverse Proxies • squid, varnish, etc
  • 34. CHARLIE AREHART, @CAREHART CHARLIE@CAREHART.ORG Automation • Some tools can ease the task of doing optimization • Some are tools you use as developer • Some are server-side implementations that automate • During development, could use grunt, maven, ant, rake, make, etc • Some frameworks perform optimizations • Server-side optimization • mod_pagespeed, iispeed, etc • See also services like Cloudflare, Squixa
  • 36. CHARLIE AREHART, @CAREHART CHARLIE@CAREHART.ORG • Lather, rinse, repeat page testing solutions earlier • Also consider load testing • Jmeter, loadimpact, loadstorm, others • Some can simulate different clients • See my list at cf411.com/loadtest
  • 38. CHARLIE AREHART, @CAREHART CHARLIE@CAREHART.ORG Many tools to help • You’ve done your testing, optimizing • How can you know if problems crop up 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
  • 40. CHARLIE AREHART, @CAREHART CHARLIE@CAREHART.ORG What we’ve learned • There are a range of performance challenges • On the client, network, server • And many parts within those • Can solve • By use of tools to spot the problems • And tools/techniques/resources to resolve them • Can watch for ongoing problems over time • Hope you feel empowered to go solve problems! • Don’t forget to do your evals