Impetus webcast 'Performance Bottleneck Identification through Software Diagnostics' available at [ Ссылка ]
• 1. Identifying Software Performance Bottlenecks using Diagnostic ToolsbyImpetus Technologies
• 2. OutlineTypical process of bottleneck identificationDiagnostic toolsHow diagnostic tools work?Diagnostic tools usage scenariosServer side diagnosticsClient side diagnosticsBenefits of diagnostic toolsReal world examplesQ&A
• 3. Typical Process of Bottleneck IdentificationExtensive time, resources, and efforts involved
• 4. Diagnostic ToolsResponse time break downTiers, components and layersInformationBottleneck methods, costliest queries, memory leaksDeployment optionsDevelopment environment, load testing environment, productionDiffer from profilersLow overheads, isolates code bottlenecks
• 5. How Diagnostic Tools Work?
• 6. Server-side Diagnostics: Plug-in ToolsAn extension to performance testing toolsDiagnostic data integrates with test resultsBreak down of transaction response timeDiagnostic configuration a part of performance testing toolEasy analysisSome popular tools available- Dynatrace, Deep Diagnostics
• 7. Server-side Diagnostics: Custom ToolsNot integrated with any performance testing toolRuns in addition to the performance testsIndependent configuration and analysisExisting tools, scripts can be usedSupport for specific technology, requirementsSome popular tools available- Glassbox, InfraRed
• 8. Server-side Diagnostics: ApproachSelect appropriate diagnostic toolObjectiveTechnologyCostCalibrate overhead of diagnostic toolApply method filtersBottleneck identificationTop 'X' methods and queriesResponse time distribution across layers
• 9. Client-side DiagnosticsVastly impacts end user experienceCategories of client sideMobile diagnosticsMeasuring app performance on mobile deviceLimited hardware resourcesBrowser diagnosticsIdentifies browser bottlenecks in page loading
• 10. Client-side Diagnostics: ApproachMobile diagnostics approachExisting tools (J2ME profiler, Android Trace)Custom solutionUse of Aspect oriented frameworks (AspectME, AspectLUA)Use byte code instrumentationRe-usable aspectsConfigure aspect within application binariesBrowser diagnostics approachDiagnostics plugins - Firebug, SpeedTrace, HttpWatchAnalyze statisticsIdentify bottlenecks - Java script execution, memory leaks, page loading
• 11. Benefits of Diagnostic ToolsDrill down user transactions to methods, DB queries and web service callsPerformance visibility across complete applicationIdentifies and isolates performance bottlenecksCostly queries, high method invocations, method execution time, suspicious memory consumptionEnhanced collaborationRich analysis dashboardBuilt-in heuristicsIntegrates with IDEReduces time and efforts involved in bottleneck identification
• 12. Case Study: Plug-in Diagnostic ToolsThe ClientOne of the leading companies in home health careKey ChallengePerformance bottleneck identification from performance testingLack of expertise in diagnostic toolsImpetus SolutionProposed SandStorm and its diagnostic plug-inCalibrated diagnostics overhead (~2%-3%)Captures diagnostics data across method & queries during test executionPerformed client side diagnostics using FirebugConsolidated data enabled quick isolation of performance bottlenecksBenefits RealisedFaster performance bottleneck identificationStreamlined and efficient performance engineeringNo performance issues in production
• 13. Case Study: Custom Diagnostic ToolsThe ClientLeading provider of financial risk management solutionsKey ChallengeMechanism to isolate code bottlenecks during performance testingPerformance monitoring of application in staging environmentReusing Load Runner scripts & performance center scenariosImpetus SolutionProposed implementing an extensible, custom diagnostic solutionBuilt diagnostic f/w using Aspect Oriented Programming using AspectWerkz, Jamon, Jarep librariesDeployed and configured utility in a staging environmentReports generated & analysed to identify expensive queriesBenefits RealisedMonitoring mechanisms in staging environmentCost saving as same performance testing tool was used
• 14. Application Diagnostics UtilityServer side diagnostic plug-in to SandStormDrill down transaction response times across multiple tiers and componentsIdentifies slow performing methods and queriesEasy configurationNo code changes requiredUser selection of monitored methodsLow overheadsSupports multiple Java app servers and programming stacks
• 15. Summing UpDiagnostic tools differ from profilersDiagnostic tools can be used in multiple environmentsSoftware diagnostics an integral piece of a successful performance engineering strategyCustom diagnostic solutions for specific requirementsCalibrate the overhead of diagnostic tool before actual usage.
Ещё видео!