Code review request for 6908131 Pure Java implementations of StrictMath.floor(double) &StrictMath.ceil(double) (original) (raw)
Jeff Hain jeffhain at rocketmail.com
Thu Jan 21 20:58:16 UTC 2010
- Previous message: Code review request for 6908131 Pure Java implementations of StrictMath.floor(double) &StrictMath.ceil(double)
- Next message: Code review request for 6908131 Pure Java implementations of StrictMath.floor(double) &StrictMath.ceil(double)
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Dmitry,
From your bench, I see FloorCeil methods get in trouble with 64 bits architecture, but I never ran anything on 64 bits yet.
I ran your bench on my laptop:
- DELL inspiron 9400, with (two) Genuine Intel T2300 @ 1.666GHz.
- java.runtime.version=1.6.0_11-b03
- java.class.version=50.0
- os.name=Windows XP
- os.arch=x86
- os.version=5.1
I added two patterns:
- pattern3 ("common" case (for doubles) of non-integer values) { 0.1, -0.1, 1e4+0.1, -1e4-0.1, 1e8+0.1, -1e8-0.1, 1e12+0.1, -1e12-0.1, (1L<<52)/1.1, -(1L<<52)/1.1}
- pattern4 (case of integer values) { 0.0, -0.0, 1e4, -1e4, 1e8, -1e8, (1L<<52), -(1L<<52), (1L<<60), -(1L<<60)}
I also added test of the pure Java StrictMath class (which is the one you ran as "StrictMath" in your bench?) posted on this subject: "StrictMath_JD".
Here is what I got:
- CLIENT
pattern 1: empty took 4,42 nsec Math.ceil took 63,77 nsec Math.floor took 67,55 nsec StrictMath.ceil took 64,20 nsec StrictMath.floor took 68,76 nsec StrictMath_JD.ceil took 52,58 nsec StrictMath_JD.floor took 53,57 nsec FloorCeil.ceil took 24,31 nsec FloorCeil.floor took 18,37 nsec pattern 2: empty took 4,50 nsec Math.ceil took 110,95 nsec Math.floor took 110,42 nsec StrictMath.ceil took 111,38 nsec StrictMath.floor took 110,97 nsec StrictMath_JD.ceil took 48,95 nsec StrictMath_JD.floor took 49,38 nsec FloorCeil.ceil took 23,29 nsec FloorCeil.floor took 20,81 nsec pattern 3: empty took 4,39 nsec Math.ceil took 111,72 nsec Math.floor took 114,48 nsec StrictMath.ceil took 113,68 nsec StrictMath.floor took 114,32 nsec StrictMath_JD.ceil took 60,23 nsec StrictMath_JD..floor took 60,13 nsec FloorCeil.ceil took 27,11 nsec FloorCeil.floor took 23,77 nsec pattern 4: empty took 4,38 nsec Math.ceil took 113,49 nsec Math.floor took 113,34 nsec StrictMath.ceil took 110,35 nsec StrictMath.floor took 112,95 nsec StrictMath_JD.ceil took 43,69 nsec StrictMath_JD.floor took 44,28 nsec FloorCeil.ceil took 22,09 nsec FloorCeil.floor took 18,71 nsec
- SERVER
pattern 1: empty took 2,40 nsec Math.ceil took 64,61 nsec Math.floor took 65,14 nsec StrictMath.ceil took 63,93 nsec StrictMath.floor took 65,99 nsec StrictMath_JD.ceil took 37,52 nsec StrictMath_JD.floor took 39,77 nsec FloorCeil.ceil took 21,36 nsec FloorCeil.floor took 13,96 nsec pattern 2: empty took 2,23 nsec Math.ceil took 112,42 nsec Math.floor took 110,88 nsec StrictMath.ceil took 112,05 nsec StrictMath.floor took 113,54 nsec StrictMath_JD.ceil took 33,98 nsec StrictMath_JD.floor took 33,97 nsec FloorCeil.ceil took 22,09 nsec FloorCeil.floor took 16,75 nsec pattern 3: empty took 2,19 nsec Math.ceil took 113,67 nsec Math.floor took 113,53 nsec StrictMath.ceil took 114,46 nsec StrictMath.floor took 115,02 nsec StrictMath_JD.ceil took 44,19 nsec StrictMath_JD.floor took 43,57 nsec FloorCeil.ceil took 25,57 nsec FloorCeil.floor took 20,95 nsec pattern 4: empty took 2,45 nsec Math.ceil took 108,56 nsec Math.floor took 112,96 nsec StrictMath.ceil took 109,43 nsec StrictMath.floor took 113,14 nsec StrictMath_JD.ceil took 30,18 nsec StrictMath_JD..floor took 31,07 nsec FloorCeil.ceil took 18,11 nsec FloorCeil.floor took 15,91 nsec
Jeff
PS : The ceil and floor I posted here are an extract of a FastMath class (I already see some people in this mailing list invoking the gods against me while having a heart attack at the hearing of this class name) I did, and put on source forge (I already told about it in this list few months ago): maybe some of you might want to take a look at it (it's called "FastMath", but not ALL of its treatments are wrong...).
-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://mail.openjdk.java.net/pipermail/core-libs-dev/attachments/20100121/9ef6c03c/attachment.html>
- Previous message: Code review request for 6908131 Pure Java implementations of StrictMath.floor(double) &StrictMath.ceil(double)
- Next message: Code review request for 6908131 Pure Java implementations of StrictMath.floor(double) &StrictMath.ceil(double)
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]