2010 is over and there has been a log going on in the application performance space. We started this project at the beginning of the year inspired by Stoyan Stefanov’s performance advent calendar of 2009. (There is also one for 2010).
Now twelve months later we have our 2010 performance almanac available. According to Wikipedia an almanac is -”… an annual publication containing information in a particular field”. Our performance almanac contains nearly 50 articles of numerous topics around application performance.
We hope that there are topics for everybody. The articles range from technical to conceptual areas of performance management. They reflect what took our attention throughout the year. We hope that you enjoy reading them.
This post takes a deeper look into the nature of troubleshooting of performance problems. While this activity is very often – if not almost always – viewed as a reactive activity, it involves a lot of of proactive work if it is to be done right.
End- user experience – as I think we all agree – is the performance perceived by the actual user at a specific point in time. Sounds simple, but is in reality not that easy to ascertain. There are a number of different approaches which all have their specific advantages and drawbacks. This post gives an overview of different ways to monitor end-user experience.
In this third article of our Performance Almanac I discuss the role of overhead in performance management. As a performance management solution provider we’re frequently asked “How much overhead does your solution have?” This question is however a bit more complex to answer than just giving a single number.
This post discusses the usefulness of top ten reports in performance engineering. I show cases where they provide value and also where top ten reports are not the best choice
Searching for memory leaks can easily become an adventure – fighting through a jungle of objects and references. When the leak occurs in production, time is short and you have to act fast. Like in a treasure hunt, we have to interpret signs, unravel mysteries to finally find the “lost” memory This post focuses on how to analyze memory problems by providing some insights into the anatomy of memory leaks.
This post discusses the seven main ways to get developers write performance tests. If you think it is hard to make developers write tests, learn some tips and tricks on how to make them more tests on their own.
This post takes an unconventional approach towards performance management. It takes the Maslow hierarchy of needs as a basis for defining how to implement performance management following a phased approach.
Measurement is the most central concept in any performance-related activity. If you are not measuring you are blind. And, as important as measuring per se, is collecting the right measurements. Which metrics are the right ones depends on what you want to do. However there are some general principles which – when followed – can make your life much easier. Read how to work with response times and make performance analysis easier.
It is a fact that end-user response time is critical for business success. The faster web pages are perceived, the longer users tend to stay on the page and therefore spend more money and drive business. In order to ensure that end-user response times are acceptable at all times it is necessary to measure the time in the way the end user perceives performance. Read more and learn what we want to measure and how to measure accurately and automatically.
Steve Souders wrote that CSS Expressions are both powerful but also very dangerous. The problem is that expressions are evaluated more frequently than most people expect. We look at a sample page, analyze the performance impact of CSS Expressions and discuss how to optimize its usage.
Have you built your application on SharePoint? Have you ever run into any performance problems? We have analyzed the top performance problems in custom SharePoint Applications and show how to avoid the common pitfalls when implementing against the SharePoint Content API.
Amazon EC2 offers the CloudWatch service to monitor cloud instances as well as load balancers. It offers useful infrastructure metrics about the performance of your EC2 infrastructure. This post provides step-by-step guidance on how to implement an Amazon CloudWatch monitor.
This post discusses how to optimize data-intensive web pages showing several thousand records of data. It uses the Show URLs page of Show Slow as an example. Step-by-step the page is optimized using various optimization techniques. The result is a massive reduction all key performance metrics like download time, page load time and rendering time.
When something goes wrong who’s to blame? In this post I take a closer look at who is responsible when applications have performance problems. Maybe there is a general rule on who is responsible for performance problems.
Zappos – the leading eCommerce site for shoes and apparel – talked about their best practices for delivering WOW Performance to their customers. In this blog we learn why Zappos had to re-architecture, what they did to ensure performance in testing and learn about their internal best practices when it comes to performance management.
Just before the 2010 Golf Masters their web site was re-designed. In this blog we learn which Best Practices were followed and what the performance gain was for the individual changes.
Bill Mar, Director of Engineering Services from SmithMicro Software, talks about their internal challenges in moving toward Proactive Performance Management. He explains how the growing success of their business required a change in attitude when building new features. Developers need to have performance and scalability in mind when building new functionality.
Negative performance impacts our business. At the same time recent studies show that management does not see the need to invest into better performance. So obviously performance does not really matter to business. The question is who is to blame – business because they do not see the need for investments or the technical stuff for not getting the point across?
Performance Engineering should be part of every company’s software processes. However, failing to follow some important rules will lead to frustration, wasted resources and finally failure. A set of 7 rules will help you to be successful and solve the major problems people face in performance engineering.
ASP.NET MVC has matured over the years and is now a very popular framework to build web applications. As with any framework it is important to understand the internals in order to avoid common pitfalls which ultimately lead to bad performance or scalability issues.
When the Icelandic Volcano erupted in April 2010 many travelers stormed the websites of airlines and airports. Many of them went down due to the heavy inbound traffic. Better client-side caching strategies could have avoided many of the incoming requests for static content and therefore could have taken off a lot of pressure on the web servers. In this blog we learn how to analyze cache settings and how to optimize them.
Our Dynatrace Community Portal is our gateway to our users. Especially with the rapidly-growing number of world-wide users of our Free Dynatrace AJAX Edition, it is necessary to keep track on how well our pages perform from around the globe to satisfy our “performance hungry” community. In this blog we show which questions we asked in order to choose the right form for monitoring our web site from the cloud.
Based on our work to optimize web site performance with our clients and our Dynatrace AJAX Community we compiled a list of Best Practices to optimize Web Site Performance. This list is complementary to the Best Practices from Google and Yahoo.
Google Analytics provides an open API to query analytics data. In this post we describe how to use the API to process the captured data outside of the Google Analytics Portal and also correlate it with Application Performance Data. This allows us to answer questions like: Does Application Performance impact my end-user behavior? Can we explain higher bounce rates with server-side problems?
What factors make you feel a web page is good or not? What keeps you on that page longer than others? On the one hand, it is the content on the page and whether this content is of interest to you. On the other, it is the velocity with which you can navigate through the individual pages. In this post we compare two online news portals and how web site performance may impact their success.
An Oracle database provides several v$ views to query information about the database instance, including statistical information that can be used for monitoring and problem analysis purposes. In this article we learn which metrics from these tables are interesting to monitor.
There are several web performance metrics such as Time to First Impression, Time to onLoad or Fully Loaded Time. The main question that is still not answered is: when is the page ready to be used by the user? In this article we discuss a new approach on answering this exact question. We call it: Clutch Time!
Microsoft CRM provides developers access to query and update data stored in CRM through two core SDK Interfaces. When working with Clients that built custom apps on top of CRM we identified 3 problems that caused performance problems: Too many DB calls executed by CRM Services, CRM Service always using the Web Service Stack, and Database Contention. Learn how to avoid these problems in order to build fast apps based on MS CRM.
We recently updated our corporate website to better align with our latest product launch. With this change we also took the opportunity to implement the web performance best practices we have been talking about for the last year. In doing so, we improved our performance rank from D to A. In this blog we discuss the actual steps we took to achieve this.
Transactions are a cornerstone when building database applications. However in our daily work, we often do not really care much about them. In many cases they are handled implicitly for us. We rely on frameworks to do a lot of the heaving lifting for us. At a pure JPA level there is a lot of transaction-related logic going on under the hood. This post discusses transactions at the JPA and database (JDBC) layer and how they play together and affect the functionality and performance of our applications.
Web Performance Optimization (WPO) is gaining more and more traction and becoming a standard practice in performance management. In this series, major use cases behind WPO are discussed and explained so you can get started easily. The first post of the series covers benchmarking.
Optimization of web applications can become quite a challenging task as there are a variety of areas where you can tune. Best Practice- and KPI-based optimization are the most commonly-used ways to drive your optimization process. Learn about both approaches and how and when to use them.
Automation is key in streamlining performance management practices. Once you agreed on your KPIs, automatically monitoring them is the logical next step. Learn how to automatically monitor the performance of your web tests with close to zero additional work.
Load Time Optimization is likely the most vital use case from an end-user perspective. At the same time it is also highly important from a business perspective as studies by ShopZilla, Google and Bing show that load times have immediate effects on user behavior. The higher the load, the less end users are interested in interacting with the page. Load time therefore has a direct relationship on user acceptance and also business goals. This guide provides easy-to-follow help to optimize the load time of your page.
Microsoft BizTalk enables companies to integrate and automate their business process (BPM). Along the way a message takes, there are several points where performance of the overall message processing can be negatively impacted and therefore impact your business. In this blog series we discuss how to monitor a BizTalk Environment and how to identify problems that lead to performance problems.
Inspired by the Top 10 Performance Problems post which focuses on Server-Side performance problems taken from companies such as Zappos, Thomson, Monster and Novell (see Week 50), I came up with the Top 10 Client-Side performance problems in Web 2.0 applications I’ve seen when working with our Dynatrace AJAX Edition users. This includes problems like Slow CSS Selectors, too many XHR Calls or expensive DOM Manipulations.
Lucy Monahan from Novell wrote a great post on how to identify thread contention issues. She ran into this problem in her work as Principal QA Performance Engineer and shares her experience with us.
We compiled the Top 10 Performance Problems we have seen over the years when working our clients. The list includes problems such as too many database queries, synchronization issues, too chatty on remoting channels or wrong usage of O/R Mappers. Read the full blog with detailed explanations on these real-life problems.
Some posts – while already published a long time age – are still among the most actively viewed on our blog. In our case this is our series on caching in Hibernate. Obviously this topic is highly relevant to people. Therefore we include that series as a bonus. As these blogs are some of our “oldies” they do not yet use the latest JPA APIs. Nevertheless the information is still valid – also if you use the JPA interfaces.
Caching is a central component in persistence frameworks. The session cache is the first cache you will always be in touch with. Understand the inner working on how you interact with Hibernate using the session cache.
Sometimes caching of the session cache is not enough – especially when it comes to caching query results, which are normally cached. Learn how to use the query cache to optimize your persistence layer.
Some data should be cached longer than just for a specific Hibernate session. The second-level cache provides exactly this functionality. In this post you will learn more about the inner workings of the second-level cache.