Concurrency Control Test Applet

The applet to the right is a simple tool that measures the performance
of difference concurrency control policies against each other.

Given an underlying datastructure and some expensive operations
for reading and writing to and from this datastructure, this applet
checks the performance of 7 different control policies by computing
the time needed to finish for 10 write- and 10,000 read-operations,
respectively, concurrently per thread. The time is depicted in seconds per
thread, i.e. the sum of the time needed for all threads divided by the
number of threads. The following conditions are being tested:
  • ReentrantLock
  • ReentrantLock, only reading threads
  • ReentrantLock, only writing threads
  • ReadWriteLock, fair mode
  • ReadWriteLock, unfair mode
  • Threadsafe datastructure
  • Synchronized datastructure
All modes are tested with 2, 4, 8, 16 and 32 threads.

In order to run the applet, you need to input a folder containing
images (jpg, gif or png), as image manipulations in Java are natively
expensive and therefore a good way to measure the performance. You can
enter any folder on your hard disk, or download this
file and unzip it's contents. The zip contains a number of sample JPEGs
that can be used to run the applet.
Your browser is not Java enabled.

NOTE: Since applets are executed on client side (i.e. not on the server, but on YOUR machine), the performance and results of this applet are highly dependent on the machine you are using. Certain chip architectures might show decreased performance, although they should be theoretically faster. This is normal. If you wanna know why, take Doug's class.