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”

Myriarch for Java

Myriarch Combat Simulator is now available in an enhanced Java version, with a JavaFX user interface. I removed the download of the original .NET version as it was fairly rudimentary; I had already planned moving to Java at the time and so didn’t bother properly finishing that version. Overview Myriarch attempts a precise real-time simulation … Continue reading “Myriarch for Java”

Catching Java Assertion Errors

The Java assert statement can be used for conditionally checking program invariants. Assertions are enabled or disabled with the desired level of granularity by Java Virtual Machine flags, as described in the linked guide. So far, so similar to assertion facilities in other languages. However, whereas .NET Debug/Trace.Assert shows and logs a message by default, … Continue reading “Catching Java Assertion Errors”

Tektosyne 6.0.1 on GitHub

Tektosyne 6.0.1, a Java library for computational geometry and pathfinding, is now available for download. There are only a few minor changes compared to the initial Java release, most strictly internal and all related to FindBugs complaints. PointDComparator/X/Y: Implemented Serializable interface for compatibility with serializable collections. This also required default constructors that leave epsilon at … Continue reading “Tektosyne 6.0.1 on GitHub”

Compiling Java Code

This post is a quick introduction aimed at programmers experienced with C# or other languages who are new to Java. It is intended as a companion piece to my article Java for C# Programmers which focuses on language differences. See the “Further Reading” section at the top of that article for the official Oracle tutorials … Continue reading “Compiling Java Code”

Comment Converter from C# to Java

C# XML comments and Javadoc comments have a large overlap in semantic functionality but annoyingly use a very different syntax. C# XML comments are usually introduced by three slashes /// on each line and use XML elements for semantic information, whereas Javadoc employs standard comment blocks starting with /** (also optionally supported by C# but … Continue reading “Comment Converter from C# to Java”

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”

Tektosyne Library for Java

Tektosyne 6.0 is now available for download, its first release in Java. You can download the code package itself, with complete source code and prebuilt JAR files, as well as an extensive PDF User’s Guide. This is a partial port of the previous version which was written in C# for the Windows .NET Framework. The … Continue reading “Tektosyne Library for Java”

Class Diagrammer 2.1.0 Released

Wrapping up the Java port of my Tektosyne library (for computational geometry and graph algorithms), I recreated a number of UML diagrams for documentation, using my recently ported Class Diagrammer. That was its biggest project to date, and sure enough a large number of fixes and enhancements resulted. Class Diagrammer 2.1.0 is now available for … Continue reading “Class Diagrammer 2.1.0 Released”