When I first delved into computer performance, I wasn’t entirely sure what “performance” meant. Sure, I’d heard the phrase being thrown around loads of times, but usually it’s a simple marketing term. Whenever there’s a new product announcement, you’re bound to find “increased performance” somewhere on an ad. Ok, but what does that even mean? I recently embarked on a mission to chronicle performance basics. If you’re baffled and trying to decipher computer performance, check out this basic intro:
Computer Performance is defined by a computer’s completed work vs. the system resources and time required to finish said tasks. Thus computer performance may be measured by the following metrics:
Response Time –How much time it takes to respond to a service request. It’s the sum of:
Wait Time: How long a service request has to wait
Service Time: Length of time required to complete the requested task
Transmission Time: How long it takes to send the request to the computer and issue a response
Throughput Rate – Processing rate
Resource Utilization – How many system resources are used while handling a task or request (IE RAM usage, disk usage, CPU usage, etc.)
Uptime vs. Downtime – The availability of a system, or essentially how long it is operational
Bandwidth – Bit-rate capacity, or channel capacity
Data Transmission Time – Quite simply, the time it takes to physically transfer data (IE HDD, wireless, etc.)
Data Compression and Decompression Rate – Ability to encode and decode with fewer bits
Metrics should either be high or low. IE, low downtime is one aspect of better performance, or high uptime. So optimal performance means:
Short response time
High throughput rate
Low resource use
Short data transmission time
Highly compact data compression/decompression rate
A rudimentary, but common among less tech-savvy users, measurement is precieved performance: Is it slow? If you’ve ever answered support tickets like me, you’ll know this is one of the most frustrating, but enlightening, statements. Unfortunately, while saying “it’s slow” about a computer, website, etc. might be true, it offers indication as to the root problem.
Computer performance is really no different than performance in other areas, like at the gym. It measures how fast and efficiently tasks can be given and executed. If you’re training for a marathon, you’re tracking various metrics, like distance, speed, and heart rate. So to can you uses various tests to determine a computer performance. Some of these tests include:
Benchmarks – These are tests by running various programs to determine performance. Traditionally, benchmarking is used to assess hardware (CPUs, GPUs), though it can be used for things like databases (IE benchmark to determine how long a query takes). As someone who does a lot of gaming, I often pay close attention to benchmarks.
Software Performance Testing – Assesses a system’s ability to perform under a certain workload, so factors will be response time/responsiveness, and scalability (how well a system can adapt to large growth in areas like resource use). IE load testing (as the name implies, it tests a computer’s ability under a specific load) and stress test (seeing how a system behaves when pushed to the limits of its capabilities).
Stay tuned for more performance fundamental posts soon. If you've got a particular aspect of performance you'd like to read more about, leave a comment or hit me up on Twitter! If you're interested in learning more about the performance space, check out our 2015 DZone Guide to Performance & Monitoring.