About Java and JRuby Development
JEE, Spring, Guice
Hibernate, Java Persistence (JPA)
and various Web Frameworks

Performance of Java exceptions

Influence of exception on the application performance
The first converter uses exceptions to determine if a value is not a Long value.

{% highlight java }
try {
value = Long.parseLong(toParse.trim());
} catch (NumberFormatException e) {
isLong = false;
}
{
endhighlight %}

The second example evaluates if the String contains of digits only.

{% highlight java %}
char buf[] = toParse.trim().toCharArray();

for (char c : buf) { if (!Character.isDigit©) isLong = false; } if (isLong) { value = Long.parseLong(toParse); }

{% endhighlight %}

With a String of “123456a” the second approach is more than 10 times faster. A shorter parse string requires even less time.

It is important to know that the time needed per thousand runs is only 2 milliseconds for the exception version. In most cases this should play no importance.

Kind Regards / Viele Grüße

Sebastian Hennebrueder