Ich versuche, die Leistung von pow(x,2.0)
und pow(x,2.0000001)
zu vergleichen und ich dachte, dass 2.0
wäre viel schneller, aber sie sind mit der gleichen Geschwindigkeit. Ich habe sogar JIT-Optimierungen entfernt, indem ich jar mit -Xint
Parameter ausgeführt habe.Java Math.pow (x, 2.0) vs Math.pow (x, 2.0000001) Leistung
Irgendeine Idee warum ist das bitte? Vielen Dank!
Die Implementierung ist frei, eine bedingte Verzweigung für spezielle Fälle auszugeben oder alle Fälle mit demselben Code zu implementieren. Alles, was zählt, ist das Ergebnis. Es gibt keine Garantien für die Ausführungszeit. (Nicht das, wenn Sie nicht vorsichtig sind, würden Sie sie sogar sehen, wenn sie dort sind). –
Warum erwarten Sie einen Leistungsschub? Die Art beider Parameter ist "doppelt". –
Weil es nur eine magische Implementierung verwendet, die auf alle Doubles spezialisiert ist; Es wird keine spezielle Magie für Integer-Potenzen verwendet. Wenn Sie nur die Multiplikation direkt verwenden ('x * x'), erhalten Sie bessere Ergebnisse. –