RFR(S): 8062543: Replace uses of MethodHandleImpl.castReference with Class.cast
Dear all, please review and sponsor this change. RFE: https://bugs.openjdk.java.net/browse/JDK-8062543 Webrev: http://cr.openjdk.java.net/~mhaupt/8062543/webrev.00/ The change removes the no longer needed MethodHandleImpl.castReference method. Its uses are replaced with Class.cast. Tested with: * jtreg (java.lang.invoke, java.util.stream) * JPRT (hotspot and jdk_lang test sets) * UTE (vm.quick-pcl.testlist, vm.defmeth.testlist) Thanks, Michael -- <http://www.oracle.com/> Dr. Michael Haupt | Principal Member of Technical Staff Phone: +49 331 200 7277 | Fax: +49 331 200 7561 Oracle Java Platform Group | LangTools Team | Nashorn Oracle Deutschland B.V. & Co. KG, Schiffbauergasse 14 | 14467 Potsdam, Germany <http://www.oracle.com/commitment> Oracle is committed to developing practices and products that help protect the environment
Looks good. Have you verified there's no performance regression? I'd suggest to run some Octane benchmarks. Best regards, Vladimir Ivanov On 7/15/15 11:23 AM, Michael Haupt wrote:
Dear all,
please review and sponsor this change. RFE: https://bugs.openjdk.java.net/browse/JDK-8062543 Webrev: http://cr.openjdk.java.net/~mhaupt/8062543/webrev.00/
The change removes the no longer needed MethodHandleImpl.castReference method. Its uses are replaced with Class.cast.
Tested with: * jtreg (java.lang.invoke, java.util.stream) * JPRT (hotspot and jdk_lang test sets) * UTE (vm.quick-pcl.testlist, vm.defmeth.testlist)
Thanks,
Michael
On Jul 15, 2015, at 10:23 AM, Michael Haupt <michael.haupt@oracle.com> wrote:
Dear all,
please review and sponsor this change. RFE: https://bugs.openjdk.java.net/browse/JDK-8062543 Webrev: http://cr.openjdk.java.net/~mhaupt/8062543/webrev.00/
The change removes the no longer needed MethodHandleImpl.castReference method. Its uses are replaced with Class.cast.
Look good. I agree with Vladimir on checking for performance regressions (i suspect/hope! there will not be any). Paul.
Tested with: * jtreg (java.lang.invoke, java.util.stream) * JPRT (hotspot and jdk_lang test sets) * UTE (vm.quick-pcl.testlist, vm.defmeth.testlist)
Thanks,
Michael
--
<http://www.oracle.com/> Dr. Michael Haupt | Principal Member of Technical Staff Phone: +49 331 200 7277 | Fax: +49 331 200 7561 Oracle Java Platform Group | LangTools Team | Nashorn Oracle Deutschland B.V. & Co. KG, Schiffbauergasse 14 | 14467 Potsdam, Germany <http://www.oracle.com/commitment> Oracle is committed to developing practices and products that help protect the environment
Hi Paul, Vladimir, thanks - I'll be back with perf numbers ASAP. Best, Michael
Am 15.07.2015 um 12:51 schrieb Paul Sandoz <paul.sandoz@oracle.com>:
On Jul 15, 2015, at 10:23 AM, Michael Haupt <michael.haupt@oracle.com> wrote:
Dear all,
please review and sponsor this change. RFE: https://bugs.openjdk.java.net/browse/JDK-8062543 Webrev: http://cr.openjdk.java.net/~mhaupt/8062543/webrev.00/
The change removes the no longer needed MethodHandleImpl.castReference method. Its uses are replaced with Class.cast.
Look good. I agree with Vladimir on checking for performance regressions (i suspect/hope! there will not be any).
Paul.
Tested with: * jtreg (java.lang.invoke, java.util.stream) * JPRT (hotspot and jdk_lang test sets) * UTE (vm.quick-pcl.testlist, vm.defmeth.testlist)
Thanks,
Michael
-- <http://www.oracle.com/> Dr. Michael Haupt | Principal Member of Technical Staff Phone: +49 331 200 7277 | Fax: +49 331 200 7561 Oracle Java Platform Group | LangTools Team | Nashorn Oracle Deutschland B.V. & Co. KG, Schiffbauergasse 14 | 14467 Potsdam, Germany <http://www.oracle.com/commitment> Oracle is committed to developing practices and products that help protect the environment
Hi Paul, Vladimir, the data exhibit some decreases and some increases. Please comment. Best, Michael Original JDK: Benchmark Mode Samples Score Score error Units o.m.b.s.o.Box2DBench.test avgt 25 68.136 5.515 ms/op o.m.b.s.o.CodeLoadBench.test avgt 25 3827.190 59.335 ms/op o.m.b.s.o.CryptoBench.test avgt 25 9.987 0.084 ms/op o.m.b.s.o.DeltaBlueBench.test avgt 25 939.489 8.072 us/op o.m.b.s.o.EarleyBoyerBench.test avgt 25 21.667 0.369 ms/op o.m.b.s.o.GbemuBench.test avgt 25 69.289 1.381 ms/op o.m.b.s.o.MandreelBench.test avgt 25 1168.844 22.119 ms/op o.m.b.s.o.NavierStokesBench.test avgt 25 7.316 0.019 ms/op o.m.b.s.o.PdfJSBench.test avgt 25 108.611 9.979 ms/op o.m.b.s.o.RaytraceBench.test avgt 25 7002.523 52.355 us/op o.m.b.s.o.RegexpBench.test avgt 25 99.227 2.064 ms/op o.m.b.s.o.RichardsBench.test avgt 25 310.353 1.122 us/op o.m.b.s.o.TypescriptBench.test avgt 25 5.093 0.092 s/op Modified JDK: Benchmark Mode Samples Score Score error Units o.m.b.s.o.Box2DBench.test avgt 25 57.906 1.937 ms/op o.m.b.s.o.CodeLoadBench.test avgt 25 3789.170 38.922 ms/op o.m.b.s.o.CryptoBench.test avgt 25 9.854 0.120 ms/op o.m.b.s.o.DeltaBlueBench.test avgt 25 937.746 3.167 us/op o.m.b.s.o.EarleyBoyerBench.test avgt 25 20.890 0.428 ms/op o.m.b.s.o.GbemuBench.test avgt 25 68.949 0.421 ms/op o.m.b.s.o.MandreelBench.test avgt 25 1208.157 18.836 ms/op o.m.b.s.o.NavierStokesBench.test avgt 25 6.774 0.017 ms/op o.m.b.s.o.PdfJSBench.test avgt 25 111.189 11.428 ms/op o.m.b.s.o.RaytraceBench.test avgt 25 6905.455 137.892 us/op o.m.b.s.o.RegexpBench.test avgt 25 96.781 1.628 ms/op o.m.b.s.o.RichardsBench.test avgt 25 310.157 1.956 us/op o.m.b.s.o.TypescriptBench.test avgt 25 4.991 0.054 s/op
Am 15.07.2015 um 13:58 schrieb Michael Haupt <michael.haupt@oracle.com>:
Hi Paul, Vladimir,
thanks - I'll be back with perf numbers ASAP.
Best,
Michael
Am 15.07.2015 um 12:51 schrieb Paul Sandoz <paul.sandoz@oracle.com>:
On Jul 15, 2015, at 10:23 AM, Michael Haupt <michael.haupt@oracle.com> wrote:
Dear all,
please review and sponsor this change. RFE: https://bugs.openjdk.java.net/browse/JDK-8062543 Webrev: http://cr.openjdk.java.net/~mhaupt/8062543/webrev.00/
The change removes the no longer needed MethodHandleImpl.castReference method. Its uses are replaced with Class.cast.
Look good. I agree with Vladimir on checking for performance regressions (i suspect/hope! there will not be any).
Paul.
Tested with: * jtreg (java.lang.invoke, java.util.stream) * JPRT (hotspot and jdk_lang test sets) * UTE (vm.quick-pcl.testlist, vm.defmeth.testlist)
Thanks,
Michael
-- <http://www.oracle.com/> Dr. Michael Haupt | Principal Member of Technical Staff Phone: +49 331 200 7277 | Fax: +49 331 200 7561 Oracle Java Platform Group | LangTools Team | Nashorn Oracle Deutschland B.V. & Co. KG, Schiffbauergasse 14 | 14467 Potsdam, Germany <http://www.oracle.com/commitment> Oracle is committed to developing practices and products that help protect the environment
Thanks for the data, the numbers look fine. Best regards, Vladimir Ivanov PS: as I told you privately, some Octane benchmarks are noisy and 5 forks aren't enough to get stable results. On 7/16/15 4:42 PM, Michael Haupt wrote:
Hi Paul, Vladimir,
the data exhibit some decreases and some increases. Please comment.
Best,
Michael
Original JDK: Benchmark Mode Samples Score Score error Units o.m.b.s.o.Box2DBench.test avgt 25 68.136 5.515 ms/op o.m.b.s.o.CodeLoadBench.test avgt 25 3827.190 59.335 ms/op o.m.b.s.o.CryptoBench.test avgt 25 9.987 0.084 ms/op o.m.b.s.o.DeltaBlueBench.test avgt 25 939.489 8.072 us/op o.m.b.s.o.EarleyBoyerBench.test avgt 25 21.667 0.369 ms/op o.m.b.s.o.GbemuBench.test avgt 25 69.289 1.381 ms/op o.m.b.s.o.MandreelBench.test avgt 25 1168.844 22.119 ms/op o.m.b.s.o.NavierStokesBench.test avgt 25 7.316 0.019 ms/op o.m.b.s.o.PdfJSBench.test avgt 25 108.611 9.979 ms/op o.m.b.s.o.RaytraceBench.test avgt 25 7002.523 52.355 us/op o.m.b.s.o.RegexpBench.test avgt 25 99.227 2.064 ms/op o.m.b.s.o.RichardsBench.test avgt 25 310.353 1.122 us/op o.m.b.s.o.TypescriptBench.test avgt 25 5.093 0.092 s/op
Modified JDK: Benchmark Mode Samples Score Score error Units o.m.b.s.o.Box2DBench.test avgt 25 57.906 1.937 ms/op o.m.b.s.o.CodeLoadBench.test avgt 25 3789.170 38.922 ms/op o.m.b.s.o.CryptoBench.test avgt 25 9.854 0.120 ms/op o.m.b.s.o.DeltaBlueBench.test avgt 25 937.746 3.167 us/op o.m.b.s.o.EarleyBoyerBench.test avgt 25 20.890 0.428 ms/op o.m.b.s.o.GbemuBench.test avgt 25 68.949 0.421 ms/op o.m.b.s.o.MandreelBench.test avgt 25 1208.157 18.836 ms/op o.m.b.s.o.NavierStokesBench.test avgt 25 6.774 0.017 ms/op o.m.b.s.o.PdfJSBench.test avgt 25 111.189 11.428 ms/op o.m.b.s.o.RaytraceBench.test avgt 25 6905.455 137.892 us/op o.m.b.s.o.RegexpBench.test avgt 25 96.781 1.628 ms/op o.m.b.s.o.RichardsBench.test avgt 25 310.157 1.956 us/op o.m.b.s.o.TypescriptBench.test avgt 25 4.991 0.054 s/op
Am 15.07.2015 um 13:58 schrieb Michael Haupt <michael.haupt@oracle.com>:
Hi Paul, Vladimir,
thanks - I'll be back with perf numbers ASAP.
Best,
Michael
Am 15.07.2015 um 12:51 schrieb Paul Sandoz <paul.sandoz@oracle.com>:
On Jul 15, 2015, at 10:23 AM, Michael Haupt <michael.haupt@oracle.com> wrote:
Dear all,
please review and sponsor this change. RFE: https://bugs.openjdk.java.net/browse/JDK-8062543 Webrev: http://cr.openjdk.java.net/~mhaupt/8062543/webrev.00/
The change removes the no longer needed MethodHandleImpl.castReference method. Its uses are replaced with Class.cast.
Look good. I agree with Vladimir on checking for performance regressions (i suspect/hope! there will not be any).
Paul.
Tested with: * jtreg (java.lang.invoke, java.util.stream) * JPRT (hotspot and jdk_lang test sets) * UTE (vm.quick-pcl.testlist, vm.defmeth.testlist)
Thanks,
Michael
participants (3)
-
Michael Haupt
-
Paul Sandoz
-
Vladimir Ivanov