2016-05-21 12 views

Antwort

2

Anstatt zu fragen, warum es nicht tun, sollten Sie fragen, warum man tun würde, dass an erster Stelle?, wenn man bedenkt, dass zusätzlicher Code und Erläuterungen erforderlich sind.

Diese Mikro-Optimierungen sind in der Regel nicht notwendig, weil nur auf einem Opcode Speicher die Bytecode Größe des Verfahrens verringert, die meist wiederum die Dolmetscher und frühe inlining Entscheidungen der GEG beeinflusst. Oder anders gesagt, es wirkt sich nicht wirklich auf die generierte Assembly aus, sobald der Code heiß genug ist, um JITed zu werden, da die Compiler erkennen können, dass sich diese Lasten alle auf dieselbe Variable beziehen.

String ist eine sehr wichtige Klasse in der JVM, wo solche kleinen Optimierungen die Startgeschwindigkeit ein wenig verbessern können. Der BigInteger ist auf der anderen Seite nicht wichtig für den JVM-Start und wenn Sie ihn häufig verwenden, wird dies von den JITs sowieso optimiert, da die Interpreter-Performance für BigInt-Anwendungsfälle im Allgemeinen nicht relevant ist.

+0

Also wenn ich mehr über Opcode optimiert wissen möchte, muss ich immer in JIT involviert sein. Recht? –

+0

@IoriChina Ich schlage vor, Sie betrachten JITWatch, um zu sehen, wie der Byte-Code in nativen Code umgewandelt wird, denn für die Leistung ist das, was wirklich zählt. –

+0

Vielen Dank, Leute! Vorschlag angenommen. –