Odpowiedz

15

Dziwne, nie było similar question on the scala-user group:

Rex Kerr odpowiedział w tym czasie (maj):

Nigdy nie stwierdzono przypadek, gdy kod produkcyjny został znacząco przyspieszyć metodą użyciu -optimise, przynajmniej podczas używania Sun JVM. Przyznam, że w niektórych przypadkach może się zdarzyć, ale wydaje się, że stosuje podobne optymalizacje do tego, co JVM już robi. Być może, jeśli istnieją ograniczenia dotyczące głębokości optymalizacji, funkcja przy użyciu opcji -optimise usunie kilka warstw, a następnie pozwoli JVM uzyskać jeszcze kilka innych. Ale przeważnie nawet nie próbuję go testować, biorąc pod uwagę, jak wiele przypadków (tuziny) próbowałem go, gdy środowisko wykonawcze się nie zmieniło wymiernie.

Spodziewam się, że będzie to miało wpływ na maszyny wirtualne, które są bardziej zachowawcze (np. JRockit) lub mniej zaawansowane (np. Dalvik).


Ismael Juma dodania:

Dystrybucja scala jest faktycznie skompilowany z -optimise, ale rzeczywiście to nie jest on chyba argument jest przekazywany do scalac.

Czy nie jest wystarczająco dojrzały, czy może prowadzić do błędów, zmiany semantyczne, itp.?

O ile mi zrozumieć, zespół postanowił być konserwatywny i umożliwić go tylko do dystrybucji scala jako wstępnego etapu (w Scala 2.8.0). Być może warto rozważyć rozszerzenie tego w następnej wersji głównej .


Dla wpływem '-optimise' (między innymi czynnikami) w Scala2.9, zobacz ten scala-language thread called "Scala2.9 slower?".

Jestem trochę zaniepokojony. Po zobaczeniu, że -optimize naprawdę zoptymalizuje "dla zrozumienia" w 2.9.0, przetestowałem test na tym kodzie i odkryłem, że był on około 2,5 razy wolniejszy niż 2.8.1.

Wyniki pozostawiają ... mieszane uczucie.

+13

Byłoby miło mieć ostateczną odpowiedź od twórców scala kompilatorów odnośnie statusu tej flagi dla scala 2.11 –