Linked by Christopher W. Cowell-Shah on Thu 8th Jan 2004 19:33 UTC
General Development This article discusses a small-scale benchmark test run on nine modern computer languages or variants: Java 1.3.1, Java 1.4.2, C compiled with gcc 3.3.1, Python 2.3.2, Python compiled with Psyco 1.1.1, and the four languages supported by Microsoft's Visual Studio .NET 2003 development environment: Visual Basic, Visual C#, Visual C++, and Visual J#. The benchmark tests arithmetic and trigonometric functions using a variety of data types, and also tests simple file I/O. All tests took place on a Pentium 4-based computer running Windows XP. Update: Delphi version of the benchmark here.
Permalink for comment
To read all comments associated with this story, please click here.
Some benchmark ideas to keep you busy
by Luke McCarthy on Fri 9th Jan 2004 18:56 UTC

Function calls
Method calls
Recursion
Recursion (no tail optimisation)
Recursion with several locals (no tail optimisation)
Recursion with large local array (no tail optimisation)
Deeply nested (different) function calls

Heap allocate
Heap re-allocate
Heap de-allocate
Heap fetch, store, move
Heap allocate with random de-allocations for small sizes
Heap allocate with random de-allocations for large sizes
Heap allocate with random de-allocations for mixed sizes
Heap allocate and copy

Local fetch, store, increment
Global fetch, store, increment
Member fetch, store, increment (with or without getters/setters)
Array fetch, store, increment
Array fetch, store, increment (2 dimensional)
Pointer fetch, store, increment
Pointer-to-pointer fetch, store, increment

Loop and compare (while)
Static numbered loop (for)

Graphic composition
Bitmap flip
Bitmap blit
Bitmap flip while window moving

Linked list generation
Linked list sort
Linked list search
Linked list random insert
Linked list random insert (with automatic sort)
Linked list random deconstruct
Linked list destroy

XML parse
XML tree sequential traverse
XML tree random search

Socket send packets throughput over controlled LAN
Socket recieve throughput over controlled LAN
Socket two-way throughput over controlled LAN
Socket response/latency over controlled LAN
Socket response/latency under heavy load over controlled LAN

Signal/event response idle
Signal/event response in busy loop
Signal/event response under heavy memory access
Signal/event response under heavy I/O
Signal/event response under heavy calculation

Thread spawn latency
Fetch, store, move, copy, increment mutexed memory with many threads sharing

(All the random stuff should be pre-generated so that it's the same every test).