Benchmarking a slow machine

Overview

When performing benchmarks I usually reach for the fastest machine I can. The theory is that if speed matters you will use a fast machine.

Recently I have tried benchmarking the slowest machine I have access to. A Pentium IV dual core laptop with 4 GB of memory and a regular HDD. The assumption is that if this performs better than your need, it might not matter how fast your system is.

In the article, I am comparing this laptop to a fast machine. The point is, if the slow machine is more than enough you don't need to worry about hardware.

Latency test

The round trip average latencies tests were 10 times slower and there were over 1000x more delayed messages. Even so, a delay of an average of 4 micro-seconds is faster than many applications need.
The average RTT latency was 3,442 ns. The 50/99 / 99.9/99.99%tile latencies 
    were 1,790/1,790 / 103,550/2,147,483,647. 
    There were 39,891 delays over 100 μs

Throughput test

The biggest difference I saw in the throughput test was that when the machine ran out memory, performance of the whole machine dropped dramatically. (Even the Task Manager stopped working) This is not too surprising as the performance becomes dependant on the speed of the HDD. The HDD in a budget laptop is slow even compared to that in a desktop. Compared with a fast SSD, it is not surprising that its much slower.

When testing the throughput performance for a dataset of 2.6 GB (the machine has 4 GB total) the performance is good, about four times slower.

Took 10.454 seconds to write/read 60,000,000 entries, rate was 5.7 M entries/sec

Increase the dataset size to 5.2 GB and the performance drops to around 200 K entries/second.

Took 974.180 seconds to write/read 200,000,000 entries, rate was 0.2 M entries/sec

Logging test

This logs short lines of text with the date, thread name a string and a double value.
To log 1,000,000 messages took 0.631 seconds using Chronicle and 12.259 seconds using Logger
This is around three times slower than the fast machine.

Comments

  1. Good tip peter. We usually do performance benchmarking on production like system to gather correct metrics.

    Javin
    4 tips to improve performance of Java database application

    ReplyDelete
  2. A slow machine can be a good way to test your application under load (as its easier to over load)

    ReplyDelete

Post a Comment

Popular posts from this blog

Java is Very Fast, If You Don’t Create Many Objects

System wide unique nanosecond timestamps

Unusual Java: StackTrace Extends Throwable