Java Performance Notes

There have been several remarkable articles on Java performance issues in the last couple of months. Those links tend to get lost on Twitter, so I wanted to compile them here with brief overviews. All articles are based on the OpenJDK which also underlies Oracle’s distributions. Java and SIMD Piotr Nowojski tests automatic loop vectorization, … Continue reading “Java Performance Notes”

Java Client VM Remeasured

After upgrading my computer system some months ago and finishing the port of Tektosyne for Java just recently, I decided it’s time to update the measurements on my comparison page for Oracle’s Java Client and Server VMs on Microsoft Windows. As a reminder, the core problem is that any modern Windows system should automatically run … Continue reading “Java Client VM Remeasured”

Updates for VS2015 & .NET 4.6

With Visual Studio 2015, Microsoft finally provides a free Community edition that’s both reasonably feature-complete and legal to use for any purpose by individuals and teams of up to five, or of any size for non-commercial projects. That’s a huge step up from the shamefully crippled Express editions of previous versions, although those strangely continue … Continue reading “Updates for VS2015 & .NET 4.6”

Grand Java SE 8 Update

Following Oracle’s long-awaited release of Java SE 8, I went through my Java-related articles and updated them to the latest version. Most benchmark results haven’t changed much, but neither has Oracle’s annoying default Windows JVM packaging. Here are some updates on this sorry subject: Java Client VM — Java SE 8 is faster across the … Continue reading “Grand Java SE 8 Update”

Struct Performance 2014

Once again and probably for the last time, I’ve updated my .NET Struct Performance article with results for the latest batch of compilers and runtimes. Microsoft’s and Mono’s current CLRs are unchanged as expected, and so is the excellent MinGW gcc. Visual C++ 2013 gave a nasty shock with massive optimizer failures for user-defined types … Continue reading “Struct Performance 2014”

Kreinin on Efficiency &c

Yossi Kreinin recently posted three excellent articles on runtime performance. Efficiency is fundamentally at odds with elegance starts off with Bjarne Stroutrop’s ludicrous claim that C++ doesn’t make a trade-off between runtime performance and developer productivity because it achieves both. Debunking this claim is hardly necessary for anyone who has ever used C++ and at … Continue reading “Kreinin on Efficiency &c”

Struct Performance 2013

After a long hiatus I’ve updated my .NET Struct Performance benchmarks with results for the latest batch of C#, C++, Java, and JavaScript compilers. As expected I needn’t have bothered with the first three – C++ and Java are as fast as ever, and C# is sadly as slow as ever, even in this test … Continue reading “Struct Performance 2013”

Avoiding the Java Client VM

When Java applications perform poorly on Windows, Java developers blame Windows and Windows developers blame Java. But most likely, the actual cause is using the wrong virtual machine. Oracle ships two VMs for 32-bit platforms, called Client VM and Server VM, and Windows defaults to the slower one. My new article on Java Client VM … Continue reading “Avoiding the Java Client VM”

Surface RT Game Performance

Eurogamer’s Digital Foundry has just published its Microsoft Surface RT review. Richard Leadbetter generally agrees with earlier impressions: the device is promising but rather disappointing in its current state; the upcoming Surface Pro should be much more desirable. However, Leadbetter also takes a look at the Surface RT’s launch lineup of Windows Store games, and … Continue reading “Surface RT Game Performance”

Java adds numbers really fast

Daniel Lemire has posted a tiny benchmark for a basic part of many numerical applications: a loop that sums up numbers in an array. The astonishing part is the performance of Oracle Java 7 which dramatically outperforms an older GCC version, and keeps up quite well with newer compilers! I tested the same code against … Continue reading “Java adds numbers really fast”