Path: csiph.com!fu-berlin.de!uni-berlin.de!individual.net!not-for-mail From: Christoph Schneegans Newsgroups: de.comp.lang.java Subject: Re: Rekursion bricht nicht ab Date: Thu, 14 Apr 2016 18:47:40 +0200 Lines: 39 Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit X-Trace: individual.net uxOYMEDFXDgcu4/48CLuLQuPcW4EDHPGXPA7V2tKUZIopcWg== Cancel-Lock: sha1:QIYaUdtaYoxj00xbEobqOR6chW8= User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.7.2 In-Reply-To: Xref: csiph.com de.comp.lang.java:12939 Christian H. Kuhn schrieb: > Ich habe visualvm dann mal eingesetzt. Mann, habe ich gelacht. Je > nachdem, ob ich dem Profiler oder dem Sampler glaube, verbringe ich > 65–95% der Rechenzeit im Konstruktor von drei verschiedenen Exceptions, > wobei zwei etwa gleich viel Zeit brauchen und die dritte ein Viertel > davon. Und es sieht so aus, dass es tatsächlich die Aufrufe sind und > weder super(String) noch die Erstellung des String. java.lang.Throwable.fillInStackTrace() macht typischerweise den Löwenanteil aus. Wenn man den Stacktrace ohnehin nicht braucht, erscheint mir sowas völlig legitim: public class TracelessException extends Exception { private static final long serialVersionUID = -9043029795604539423L; public TracelessException() { super(); } public TracelessException(final String message) { super(message); } @Override @SuppressWarnings("sync-override") public Throwable fillInStackTrace() { return this; } } -- · SAFER mit Windows