The document discusses the importance of performance testing software systems. It notes that performance testing is a time-consuming process that requires planning infrastructure, building test data scenarios, running performance tests, analyzing results, and evaluating code and architecture. Specific and quantifiable performance metrics are needed to determine if a system passes or fails. The document recommends starting performance testing early in the development process and dedicating adequate time and isolated testing environments for it.
Continuous Integration as a Way of LifeMelissa Benua
Continuous integration (CI) is a buzzword in software development today. We know it means “run lots of builds,” but having a continuous integration pipeline opens up opportunities well beyond making sure your team's code compiles. What if this pipeline could improve everything from the quality of code reviews to how often and safely you deploy to production and how you monitor your product in the wild? What if CI could provide insights into how automated tests are performing and how to improve them? Melissa Benua describes how to set up a basic CI infrastructure and then transform it into a way of life for development and test teams. Using free or nearly free tools, Melissa walks through a practical approach to making sure your code works—all the time and at every stage of the release train. Come away with practical advice for creating builds and running automation on the fly without spending hundreds of hours or thousands of dollars.
Integration Testing as Validation and MonitoringMelissa Benua
In the world of software-as-a-service, just about anyone with a laptop and an Internet connection can spin up their very own cloud-based web service. Software startups, in particular, are often big on ideas but small on staff. This makes streamlining the traditional develop-test-integrate-deploy-monitor pipeline critically important. Melissa Benua says that an effective way to accomplish this is to reduce the number of different test suites that verify many of the same things for each stage. Melissa explains how teams can avoid this by authoring the right set of tests and using the right frameworks. Drawing on lessons learned in companies both large and small, Melissa shows how teams can drastically slash time spent developing automation, verifying builds for release, and monitoring code in production—without sacrificing availability or reliability.
Performance Metrics for your Build Pipeline - presented at Vienna WebPerf Oct...Andreas Grabner
Software Performance Metrics that you should look at throughout your Build Pipeline and not just when your app crashes in productiong.
Find performance and scalability problems as soon as executing your first Unit Test. Simply focus on metrics such as #SQLs, #LogMessages, #Objects on Heap, ...
A DevOps Journey - An experience report after 6 years of implementing DevOps and Continuous Delivery in Frende Forsikring, a small insurance company in Norway.
Continuous Integration as a Way of LifeMelissa Benua
Continuous integration (CI) is a buzzword in software development today. We know it means “run lots of builds,” but having a continuous integration pipeline opens up opportunities well beyond making sure your team's code compiles. What if this pipeline could improve everything from the quality of code reviews to how often and safely you deploy to production and how you monitor your product in the wild? What if CI could provide insights into how automated tests are performing and how to improve them? Melissa Benua describes how to set up a basic CI infrastructure and then transform it into a way of life for development and test teams. Using free or nearly free tools, Melissa walks through a practical approach to making sure your code works—all the time and at every stage of the release train. Come away with practical advice for creating builds and running automation on the fly without spending hundreds of hours or thousands of dollars.
Integration Testing as Validation and MonitoringMelissa Benua
In the world of software-as-a-service, just about anyone with a laptop and an Internet connection can spin up their very own cloud-based web service. Software startups, in particular, are often big on ideas but small on staff. This makes streamlining the traditional develop-test-integrate-deploy-monitor pipeline critically important. Melissa Benua says that an effective way to accomplish this is to reduce the number of different test suites that verify many of the same things for each stage. Melissa explains how teams can avoid this by authoring the right set of tests and using the right frameworks. Drawing on lessons learned in companies both large and small, Melissa shows how teams can drastically slash time spent developing automation, verifying builds for release, and monitoring code in production—without sacrificing availability or reliability.
Performance Metrics for your Build Pipeline - presented at Vienna WebPerf Oct...Andreas Grabner
Software Performance Metrics that you should look at throughout your Build Pipeline and not just when your app crashes in productiong.
Find performance and scalability problems as soon as executing your first Unit Test. Simply focus on metrics such as #SQLs, #LogMessages, #Objects on Heap, ...
A DevOps Journey - An experience report after 6 years of implementing DevOps and Continuous Delivery in Frende Forsikring, a small insurance company in Norway.
As a growing company Wix has tried many monitoring solutions some worked better than others. In this talk we will go over the lessons we learned at Wix about what to monitor and how to monitor production systems; when to trigger alerts and also when not to trigger alerts.
We will go over some of the tools we use and also some of the tools we built to help us sleep better at night while doing 400 deployments to production every month.
http://www.youtube.com/watch?v=OLPA2KOWJ8I
Crowd sourced application testing is a hot new way of testing! It is estimated that by 2018 20% of testing will be done using crowd sourcing.
Instead of keeping testers in-house crowd sourcing gives you access to an unlimited number of testers, at any time and any place. It also allows you to test using a previously unattainable number of combinations of devices and software.
Marc Fasel is the Technical Director of the Melbourne-based SaaS company PerformanceCentre and will present to us on how they leveraged Crowd Sourced Testing using the Rainforest QA platform within his organisation. Using real world case study examples Marc will explain how after a failed attempt to automate their regression test suite, they successfully managed to reduce the two week regression testing effort to less than a single day! Marc is amazed by the reliability and results being produced by their Crowd Sourced Testing, not to mention the great bugs being found.
http://www.rainforestqa.com
Presenter: Ernest Hwang of Practice Fusion > This presentation shows how to simplify your database deployments, ensure that no database changes are overlooked, and implement unit tests using the suite of Red Gate developer tools.
You'll see how Practice Fusion streamlines database deployments in their Integration, Testing, Staging, and Production environments. This frees developers from the burden of maintaining deployment scripts, while reducing the number of overlooked breaking changes to zero.
The demo uses a Windows Azure box as the Jenkins (Continuous Integration) server and several SQL Azure databases (representing Integration and QA environments). The entire repository is hosted on GitHub (https://github.com/CF9/Databases.RGDemo), for anyone to download.
You'll learn how to:
* Add your database to source control in under five minutes
* Create a CI Job to validate your database “build”
* Deploy database changes to your environments with a mouse click
* Set up database unit testing using tSQLt
* Avoid problems when implementing Database CI in the “real-world”
Ernest Hwang is a Principal Software Engineer at Practice Fusion in San Francisco. He uses Red Gate SQL Source Control, SQL Compare, SQL Data Compare, and SQL Test to automate Practice Fusion's Continuous Integration efforts and instrument database deployments.
Load testing with Visual Studio and Azure - Andrew SiemerAndrew Siemer
In this presentation we will look at what web performance testing is and the various types of testing that can be performed. We will then dig into Visual Studio 2013 Ultimate to see that the Visual Studio platform is now a real contender in performance testing automation. And we will see how the Visual Studio integration with Visual Studio Online and Azure can take your web performance tests and spin up impressive load tests in a truly useful way.
The presentation from my talk on Continuous Integration and Builds at XP Days Indore 2010. The target audience was MCA students, faculty and members of IT industry in and around Indore.
Continuous Delivery has reduced software development cycles from months to weeks or even days, but testing has failed to keep up with these advancements.
Learn how Continuous Testing brings agile processes to testing and provides reduced time-to-release without software quality compromises.
Want to find out more? Download the whitepaper: http://info.blazemeter.com/continuous-testing
As a growing company Wix has tried many monitoring solutions some worked better than others. In this talk we will go over the lessons we learned at Wix about what to monitor and how to monitor production systems; when to trigger alerts and also when not to trigger alerts.
We will go over some of the tools we use and also some of the tools we built to help us sleep better at night while doing 400 deployments to production every month.
http://www.youtube.com/watch?v=OLPA2KOWJ8I
Crowd sourced application testing is a hot new way of testing! It is estimated that by 2018 20% of testing will be done using crowd sourcing.
Instead of keeping testers in-house crowd sourcing gives you access to an unlimited number of testers, at any time and any place. It also allows you to test using a previously unattainable number of combinations of devices and software.
Marc Fasel is the Technical Director of the Melbourne-based SaaS company PerformanceCentre and will present to us on how they leveraged Crowd Sourced Testing using the Rainforest QA platform within his organisation. Using real world case study examples Marc will explain how after a failed attempt to automate their regression test suite, they successfully managed to reduce the two week regression testing effort to less than a single day! Marc is amazed by the reliability and results being produced by their Crowd Sourced Testing, not to mention the great bugs being found.
http://www.rainforestqa.com
Presenter: Ernest Hwang of Practice Fusion > This presentation shows how to simplify your database deployments, ensure that no database changes are overlooked, and implement unit tests using the suite of Red Gate developer tools.
You'll see how Practice Fusion streamlines database deployments in their Integration, Testing, Staging, and Production environments. This frees developers from the burden of maintaining deployment scripts, while reducing the number of overlooked breaking changes to zero.
The demo uses a Windows Azure box as the Jenkins (Continuous Integration) server and several SQL Azure databases (representing Integration and QA environments). The entire repository is hosted on GitHub (https://github.com/CF9/Databases.RGDemo), for anyone to download.
You'll learn how to:
* Add your database to source control in under five minutes
* Create a CI Job to validate your database “build”
* Deploy database changes to your environments with a mouse click
* Set up database unit testing using tSQLt
* Avoid problems when implementing Database CI in the “real-world”
Ernest Hwang is a Principal Software Engineer at Practice Fusion in San Francisco. He uses Red Gate SQL Source Control, SQL Compare, SQL Data Compare, and SQL Test to automate Practice Fusion's Continuous Integration efforts and instrument database deployments.
Load testing with Visual Studio and Azure - Andrew SiemerAndrew Siemer
In this presentation we will look at what web performance testing is and the various types of testing that can be performed. We will then dig into Visual Studio 2013 Ultimate to see that the Visual Studio platform is now a real contender in performance testing automation. And we will see how the Visual Studio integration with Visual Studio Online and Azure can take your web performance tests and spin up impressive load tests in a truly useful way.
The presentation from my talk on Continuous Integration and Builds at XP Days Indore 2010. The target audience was MCA students, faculty and members of IT industry in and around Indore.
Continuous Delivery has reduced software development cycles from months to weeks or even days, but testing has failed to keep up with these advancements.
Learn how Continuous Testing brings agile processes to testing and provides reduced time-to-release without software quality compromises.
Want to find out more? Download the whitepaper: http://info.blazemeter.com/continuous-testing
Welcome to the nightmare of locking, blocking and isolation levels!Boris Hristov
I am sure you all know that troubleshooting problems related to locking and blocking (hey, sometimes there are deadlocks too) can be a real nightmare! In this session, you will be able to see and understand why and how locking actually works, what problems it causes and how can we use isolation levels and various other techniques to resolve them!
Consortium metrics discussion with IOM Drug ForumMark David Lim
Presentation made to the IOM Forum on Drug Discovery, Development, and Translation to explore the possibility of metrics that evaluate the performance of biomedical research consortia
In our recent webinar hosted by Mike Current, a member of the Hyland Upgrade Council, and Mark Hamilton, DataBank's Infrastructure Engineer, we expanded on how upgrading OnBase offers the ability to not only gain enhancements and fixes, but also radically improve the security, stability and architecture of your entire OnBase environment.
In this presentation you will...
1. Learn the formula for upgrade success with actionable items to work through right away
2. Understand the team needed to get the job done and how DataBank can step in to help
3. The importance of establishing a test environment and more
You can also watch the full webinar here: http://info.databankimx.com/Upgrade-Webinar-RCD.html
Download the Hyland 3rd Part Compatibility Matrix from slide #25 here: http://info.databankimx.com/rs/167-SSD-475/images/Third%20Party%20Product%20Compatibility%20Matrix.pdf
The Key Components of Adopting CI The OpenStack WayiWeb (group INAP)
Wajdi Al-Hawari, software developer for Internap, presented at OpenStack Day Canada showcasing how they revamped their Continuous Integration solution the OpenStack way.
Guide to continuous delivery and the journey wix.com had made transitioning to DevOps and continuous delivery culture making ~100 production changes daily
Make It Cooler: Using Decentralized Version Controlindiver
A commonly used version control system in the ColdFusion community is Subversion -- a centralized system that relies on being connected to a central server. The next generation version control systems are “decentralized”, in that version control tasks do not rely on a central server.
Decentralized version control systems are more efficient and offer a more practical way of software development.
In this session, Indy takes you through the considerations in moving from Subversion to Git, a decentralized version control system. You also get to understand the pros and cons of each and hear of the practical experience of migrating projects to decentralized version control.
Version control is often used in conjunction with a testing framework and continuous integration. To complete the picture, Indy walks you through how to integrate Git with a testing framework, MXUnit, and a continuous integration server, Hudson.
Project Sherpa: How RightScale Went All in on DockerRightScale
We just finished a 7 week project at RightScale to migrate 48 services and 650+ cloud instances to Docker. As a result we’ve been able to accelerate our development processes and cut our cloud costs (a lot). Here we share lessons learned about our experience migrating to Docker and introduce our new Container Manager we added to the RightScale platform to help manage containerized environments.
This joint webinar for DBmaestro (www.dbmaestro.com)and Delphix discuss the synergy between Delphix’s Database Virtualiztion and DBmaestro’s Database Enforced Change Management solutions.
The session discuss the challenges in database development and show in practice how Database Enforced
Change Management and Database Virtualization work together to create a version control, branching and merging method that addresses these challenges.
Recent widely covered database crashes in the retail industry, struck a damaging blow to the reputation of a number of major chain stores and online retailers.
Similar to Performance Tuning in the Trenches (20)
Somewhere, someone on the internet is saying "Messaging will solve all of your system's problems". They might be right. But for all you know, they could be wrong too.
I could take the time in this talk to introduce you to basic messaging patterns. That doesn’t address the bigger issues that most people who are getting started with messaging. Why should you care about messaging? What technical or business problem will it solve for you? How can you get started?
When you leave this session you will be the person who can stand up in the meeting and declare "Messaging will solve this for us....I think" to the bewilderment of everyone who is attending the HR yearly benefits update.
If you’re already using messaging, or you have a good understanding of the fundamentals, its time to start looking at some of the more adventurous messaging patterns. These are the patterns that really start to enable your systems to do more.
Large Language Models and the End of ProgrammingMatt Welsh
Talk by Matt Welsh at Craft Conference 2024 on the impact that Large Language Models will have on the future of software development. In this talk, I discuss the ways in which LLMs will impact the software industry, from replacing human software developers with AI, to replacing conventional software with models that perform reasoning, computation, and problem-solving.
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTier1 app
Even though at surface level ‘java.lang.OutOfMemoryError’ appears as one single error; underlyingly there are 9 types of OutOfMemoryError. Each type of OutOfMemoryError has different causes, diagnosis approaches and solutions. This session equips you with the knowledge, tools, and techniques needed to troubleshoot and conquer OutOfMemoryError in all its forms, ensuring smoother, more efficient Java applications.
Modern design is crucial in today's digital environment, and this is especially true for SharePoint intranets. The design of these digital hubs is critical to user engagement and productivity enhancement. They are the cornerstone of internal collaboration and interaction within enterprises.
Why React Native as a Strategic Advantage for Startup Innovation.pdfayushiqss
Do you know that React Native is being increasingly adopted by startups as well as big companies in the mobile app development industry? Big names like Facebook, Instagram, and Pinterest have already integrated this robust open-source framework.
In fact, according to a report by Statista, the number of React Native developers has been steadily increasing over the years, reaching an estimated 1.9 million by the end of 2024. This means that the demand for this framework in the job market has been growing making it a valuable skill.
But what makes React Native so popular for mobile application development? It offers excellent cross-platform capabilities among other benefits. This way, with React Native, developers can write code once and run it on both iOS and Android devices thus saving time and resources leading to shorter development cycles hence faster time-to-market for your app.
Let’s take the example of a startup, which wanted to release their app on both iOS and Android at once. Through the use of React Native they managed to create an app and bring it into the market within a very short period. This helped them gain an advantage over their competitors because they had access to a large user base who were able to generate revenue quickly for them.
How Recreation Management Software Can Streamline Your Operations.pptxwottaspaceseo
Recreation management software streamlines operations by automating key tasks such as scheduling, registration, and payment processing, reducing manual workload and errors. It provides centralized management of facilities, classes, and events, ensuring efficient resource allocation and facility usage. The software offers user-friendly online portals for easy access to bookings and program information, enhancing customer experience. Real-time reporting and data analytics deliver insights into attendance and preferences, aiding in strategic decision-making. Additionally, effective communication tools keep participants and staff informed with timely updates. Overall, recreation management software enhances efficiency, improves service delivery, and boosts customer satisfaction.
Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...Hivelance Technology
Cryptocurrency trading bots are computer programs designed to automate buying, selling, and managing cryptocurrency transactions. These bots utilize advanced algorithms and machine learning techniques to analyze market data, identify trading opportunities, and execute trades on behalf of their users. By automating the decision-making process, crypto trading bots can react to market changes faster than human traders
Hivelance, a leading provider of cryptocurrency trading bot development services, stands out as the premier choice for crypto traders and developers. Hivelance boasts a team of seasoned cryptocurrency experts and software engineers who deeply understand the crypto market and the latest trends in automated trading, Hivelance leverages the latest technologies and tools in the industry, including advanced AI and machine learning algorithms, to create highly efficient and adaptable crypto trading bots
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Globus
Large Language Models (LLMs) are currently the center of attention in the tech world, particularly for their potential to advance research. In this presentation, we'll explore a straightforward and effective method for quickly initiating inference runs on supercomputers using the vLLM tool with Globus Compute, specifically on the Polaris system at ALCF. We'll begin by briefly discussing the popularity and applications of LLMs in various fields. Following this, we will introduce the vLLM tool, and explain how it integrates with Globus Compute to efficiently manage LLM operations on Polaris. Attendees will learn the practical aspects of setting up and remotely triggering LLMs from local machines, focusing on ease of use and efficiency. This talk is ideal for researchers and practitioners looking to leverage the power of LLMs in their work, offering a clear guide to harnessing supercomputing resources for quick and effective LLM inference.
Accelerate Enterprise Software Engineering with PlatformlessWSO2
Key takeaways:
Challenges of building platforms and the benefits of platformless.
Key principles of platformless, including API-first, cloud-native middleware, platform engineering, and developer experience.
How Choreo enables the platformless experience.
How key concepts like application architecture, domain-driven design, zero trust, and cell-based architecture are inherently a part of Choreo.
Demo of an end-to-end app built and deployed on Choreo.
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Globus
The Earth System Grid Federation (ESGF) is a global network of data servers that archives and distributes the planet’s largest collection of Earth system model output for thousands of climate and environmental scientists worldwide. Many of these petabyte-scale data archives are located in proximity to large high-performance computing (HPC) or cloud computing resources, but the primary workflow for data users consists of transferring data, and applying computations on a different system. As a part of the ESGF 2.0 US project (funded by the United States Department of Energy Office of Science), we developed pre-defined data workflows, which can be run on-demand, capable of applying many data reduction and data analysis to the large ESGF data archives, transferring only the resultant analysis (ex. visualizations, smaller data files). In this talk, we will showcase a few of these workflows, highlighting how Globus Flows can be used for petabyte-scale climate analysis.
Check out the webinar slides to learn more about how XfilesPro transforms Salesforce document management by leveraging its world-class applications. For more details, please connect with sales@xfilespro.com
If you want to watch the on-demand webinar, please click here: https://www.xfilespro.com/webinars/salesforce-document-management-2-0-smarter-faster-better/
Understanding Globus Data Transfers with NetSageGlobus
NetSage is an open privacy-aware network measurement, analysis, and visualization service designed to help end-users visualize and reason about large data transfers. NetSage traditionally has used a combination of passive measurements, including SNMP and flow data, as well as active measurements, mainly perfSONAR, to provide longitudinal network performance data visualization. It has been deployed by dozens of networks world wide, and is supported domestically by the Engagement and Performance Operations Center (EPOC), NSF #2328479. We have recently expanded the NetSage data sources to include logs for Globus data transfers, following the same privacy-preserving approach as for Flow data. Using the logs for the Texas Advanced Computing Center (TACC) as an example, this talk will walk through several different example use cases that NetSage can answer, including: Who is using Globus to share data with my institution, and what kind of performance are they able to achieve? How many transfers has Globus supported for us? Which sites are we sharing the most data with, and how is that changing over time? How is my site using Globus to move data internally, and what kind of performance do we see for those transfers? What percentage of data transfers at my institution used Globus, and how did the overall data transfer performance compare to the Globus users?
Your Digital Assistant.
Making complex approach simple. Straightforward process saves time. No more waiting to connect with people that matter to you. Safety first is not a cliché - Securely protect information in cloud storage to prevent any third party from accessing data.
Would you rather make your visitors feel burdened by making them wait? Or choose VizMan for a stress-free experience? VizMan is an automated visitor management system that works for any industries not limited to factories, societies, government institutes, and warehouses. A new age contactless way of logging information of visitors, employees, packages, and vehicles. VizMan is a digital logbook so it deters unnecessary use of paper or space since there is no requirement of bundles of registers that is left to collect dust in a corner of a room. Visitor’s essential details, helps in scheduling meetings for visitors and employees, and assists in supervising the attendance of the employees. With VizMan, visitors don’t need to wait for hours in long queues. VizMan handles visitors with the value they deserve because we know time is important to you.
Feasible Features
One Subscription, Four Modules – Admin, Employee, Receptionist, and Gatekeeper ensures confidentiality and prevents data from being manipulated
User Friendly – can be easily used on Android, iOS, and Web Interface
Multiple Accessibility – Log in through any device from any place at any time
One app for all industries – a Visitor Management System that works for any organisation.
Stress-free Sign-up
Visitor is registered and checked-in by the Receptionist
Host gets a notification, where they opt to Approve the meeting
Host notifies the Receptionist of the end of the meeting
Visitor is checked-out by the Receptionist
Host enters notes and remarks of the meeting
Customizable Components
Scheduling Meetings – Host can invite visitors for meetings and also approve, reject and reschedule meetings
Single/Bulk invites – Invitations can be sent individually to a visitor or collectively to many visitors
VIP Visitors – Additional security of data for VIP visitors to avoid misuse of information
Courier Management – Keeps a check on deliveries like commodities being delivered in and out of establishments
Alerts & Notifications – Get notified on SMS, email, and application
Parking Management – Manage availability of parking space
Individual log-in – Every user has their own log-in id
Visitor/Meeting Analytics – Evaluate notes and remarks of the meeting stored in the system
Visitor Management System is a secure and user friendly database manager that records, filters, tracks the visitors to your organization.
"Secure Your Premises with VizMan (VMS) – Get It Now"
Advanced Flow Concepts Every Developer Should KnowPeter Caitens
Tim Combridge from Sensible Giraffe and Salesforce Ben presents some important tips that all developers should know when dealing with Flows in Salesforce.
First Steps with Globus Compute Multi-User EndpointsGlobus
In this presentation we will share our experiences around getting started with the Globus Compute multi-user endpoint. Working with the Pharmacology group at the University of Auckland, we have previously written an application using Globus Compute that can offload computationally expensive steps in the researcher's workflows, which they wish to manage from their familiar Windows environments, onto the NeSI (New Zealand eScience Infrastructure) cluster. Some of the challenges we have encountered were that each researcher had to set up and manage their own single-user globus compute endpoint and that the workloads had varying resource requirements (CPUs, memory and wall time) between different runs. We hope that the multi-user endpoint will help to address these challenges and share an update on our progress here.
Listen to the keynote address and hear about the latest developments from Rachana Ananthakrishnan and Ian Foster who review the updates to the Globus Platform and Service, and the relevance of Globus to the scientific community as an automation platform to accelerate scientific discovery.
Enhancing Research Orchestration Capabilities at ORNL.pdfGlobus
Cross-facility research orchestration comes with ever-changing constraints regarding the availability and suitability of various compute and data resources. In short, a flexible data and processing fabric is needed to enable the dynamic redirection of data and compute tasks throughout the lifecycle of an experiment. In this talk, we illustrate how we easily leveraged Globus services to instrument the ACE research testbed at the Oak Ridge Leadership Computing Facility with flexible data and task orchestration capabilities.
6. Specific Requirements are Needed
“Testing” implies pass/fail
Without a specific metric pass/fail cannot be determined
Most Performance “Testing” is Performance Profiling
7. Time Consuming Process
Infrastructure needs planning
Data scenarios need building
Performance runs need to be conducted
Results need to be analyzed
Code needs to be analyzed
Architecture needs to be evaluated
Changes need to be made
System testing needs to be done
8. I was lucky
• Performance was a primary concern from the start of the
coding process
• Dedicated time was provided well in advance of delivery
• We had a *very* rough metric to shoot for, but it was
quantified
9. First we need infrastructure
• What does your system use?
• What other software will be installed on those systems?
• What network infrastructure may be involved?
10. What I had…
• VM with production OS
• Visual Studio
• 4-6 other developers using this VM for day-to-day coding
• CI software
• Shared SQL Server database
• Location of all developer testing
11. What that meant
• No server load consistency between test runs
• Usage spikes on those servers
• Data changed between test runs
• SQL Server load changed between, and during, test runs
• Installation of ‘unknown’ software versions
• Test-to-Test comparisons were hard to evaluate
• Instead of just one run, I’d have to do many runs to get an
‘average’
12. What would have been nice
• Complete server isolation
• VM configured exactly as the production VM
• VM configuration
• Software configuration
• Software installed
• Production scale data
15. What does it mean?
I guarantee you that your problems are not where you thought
they were.
Problems will blend into the rest of your code.
16. Not where you think it is
loadedPerBatch.Where(x=>x.Name == someLoopValue)
Up to 10% of our execution time
dictLoadedPerBatch.ContainKey(someLoopValue)
18. What did we find?
It took longer to load a zip file into memory than to unzip it.
Copying multi-gigabyte files multiple times takes a long time.
Opening and reading these files was amazingly fast.
We hadn’t fully conceptualized the scale of the nested looping.
SQL INSERT statements were very slow.
20. Profiling Data Access
1. Log SQL being executed
2. Copy statements into Management Studio
3. View the Execution Plan
4. Review indexes used, indexes missed, indexes updated
5. Note the index suggestions
22. Benefits
• Only changing indexes limited retesting of logic
• One change == re-run of tests
23. What I learned
• INSERT statements are fast, but updating indexes can kill
performance when 100k operations take place
• The simplest SELECT may not be picking up an index
24. We didn’t have a UI but…
• How much data does each web page deliver?
• How many HTTP requests does a page load make?
25. What about…
• Off loading some of those calls to CDNs?
• Are you using compression?
• What about caching?
Now hold on just a minute
26. Caching
You’ve got performance problems
You add caching
Now you have two problems
How do you invalidate your caches?
27. What did we learn?
• Infrastructure plays a huge role in performance testing
• Code problems are usually in the last place you look
• SQL problems often go overlooked
• Commonly found solutions don’t always work
• Hundreds of man hours were put into performance testing
• Starting earlier is better
28. Thank you
Donald Belcham
@dbelcham
donald.Belcham@igloocoder.com
Editor's Notes
Not all bad as an initial profile can be used as a baseline for future test runs
The profiling tools allow snap shot comparison. This can be invaluable. It also might not work depending on the size of the run you perform.