When building distributed applications one of the central
performance-critical components is serialization. Most modern frameworks make
it very easy to send data over the wire. In many cases you don’t see at all
what is going on behind the scenes. Choosing the right serialization strategy
however is central for achieving good performance and scalability.
Serialization problems affect CPU, memory, network load and response times.
Java provides us with a large variety of serialization technologies. The
actual amount of data which is sent over the wire can vary substantially. We
will use a very simple sample where we send the firstname, lastname and
birthdate over the wire. Then we’ll see how big the actual payload gets.
Binary Data
As a reference we start by sending only the payload. This is the most
efficient way of sending data, as there is no overhead involved. The d... (more)
Java Developer Magazine on Ulitzer
Distribution and communication between applications and services is a central
concept in modern application architectures. In order to profit from
distribution you have to keep some basic principles in mind – otherwise you
can easily run into performance and scalability problems. During development
these problems often do not surface. Then suddenly in load testing or
production you might then realize that your chosen software architecture does
not support the required performance and scalability requirements. In this
post we will look at major... (more)
2010 is over and there has been a lot 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 ra... (more)
In my last article I discussed benchmarking as the first use case for Web
Performance Optimization (WPO). This time I will take a closer look at
optimization.
After we have discovered how our site behaves compared to our competition –
or any reference we might want to benchmark against – we want to learn how
to improve our user experience. We will therefore have a look at different
approaches towards optimization.
Best-Practice-Based Optimization
Fortunately there are lots of best practices on how to optimize the
performance of web applications. Yahoo and Google - and also dynaTr... (more)
In this edition of our WPO Use Case series I discuss another very important
use case. Load Time Optimization is most 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 or 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 to user acceptance and also business
goals.
The goal of optimizing load times is to show relevant ... (more)