This document summarizes a presentation on performance optimization on a budget. It discusses measuring and improving performance at the front-end through asset optimization, latency reduction, and client-side rendering. It also discusses measuring and optimizing performance at the backend through caching, databases, and server-side architecture. The document lists several free and paid tools for profiling, testing, and analyzing performance. It concludes with best practices for performance including establishing goals, architecture, testing, and an SDLC approach.
The document provides an overview of earned value management (EVM) as a tool for measuring employee and project performance. It defines key EVM concepts like budgeted cost of work scheduled, budgeted cost of work performed, and actual cost of work performed. The document uses examples to demonstrate how to calculate EVM metrics like schedule variance, cost variance, schedule performance index, and cost performance index to assess if a project is on budget and on schedule. It highlights how EVM provides a more integrated approach than traditional performance measurement methods.
Aligning Enrollment Management with Performance-Based Budget Planning, Marsha...Scott Marshall
The document discusses integrating enrollment management and performance-based budgeting at Portland State University. It describes how the university developed tools like the Revenue and Cost Attribution Tool (RCAT) and the process of Integrated Planning of Enrollment and Budget (IPEB) to directly link enrollment forecasting and budget planning. The IPEB process involves academic units forecasting enrollments, using those forecasts to estimate revenue and do an initial budget adjustment, then further adjusting budgets based on performance and reallocating funds between units for the next fiscal year. The goal is to purposefully plan enrollment to achieve student and institutional success while basing budgets on expected program results.
This document outlines the training matrix for a three-day in-service training of teachers on the secondary level subject of Araling Panlipunan (Social Studies) at the Siquijor Provincial Science High School. The training will cover various economic topics each day from 7:30am to 4:30pm, with sessions facilitated by different teachers. Day one will cover topics like uses and value of money, while day two will discuss factors of production and demand. Day three will include demonstration teachings and discussions on technology readiness and inflation. The program includes daily opening and closing activities as well as breaks for snacks and lunch.
Presentation on budget for training of personnels of regional ceentresMukut Deori
The document discusses different types of budgets used in government and organizations, including traditional budgets, performance budgets, zero-base budgets, and outcome budgets. It provides details on the key aspects and processes of each type of budget. The main purposes of budgets are planning resource allocation, control, and achieving organizational objectives.
Project work plan and budget matrix gulayan 2016LemardeGuia
This document outlines the activities, outputs, timeline, responsibilities, and budget for a "Gulayan sa Paaralan" or school garden project at a school in San Jose de Buan, Philippines. The project aims to increase students' awareness of the health and economic benefits of vegetables by establishing an on-site garden and conducting seminars on bio-intensive gardening techniques. Key activities include preparing implementation plans, building garden structures, holding workshops, recognizing best student gardeners, and providing feeding programs using harvested crops. The activities will be led by teachers and coordinators with a total proposed budget of P10,000 from the school's MOOE funds.
The document discusses the perils of performance measurement and how measuring performance is more complex than simply using "SMART" indicators. It provides three key points:
1. Not everything that counts can be counted, and performance measurement should not encourage the wrong behaviors by focusing on the wrong metrics.
2. Performance measurement must consider its purpose and use appropriate indicators for goals like budgeting, celebrating successes, evaluation, and improvement. No single metric can achieve all purposes.
3. Intangible factors like culture, leadership, and human capital are also important for performance but difficult to measure, requiring a holistic approach beyond technical metrics.
Aligning Performance Levers for Breakthrough Sales Results 08-2011Mike Kunkle
Mike Kunkle's sales effectiveness methodology... a six-project methodology for aligning sales performance levers and radically improving sales results.
Developing Metrics and KPI (Key Performance IndicatorsVictor Holman
Get a FREE performance management kit and access to all of Victor's full videos at:
www.lifecycle-performance-pros.com
This presentation covers the basics of developing successful performance metrics, from developing winning KPIs, learning how to develop the right metrics, the rules of developing KPIs and metrics and common performance metrics for managing a successful organization.
Performance testing in scope of migration to cloud by Serghei RadovValeriia Maliarenko
This document discusses performance testing considerations for migrating an application to the cloud. It covers cloud computing principles like multi-tenancy and horizontal scalability. Challenges like over-provisioning and network issues are addressed. Effective provisioning using predictive auto-scaling is recommended. Tools for monitoring, load testing, and analyzing results are presented, including New Relic, DataDog, Flood.io, and JMeter. The document emphasizes defining acceptance criteria, workload characterization, and iterating on tests to analyze and scale resources. Costs of various performance testing tools on cloud providers are compared.
Explaining why you should and how you can test your web application using JMeter test plans to determine the scalability. By knowing how good or bad your application performs you can then make the decision to optimize it.
But where to start optimizing? => You need to profile your application in order to see the components which have the most impact in your application regarding number of method calls, memory consumption and CPU time used.
XHProf is a good hierarchical profiler which you can use to generate the callstack and a callgraph of your application (directed acyclic weighted graph) to see where you could start optimizing your application.
This talk was presented on the TYPO3 DevDays 2015 in Nuremberg.
This document provides an overview of a workshop on cloud native, capacity, performance and cost optimization tools and techniques. It begins with introducing the difference between a presentation and workshop. It then discusses introducing attendees, presenting on various cloud native topics like migration paths and operations tools, and benchmarking Cassandra performance at scale across AWS regions. The goal is to explore cloud native techniques while discussing specific problems attendees face.
AWS re:Invent 2016: Amazon CloudFront Flash Talks: Best Practices on Configur...Amazon Web Services
In this series of 15-minute technical flash talks you will learn directly from Amazon CloudFront engineers and their best practices on debugging caching issues, measuring performance using Real User Monitoring (RUM), and stopping malicious viewers using CloudFront and AWS WAF.
More and more clients are looking to understand the capabilities of the OTM/G-Log architecture and configuration in order better tune OTM. Usually, this is required because of poor OTM performance or as preparation for significant changes to OTM configuration, volume, or platform. The client may be experience poor performance throughout the entire system or for a very specific use cases. The primary objective of a Performance Tuning Exercise is to understand how OTM is being utilized and to recommend solution to improve the performance of OTM.
We recommend and will take the audience through a “ground-up” performance tuning exercise, starting with hardware and infrastructure, moving to Java and App server tuning, then to OTM technical tuning and finally to the OTM functional tuning (data, agents, etc).
These audits may identify hardware constraints at each tier, networking, or other infrastructure constraints causing sub-optimal system performance. Simply stated, the performance audit will identify all bottlenecks in the system if they exist.
In many cases the largest performance is impacts are not hardware, but rather how the data is configured within the application. So as part of the exercise we will analyze database performance, individual SQL queries, OTM Queues, bulk planning parameters, agents, rates and the settlement process.
Understanding the methods which will best identify these bottlenecks will help you avoid performance issues early in your project and save considerable time and expense as you near go-live. This presentation will guide you through the steps necessary to better understand what is impacting performance and how to best handle it. It will provide lessons learned and tools that are available to you better manage and maintain a healthy OTM environment.
Presented by Chris Plough at MavenWire
A Public Cloud Based SOA Workflow for Machine Learning Based Recommendation A...Ram G Athreya
Over the past decade the field of Cloud Computing has been the focus of intensive research. In this paper we propose a framework that will simulate the architectural setup of a cloud environment and examine how it can leverage Apriori and Sequential Pattern based recommendation algorithms through R. Furthermore, we present a multi layered application encompassing its backend architecture, user interface built using the responsive web design technique and its development workflow. The proposed system was also exhaustively load tested using Apache JMeter to ensure its reliability at scale and the experimental results are presented.
ATAGTR2017 Unified APM: The new age performance monitoring for production sys...Agile Testing Alliance
The presentation on Unified APM: The new age performance monitoring for production systems was done during #ATAGTR2017, one of the largest global testing conference. All copyright belongs to the author.
Author and presenter : Kaushik Raghavan
This document provides an overview of the tools available in Chrome Dev Tools for web development and performance analysis. It describes the Elements, Styles, and Resources panels for inspecting and editing pages. It also covers the Network panel for analyzing resource loading, the Timeline for performance profiling, and the Audits and PageSpeed panels for optimization suggestions. Tips are provided on using these various Dev Tools to debug issues, optimize pages, and remotely debug on devices.
This document provides practical strategies for improving front-end performance of websites. It discusses specific techniques like making fewer HTTP requests by combining files, leveraging browser caching with far-future expires headers, gzipping components, using CSS sprites, and deploying assets on a content delivery network. It also summarizes key rules from tools like YSlow and PageSpeed for optimizing front-end performance.
Common Sense Performance Indicators in the CloudNick Gerner
This document discusses common performance indicators for monitoring systems in the cloud. It recommends monitoring system characteristics like CPU, memory, disks, and network usage as well as application stack metrics like frontend performance, caching, and database and API usage. Tools like collectd, rrdtool, and drraw can be used to collect, store, and visualize performance data over time to help tune performance, investigate issues, and understand system architectures.
Great contribution from our partner Splitpoints solutions on how to collect and format Performance Vision data into Elastic Search / Kibana.
Potential applications are:
- NPM or APM custom dashboards
- Dashboards mixing Performance Vision data with other ITSM tools / sources
- Alerting and baselining.
Deploying any software can be a challenge if you don't understand how resources are used or how to plan for the capacity of your systems. Whether you need to deploy or grow a single MongoDB instance, replica set, or tens of sharded clusters then you probably share the same challenges in trying to size that deployment.
This webinar will cover what resources MongoDB uses, and how to plan for their use in your deployment. Topics covered will include understanding how to model and plan capacity needs for new and growing deployments. The goal of this webinar will be to provide you with the tools needed to be successful in managing your MongoDB capacity planning tasks.
The document discusses effective strategies for monitoring client-side web performance. It recommends collecting both real user monitoring metrics from actual users as well as synthetic metrics from automated tests. It describes tools like Navigation Timing API, paint metrics, custom metrics, and open-source libraries that can capture metrics. It also discusses storing and visualizing metrics with tools like Graphite and Grafana and how to reduce noise and account for environment differences when analyzing performance data. The overall goal is to utilize performance metrics to inform decisions that improve the user experience.
The document discusses recent trends in the IT industry including cloud computing, mobile applications, Agile methodology (Scrum), N-tier architecture, and Java vs .NET. It covers topics such as cloud computing fundamentals and features, social networking sites, mobile app development and monetization, the shift from waterfall to Agile development, Scrum processes, Agile principles, N-tier architecture, advantages of both Java and .NET, and the continued relevance of object-oriented design.
A real use case of in-house 2 PB Hadoop Cluster Migration to AWS within few months. AWS is easy-to-use, cost-effective, flexible, scalable and very reliable.Technologies involved are Hive, Presto, Python, Autosys using AWS EMR, AWS Lambda, AWS S3, AWS DynamoDB and AWS SNS.
Spark Development Lifecycle at Workday - ApacheCon 2020Pavel Hardak
Presented by Eren Avsarogullari and Pavel Hardak (ApacheCon 2020)
https://www.linkedin.com/in/erenavsarogullari/
https://www.linkedin.com/in/pavelhardak/
Apache Spark is the backbone of Workday's Prism Analytics Platform, supporting various data processing use-cases such as Data Ingestion, Preparation(Cleaning, Transformation & Publishing) and Discovery. At Workday, we extend Spark OSS repo and build custom Spark releases covering our custom patches on the top of Spark OSS patches. Custom Spark release development introduces the challenges when supporting multiple Spark versions against to a single repo and dealing with large numbers of customers, each of which can execute their own long-running Spark Applications. When building the custom Spark releases and new Spark features, dedicated Benchmark pipeline is also important to catch performance regression by running the standard TPC-H & TPC-DS queries against to both Spark versions and monitoring Spark driver & executors' runtime behaviors before production. At deployment phase, we also follow progressive roll-out plan leveraged by Feature Toggles used to enable/disable the new Spark features at the runtime. As part of our development lifecycle, Feature Toggles help on various use cases such as selection of Spark compile-time and runtime versions, running test pipelines against to both Spark versions on the build pipeline and supporting progressive roll-out deployment when dealing with large numbers of customers and long-running Spark Applications. On the other hand, executed Spark queries' operation level runtime behaviors are important for debugging and troubleshooting. Incoming Spark release is going to introduce new SQL Rest API exposing executed queries' operation level runtime metrics and we transform them to queryable Hive tables in order to track operation level runtime behaviors per executed query. In the light of these, this session aims to cover Spark feature development lifecycle at Workday by covering custom Spark Upgrade model, Benchmark & Monitoring Pipeline and Spark Runtime Metrics Pipeline details through used patterns and technologies step by step.
Apache Spark Development Lifecycle @ Workday - ApacheCon 2020Eren Avşaroğulları
Workday uses Apache Spark as the foundational technology for its Prism Analytics product. It has developed a custom Spark upgrade model to handle upgrading Spark across its multi-tenant environment. Workday also collects runtime metrics on Spark SQL queries using a custom metrics pipeline and REST API. Future plans include upgrading to Spark 3.x and improving multi-tenancy support through a "Multiverse" deployment model.
This document discusses application architecture and considerations for different layers including presentation, domain, and data source layers. It covers topics like layering, client types, content delivery, domain layer patterns like transaction script, domain model and table module. It also discusses data source layer patterns like gateway, active record and data mapper. Finally, it provides an example of implementing user signup in the Play! framework.
Quality Patents: Patents That Stand the Test of TimeAurora Consulting
Is your patent a vanity piece of paper for your office wall? Or is it a reliable, defendable, assertable, property right? The difference is often quality.
Is your patent simply a transactional cost and a large pile of legal bills for your startup? Or is it a leverageable asset worthy of attracting precious investment dollars, worth its cost in multiples of valuation? The difference is often quality.
Is your patent application only good enough to get through the examination process? Or has it been crafted to stand the tests of time and varied audiences if you later need to assert that document against an infringer, find yourself litigating with it in an Article 3 Court at the hands of a judge and jury, God forbid, end up having to defend its validity at the PTAB, or even needing to use it to block pirated imports at the International Trade Commission? The difference is often quality.
Quality will be our focus for a good chunk of the remainder of this season. What goes into a quality patent, and where possible, how do you get it without breaking the bank?
** Episode Overview **
In this first episode of our quality series, Kristen Hansen and the panel discuss:
⦿ What do we mean when we say patent quality?
⦿ Why is patent quality important?
⦿ How to balance quality and budget
⦿ The importance of searching, continuations, and draftsperson domain expertise
⦿ Very practical tips, tricks, examples, and Kristen’s Musts for drafting quality applications
https://www.aurorapatents.com/patently-strategic-podcast.html
Implementations of Fused Deposition Modeling in real worldEmerging Tech
The presentation showcases the diverse real-world applications of Fused Deposition Modeling (FDM) across multiple industries:
1. **Manufacturing**: FDM is utilized in manufacturing for rapid prototyping, creating custom tools and fixtures, and producing functional end-use parts. Companies leverage its cost-effectiveness and flexibility to streamline production processes.
2. **Medical**: In the medical field, FDM is used to create patient-specific anatomical models, surgical guides, and prosthetics. Its ability to produce precise and biocompatible parts supports advancements in personalized healthcare solutions.
3. **Education**: FDM plays a crucial role in education by enabling students to learn about design and engineering through hands-on 3D printing projects. It promotes innovation and practical skill development in STEM disciplines.
4. **Science**: Researchers use FDM to prototype equipment for scientific experiments, build custom laboratory tools, and create models for visualization and testing purposes. It facilitates rapid iteration and customization in scientific endeavors.
5. **Automotive**: Automotive manufacturers employ FDM for prototyping vehicle components, tooling for assembly lines, and customized parts. It speeds up the design validation process and enhances efficiency in automotive engineering.
6. **Consumer Electronics**: FDM is utilized in consumer electronics for designing and prototyping product enclosures, casings, and internal components. It enables rapid iteration and customization to meet evolving consumer demands.
7. **Robotics**: Robotics engineers leverage FDM to prototype robot parts, create lightweight and durable components, and customize robot designs for specific applications. It supports innovation and optimization in robotic systems.
8. **Aerospace**: In aerospace, FDM is used to manufacture lightweight parts, complex geometries, and prototypes of aircraft components. It contributes to cost reduction, faster production cycles, and weight savings in aerospace engineering.
9. **Architecture**: Architects utilize FDM for creating detailed architectural models, prototypes of building components, and intricate designs. It aids in visualizing concepts, testing structural integrity, and communicating design ideas effectively.
Each industry example demonstrates how FDM enhances innovation, accelerates product development, and addresses specific challenges through advanced manufacturing capabilities.
How RPA Help in the Transportation and Logistics Industry.pptxSynapseIndia
Revolutionize your transportation processes with our cutting-edge RPA software. Automate repetitive tasks, reduce costs, and enhance efficiency in the logistics sector with our advanced solutions.
Kief Morris rethinks the infrastructure code delivery lifecycle, advocating for a shift towards composable infrastructure systems. We should shift to designing around deployable components rather than code modules, use more useful levels of abstraction, and drive design and deployment from applications rather than bottom-up, monolithic architecture and delivery.
UiPath Community Day Kraków: Devs4Devs ConferenceUiPathCommunity
We are honored to launch and host this event for our UiPath Polish Community, with the help of our partners - Proservartner!
We certainly hope we have managed to spike your interest in the subjects to be presented and the incredible networking opportunities at hand, too!
Check out our proposed agenda below 👇👇
08:30 ☕ Welcome coffee (30')
09:00 Opening note/ Intro to UiPath Community (10')
Cristina Vidu, Global Manager, Marketing Community @UiPath
Dawid Kot, Digital Transformation Lead @Proservartner
09:10 Cloud migration - Proservartner & DOVISTA case study (30')
Marcin Drozdowski, Automation CoE Manager @DOVISTA
Pawel Kamiński, RPA developer @DOVISTA
Mikolaj Zielinski, UiPath MVP, Senior Solutions Engineer @Proservartner
09:40 From bottlenecks to breakthroughs: Citizen Development in action (25')
Pawel Poplawski, Director, Improvement and Automation @McCormick & Company
Michał Cieślak, Senior Manager, Automation Programs @McCormick & Company
10:05 Next-level bots: API integration in UiPath Studio (30')
Mikolaj Zielinski, UiPath MVP, Senior Solutions Engineer @Proservartner
10:35 ☕ Coffee Break (15')
10:50 Document Understanding with my RPA Companion (45')
Ewa Gruszka, Enterprise Sales Specialist, AI & ML @UiPath
11:35 Power up your Robots: GenAI and GPT in REFramework (45')
Krzysztof Karaszewski, Global RPA Product Manager
12:20 🍕 Lunch Break (1hr)
13:20 From Concept to Quality: UiPath Test Suite for AI-powered Knowledge Bots (30')
Kamil Miśko, UiPath MVP, Senior RPA Developer @Zurich Insurance
13:50 Communications Mining - focus on AI capabilities (30')
Thomasz Wierzbicki, Business Analyst @Office Samurai
14:20 Polish MVP panel: Insights on MVP award achievements and career profiling
Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...Bert Blevins
Today’s digitally connected world presents a wide range of security challenges for enterprises. Insider security threats are particularly noteworthy because they have the potential to cause significant harm. Unlike external threats, insider risks originate from within the company, making them more subtle and challenging to identify. This blog aims to provide a comprehensive understanding of insider security threats, including their types, examples, effects, and mitigation techniques.
The Rise of Supernetwork Data Intensive ComputingLarry Smarr
Invited Remote Lecture to SC21
The International Conference for High Performance Computing, Networking, Storage, and Analysis
St. Louis, Missouri
November 18, 2021
Blockchain technology is transforming industries and reshaping the way we conduct business, manage data, and secure transactions. Whether you're new to blockchain or looking to deepen your knowledge, our guidebook, "Blockchain for Dummies", is your ultimate resource.
Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...Chris Swan
Have you noticed the OpenSSF Scorecard badges on the official Dart and Flutter repos? It's Google's way of showing that they care about security. Practices such as pinning dependencies, branch protection, required reviews, continuous integration tests etc. are measured to provide a score and accompanying badge.
You can do the same for your projects, and this presentation will show you how, with an emphasis on the unique challenges that come up when working with Dart and Flutter.
The session will provide a walkthrough of the steps involved in securing a first repository, and then what it takes to repeat that process across an organization with multiple repos. It will also look at the ongoing maintenance involved once scorecards have been implemented, and how aspects of that maintenance can be better automated to minimize toil.
Support en anglais diffusé lors de l'événement 100% IA organisé dans les locaux parisiens d'Iguane Solutions, le mardi 2 juillet 2024 :
- Présentation de notre plateforme IA plug and play : ses fonctionnalités avancées, telles que son interface utilisateur intuitive, son copilot puissant et des outils de monitoring performants.
- REX client : Cyril Janssens, CTO d’ easybourse, partage son expérience d’utilisation de notre plateforme IA plug & play.
Advanced Techniques for Cyber Security Analysis and Anomaly DetectionBert Blevins
Cybersecurity is a major concern in today's connected digital world. Threats to organizations are constantly evolving and have the potential to compromise sensitive information, disrupt operations, and lead to significant financial losses. Traditional cybersecurity techniques often fall short against modern attackers. Therefore, advanced techniques for cyber security analysis and anomaly detection are essential for protecting digital assets. This blog explores these cutting-edge methods, providing a comprehensive overview of their application and importance.
Are you interested in dipping your toes in the cloud native observability waters, but as an engineer you are not sure where to get started with tracing problems through your microservices and application landscapes on Kubernetes? Then this is the session for you, where we take you on your first steps in an active open-source project that offers a buffet of languages, challenges, and opportunities for getting started with telemetry data.
The project is called openTelemetry, but before diving into the specifics, we’ll start with de-mystifying key concepts and terms such as observability, telemetry, instrumentation, cardinality, percentile to lay a foundation. After understanding the nuts and bolts of observability and distributed traces, we’ll explore the openTelemetry community; its Special Interest Groups (SIGs), repositories, and how to become not only an end-user, but possibly a contributor.We will wrap up with an overview of the components in this project, such as the Collector, the OpenTelemetry protocol (OTLP), its APIs, and its SDKs.
Attendees will leave with an understanding of key observability concepts, become grounded in distributed tracing terminology, be aware of the components of openTelemetry, and know how to take their first steps to an open-source contribution!
Key Takeaways: Open source, vendor neutral instrumentation is an exciting new reality as the industry standardizes on openTelemetry for observability. OpenTelemetry is on a mission to enable effective observability by making high-quality, portable telemetry ubiquitous. The world of observability and monitoring today has a steep learning curve and in order to achieve ubiquity, the project would benefit from growing our contributor community.
Comparison Table of DiskWarrior Alternatives.pdfAndrey Yasko
To help you choose the best DiskWarrior alternative, we've compiled a comparison table summarizing the features, pros, cons, and pricing of six alternatives.
Best Programming Language for Civil EngineersAwais Yaseen
The integration of programming into civil engineering is transforming the industry. We can design complex infrastructure projects and analyse large datasets. Imagine revolutionizing the way we build our cities and infrastructure, all by the power of coding. Programming skills are no longer just a bonus—they’re a game changer in this era.
Technology is revolutionizing civil engineering by integrating advanced tools and techniques. Programming allows for the automation of repetitive tasks, enhancing the accuracy of designs, simulations, and analyses. With the advent of artificial intelligence and machine learning, engineers can now predict structural behaviors under various conditions, optimize material usage, and improve project planning.
Quantum Communications Q&A with Gemini LLM. These are based on Shannon's Noisy channel Theorem and offers how the classical theory applies to the quantum world.
INDIAN AIR FORCE FIGHTER PLANES LIST.pdfjackson110191
These fighter aircraft have uses outside of traditional combat situations. They are essential in defending India's territorial integrity, averting dangers, and delivering aid to those in need during natural calamities. Additionally, the IAF improves its interoperability and fortifies international military alliances by working together and conducting joint exercises with other air forces.
3. Overview
What is Performance?
Why Performance?
How to Measure Performance?
Improving Performance
Tools
Best Practices
4. What is Performance?
3 parts of performance
Speed
How quickly application responds to a user
Scalability
How application handles expected users and
beyond
Stability
How stable the application is under load
Could be expected or unexpected
7. How to Measure Performance
• Live Single user execution
• How quickly the application responds
throughout the full application call
• Automated unit and integration testing
• Multi-user performance testing
• Load testing
• Stress testing
• Peak testing
• Duration testing
• Failover testing
8. Improving Performance
80-90% of the end-user response time is spent
on the frontend. Start there
- Steve Souders
9. Front End – Asset Size
Compress assets
• GZIP (all but PNG)
• http://zoompf.com/blog/2012/02/lose-the-wait-
httpcompression
Minify JS & CSS
Don’t overload asset contents
10. Front End – Client Rendering
Excess DOM
Understand JS events
DOM manipulation
Fonts
Avoid repaints and reflows
Cache JS
References:
• http://perfectionkills.com/profiling-css-for-fun-and-
profit-optimization-notes/
• http://blog.monitor.us/2012/03/27-website-
performance-javascript/
11. Front End – Progressive
Enhancement
Chunked encoding
• ASP.NET doesn’t chunk by default
• If you turn it on and writeln to response, each write will get
chunked (big perf hit for large HTML)
AJAX
Defer JS
CSS on top
JS on the bottom
JS load asynchronously
12. Latency
Use CDNs
Caching
• 35% reduction in bandwidth
Combine JS and CSS files
Load JS asynchronously
Sprites
Inline images
Prefetch and cache assets for future use
13. Tools for Frontend Measurement
Grading Tools Profiling Timing
PageSpeed SpeedTracer Blaze.io
-can be a plugin -Chrome add-on -mobile timing
-can be a CDN
Yslow! Web developer Webpagetest
-add-on tools -can select location and enter URL
-runs locally (Chrome/IE/Firefo -mobile section uses Blaze.IO
x)
Firebug PCAP Web Performance Analyzer
-uses hars/pcaps to analyze
webpages
Loads.in
-tests how long page loads from
various locations
14. Tools for Performance analysis
Analytics Network Analyzer APIs
Google analytics Fiddler Navigation timing
((http://www.w3.org/T
R/navigation-timing/)
-shows all parts of
network in page load
-doesn’t split by
resource (future)
Statsd Wireshark (not free) Boomerang.js
-nodejs library that -measures network
collects stats traffic
Tcpdump
-logs tcp calls to a url
cUrl
-web crawler
Dig
-investigates DNS
15. Tools for Content Delivery
JSON deliver CDN
Jdrop CloudFlare
-Store JSON data in the cloud
CloudFront
PageSpeed
16. Tools for Testing
Performance Testing Code analysis
Blitz.io Benchmark.js
-ability to run up to 250 users in 60 -framework for measuring method
seconds for free. response times
-can be automated (use in
continuous integration)
Browsermob-proxy
-captures har data from tests
during functional tests
Css-stress
-profiles css stylesheets
17. Tools for Mobile Optimizations
Images Font
src.sencha.io FontSquirrel
-resizes the image to fit the -generates font that’s best for your
physical screen (mobile) device
Imagealpha
-converts 24-bit PNG to 8-bit PNG
(mobile)
18. Backend - SOA
• Rely on service oriented architecture
• Separate your data
• Transactional vs. reporting
• Separate I/O and CPU bound processes on
different machines
• Utilize event sourcing patterns
• Concurrent operations
• Be careful!
• Eventual Consistency
19. Backend - Cache
• Cache as much as you can
• But not too much!
• Use the right caching tool
• Understand different caching patterns
• Primed Cache
• Demand Cache
• Take advantage of ASP.NET Caching
20. Backend - DB
• Long running queries
• Write/write conflicts
• Large joins
• indexes
21. Backend
• BIGGEST PROBLEM CONTEXT SWITCHING
• Measure GC pauses
• Optimize worker threads
• Thread deadlocks
• Be careful of Large object fragmentation
• Be careful of Object Relational Mappings
• Don’t rely on Exceptions for logic
• Utilize Connection Pooling
• Threads
• DB
• Utilize Batch requests and responses
• Understand operation impact on .NET Performance
• Take advantage of memory utilization
22. Tools for Profiling
Web profiling Instrumented profiling
Glimpse ANTS Performance Profiler ($499)
Mini-profiler JetBrains dotTrace ($399)
-can integrate with ReSharper
dynaTrace (varies)
-can be integrated with CI
-can do monitoring/profiling/diagnostics and much
more
-most expensive
VS2010 Profiler
-offered in Visual Studio
23. Tools for Profiling
Heap profiler Benchmarking
PerfView MeasureIt
PerfMon
Comparison for APM and BTM tools
(http://www.scribd.com/doc/53541961/Competitive-
Analysis-Application-Performance-Management-and-
Business)
Goes over a set of tools (none are free and most are
enterprise) for monitoring and transaction tracing
25. Best Practices – What to test
• Critical business transactions
• Frequently used transactions
• Performance-intensive transactions
26. Best Practices - notes
• DO NOT prematurely optimize
• DO start with 3rd party tools but roll your own
solutions if necessary for performance
• DO NOT be afraid to modify standard
solutions
• DO go for the first bottleneck and always
retest after
• Follow “test fix retest” pattern
27. Contact
@dimtruck
Dimitry.ushakov@accenture.com
http://dimitryushakov.com/codecamp2012/pres
entation
• Will have slides of the presentation and
references
Editor's Notes
2 minutes (4 total)-quickly cover what you mean by performance. Performance could mean different things to different people.
3 minutes (7 minutes)
4 minutes (11 minutes)Quickly go through different types of testingLive profilingAutomated testingIncludes unit tests (Nunit)Includes integration tests (Selenium)Load testingLoad regular load testingStress keep increasing number of users until it breaksPeak test against peak loadBreak kill various parts of the applications and monitor user experienceFailover if you have multiple data centers/kill the data center and test againSTART DEMO HEREGo over what it is: facebook for DOGSRun through the applicationPoint out slowness in loading imagesPoint out slowness in loading entire pagePoint out how going back to the page does not help
97% of mobile and 85% of desktop is spent on frontend
Measure with waterfall (SHOW EXAMPLE) - know the differences (http://www.stevesouders.com/blog/2011/08/26/waterfall-ui-conventions/)GZIP improves by 13-25%unavailable in some old browsersAsset size-don’t download unnecessary information (extra css and js)-excess dom-don’t download and hide content-don’t download and shrink content-minify js and cssCAVEAT: mobile pattern:-embed JS and CSS in the first response. save JS and CSS to localStorage on phone, then subsequent requests would only load those files that are needed based on cookie [set with stored js/css]. -More work needed to figure out which page to return but still faster.-caveat on caveat localStorage read is MUCH SLOWER than object read since it’s disk read [data size stored does not matter per key] (http://calendar.perfplanet.com/2011/localstorage-read-performance/)SHOW DEMO (STEP 1):Turn on GZIPUse minified files
Optimize client rendering-optimize images with css sprites, gradients and incline images-use jsperf to compare different functions-understand dom behavior for different events-e.g. understand difference between bubbling and capturing events-avoid reflows (DOM manipulation, layout change, window resizing, table manipulation, absolute/fixed better than static/relative position, font change, stylesheet add/remove)-avoid repaints (add outline, change visibility, change bg color)-DOM manipulation -- add subtrees to dom tree at once-clean up objects after you’re done (delete key)-primitive operators over function callsFONTS- Host the fonts on a CDN- GZIP all except .woff (already compressed)- Cache all font files for 30+ days- Remove excess glyphs (characters) from the font files- Ensure @font-face is the first rule of the first stylesheet on the page (IE)- Load through javascript (http://www.artzstudio.com/2012/02/web-font-performance-weighing-fontface-options-and-alternatives/)SHOW DEMO:-remove bad fonts and update through tool-remove unnecessary repaints and reflows
Progressive Enhancement-deliver HTML first and quickly (chunked encoding)-load visible content first-defer JS until the end-decorate after everything is loaded-use controlJSfile for async loading http://stevesouders.com/controljs/-media queries-Synchronous scripts block all following elements from rendering- insertBefore (async) vs. script tag (sync)- async- xhreval (bad), xhr injection, script in iframe, script dom element, script defer, document.write- use anywhere.js/bootstrap.js to ansynchronously load third-party libraries for JS with dependenciesSHOW DEMO (STEP 2):-put css on top-put js on the bottom
3 minutes (24 minutes)-TCP slow start - to control congestion inside the network- server starts by sending a few packets, waits for acknowledgement and then increases the # subsequentlyTalk about latency fluctuations-65-145ms on desktop vs up to 900ms on mobileMobile-Wireless provider slowdown-Android closes TCP sockets after 6 secs of inactivity-3g device establishes radio link to carrier’s cell tower (consumes battery)takes 1-2 seconds to connect to cell towerSteve Souders wrote about these findings http://www.stevesouders.com/blog/2011/09/21/making-a-mobile-connection/CDN-Japan is the fastest growing mobile commerce (Rakuten's Online Commerce Revenue, Desktop vs Mobile)-Cloudfront from Amazon (doesn’t do gzip out of the box)-Cloudflare (free service)No redirects-redirecting on mobile are expensive (due to latency)Avoid css importsDon’t download the same asset twice (especially if not cached)Prefetch-predownload necessary assets before they’re requiredCaching -adding Expires Header-35% reduction in bandwidthWork around TCP slow startDropped packetsDNS lookupshttp://www.websiteoptimization.com/speed/tweak/inline-images/SHOW DEMO (STEP 3):-add all images in webpage as sprite-combine js and cssfiles [COMBRES]-Turn on caching [web.config]
SHOW YSLOW!SHOW SPEEDTRACERSHOW BLAZE.IO FINISHSHOW FIREBUGSHOW LOADS.IN
-blitz.iobrowsermob-proxy (http://opensource.webmetrics.com/browsermob-proxy/)- benchmark - allows benchmarking on functions (http://benchmarkjs.com/)- cssstress - to test css profiling (https://github.com/andyedinborough/stress-css)
src.sencha.io -> (http://www.sencha.com/learn/how-to-use-src-sencha-io/) resizes the image to fit the physical screen (MOBILE)- imagealpha -> (http://pngmini.com/) converts 24-bit PNG to paletted 8-bit PNG (MOBILE)8-bit is kinda like a gif (256 color palette)
Rely on service oriented architectureSeparate your data Transactional vs. reportingSeparate I/O and CPU bound processes on different machinesRandom disk i/oUtilize event sourcing patternsqueuing/messaging- service bus- cqrs- eventual consistency- concurrent operations- async- be careful of tail latency (concurrent requests that the parent request depends on all completing)- duplicate work to rid of latency (multiple requests for same data to different servers. Only take the first responding and disregard the rest) (http://highscalability.com/blog/2012/3/12/google-taming-the-long-latency-tail-when-more-machines-equal.html?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+HighScalability+%28High+Scalability%29&utm_content=Google+Feedfetcher- EVENTUAL CONSISTENCY- use a write DB and a read DB and sync between the two.- no locks, etc.- (http://pbs.cs.berkeley.edu/#demo)- understand the tradeoffs
CACHE- Use memcached or Redis- A significant portion of an application’s resources is consumed by I/O operations, which usually are data accesses.- Increases memory usage- too much memory utilized will start using swap (& move pages to virtual mem - hard disk) - increased I/O - no caching benefits- If data req can be predicted, then prefetch into cache; else, lazy load- Primed cache - set of required resources can be predicted (PREFETCH)- Demand cache - set of required resources cannot be predicted- Cache Accessor- Cache Search Sequence- Cache Collector- Cache Replicator- Cache Statistics- ASP.NET Caching (http://msdn.microsoft.com/en-us/library/cc668225)- Application Cache - not stored in memory for life of the application- Page output cache - store rendered HTML- cache whole page or part of it- for those pages that are always the same (profile page)- Caching data for ASP.NETSHOW DEMO (STEP 4):-update to use memory cache
Long & short running queries- Write/write conflicts- Large joins
Be careful of Object Relational MappingsDon’t rely on Exceptions for logicPoolingThreadsDBbatch requests- batch responses (stored procedures returning multiple results)- Ahead of-time compilation (NGen in CLR) may improve over JIT- Large object fragmentation- Split arrays into smaller units so that they remain below 85kB (and so are never allocated on the large object heap).- You can allocate the largest and longest-living objects first (if your objects are files which are queued for processing, for example).- In some cases, it may be that periodically stopping and restarting the program is the only option.understand operation impact in .NET on performance- Integer arithmetic is 1 instruction count while object allocation can be more than 1,000 (http://msdn.microsoft.com/en-us/magazine/cc507639.aspx)Again memory is good. The right memory is best:Memory consumption- CPU-intensive application manipulating large amount of data- L1 Cache ⇒ L2 Cache ⇒ RAM ⇒ DISK (speed decreases 10 fold in memory and 10,000 fold in disk- Cold startupWORKER THREADS- The request architecture of ASP.NET balances between request threads and available resources. - Thread gating - number of concurrently executing requests for which CPU power available. - Monitor thread gating in the Windows Performance monitor using the Pipeline Instance Count performance counter.- Page request generally stops until external resource (db/service requests) responds- The result can be many concurrently executing requests and many waiting threads in the ASP.NET worker process or application pool. - To reduce this effect on performance, you can manually set the limit on the number of threads in the process. - To do so, change the MaxWorkerThreads and MaxIOThreads attributes in the processModel section of the Machine.config file.- You can determine what the appropriate number of threads is by performance-testing your application.thread deadlocks- single thread can be blocked waiting on disk (fetching data), network (cross-machine resources), event/locks (waiting on other threads)
SHOW DEMO FOR GLIMPSESHOW DEMO FOR PROFILER
Show example forperfmon and measureit
5 minutes (59 minutes)SDLCRequirementsperformance goals- Architecture - performance metrics/SLAs- Development - profiling/prototyping- Testing - load testing- Continuous Integration testing- blitz.io- http://code.google.com/p/harstorage/ with Selenium testing- profiling on Unit Tests - (VS 2010 profiler - http://blogs.msdn.com/b/profiler/archive/2010/01/08/how-to-profilenunit-tests-using-the-visual-studio-2010-profiler.aspx)
- Identify critical business transactions- frequently used transactions- performance-intensive transactions
- do not prematurely optimize- CQRS- split up write services and read services- Start with 3rd party tools but if necessary, roll out your own- Sometimes standard solutions don’t fit - don’t be afraid to write custom (http://drjosiah.blogspot.com/2011/09/improving-performance-by-1000x.html)- When diagnosing, go for bottleneck and retest. That will lead you to your next bottleneck- Identify critical business transactions- frequently used transactions- performance-intensive transactionsSPDY (http://dev.chromium.org/spdy/spdy-whitepaper)BEFOREsingle request per connectionexclusively client-initiated requestsuncompressed request/response headers (gzip doesn’t help)redundant headers (User-Agent, Host, Accept* are usually static)AFTER:- multiple requests per connection (TCP conn doesn’t close)- compresses/eliminates headers- SSL first class- request prioritization- server push (X-Associated-Content)- suggest to the client to ask for specific resources (X-Subresources)- HTTP 2.0 - MS - just a proposal unlike SPDY (http://tools.ietf.org/html/draft-montenegro-httpbisspeed-mobility-01)- ResourceTiming (http://w3c-test.org/webperf/specs/ResourceTiming/)- ZeroMQSHOW DEMO:Show difference between the first response in waterfall to the last response in waterfall and the difference (RUN YSLOW AGAIN AND SHOW DIFFERENCE)