My friends and family are under attack in Ukraine. Donate to protect them directly or help international organizations.

Performance & Scalability Are Different Things

November 29th, 2012

I have seen a lot of developers confuse scalability and performance. Some use these terms interchangeably. It is important that we use terms correctly, so that we do not create false expectations for the team or the client, or solve the wrong problems.

Scalability

The term has become recently popular with the cloud trend. It is the ability of a system to change its size. It can grow bigger or smaller. It can stretch. It is elastic. Hopefully, these synonyms now created an image in your mind to go with the word.

For example, once you configure your database for replication, you can add and remove masters and slaves at any time.  But scalability is not just a means to increase processing capacity. Functional scalability allows you to add new features to an application with very little effort. For example, you can design a multimedia player that will easily accommodate for new file formats, when you decide to implement new ones later.

There are a lot more ways for your system to be scalable, and so you must always specify what exactly needs to scale, to be elastic.

Performance

In relationship with computers, it generally refers to the amount of work that can be accomplished in a period of time. The more work you can do in a second, the faster your system is. Performance is speed.

We can talk about elements such as memory usage, processing time and bandwidth to name a few. For example, you can please your users by fetching images from a cloud storage, which is generally qualified by low latency and big bandwidth. You can optimize your game's 3D engine to allow for higher frames per second without straining the user's machine. You can reduce the time it takes to execute a database query so that a web page loads faster.

Previous: Security Questions: Not So Secure Next: Writing Readable Code