I did a test -- I did it on a real slow (800mhz) machine so the
differences are magnified but the shift clamp method works a little
faster than the logical test. Enough to include it in my code.
Results at the bottom. And surely enough to be used as the clamping
strategy in:
com.sun.media.jai.util.ImageUtil.java
int foo = 0;
int bar = 0;
long t0 = 0l;
long t1 = 0l;
for(int j = 0; j < 100; j++)
{
t0 = System.currentTimeMillis();
for(int i = -10000000; i < 10000000; i++)
{
//foo = (i >>> 31) | (i & 0xFF);
//foo = (i & 0xff);
foo = i;
bar = (((((foo << 23) >> 31) | foo) & 0xFF) & ~(foo>>31))&0xFF;
//System.err.println(i + ": foo = " + foo + ", bar = " + bar );
}
t1 = System.currentTimeMillis();
System.err.println("(1)Time = " +(t1 - t0));
t0 = System.currentTimeMillis();
for(int i = -10000000; i < 10000000; i++)
{
foo = i;
if(foo > 255)foo = 255;
else if(foo < 0)foo = 0;
//System.err.println(i + ": foo = " + foo + ", bar = " + bar );
}
t1 = System.currentTimeMillis();
System.err.println("(2)Time = " +(t1 - t0));
System.err.println("----------------");
}
Ken Warner wrote:
Hey Peter, it works! Nice job! I'll work it into my code and see
if I get any speed up. I only time to the milliseconds but a millisecond
here -- a millisecond there. Pretty soon it adds up to a decisecond...
int foo = 0;
int bar = 0;
for(int i = -10; i < 265; i++)
{
//foo = (i >>> 31) | (i & 0xFF);
//foo = (i & 0xff);
foo = i;
bar = (((((foo << 23) >> 31) | foo) & 0xFF) & ~(foo>>31))&0xFF;
System.err.println(i + ": foo = " + foo + ", bar = " + bar );
}
-5: foo = -5, bar = 0
-4: foo = -4, bar = 0
-3: foo = -3, bar = 0
-2: foo = -2, bar = 0
-1: foo = -1, bar = 0
0: foo = 0, bar = 0
1: foo = 1, bar = 1
2: foo = 2, bar = 2
3: foo = 3, bar = 3
.
.
.
252: foo = 252, bar = 252
253: foo = 253, bar = 253
254: foo = 254, bar = 254
255: foo = 255, bar = 255
256: foo = 256, bar = 255
257: foo = 257, bar = 255
258: foo = 258, bar = 255
1)Time = 200
(2)Time = 221
----------------
(1)Time = 220
(2)Time = 210
----------------
(1)Time = 231
(2)Time = 250
----------------
(1)Time = 180
(2)Time = 221
----------------
(1)Time = 170
(2)Time = 220
----------------
(1)Time = 221
(2)Time = 270
----------------
(1)Time = 190
(2)Time = 221
----------------
(1)Time = 190
(2)Time = 220
----------------
(1)Time = 160
(2)Time = 221
----------------
(1)Time = 170
(2)Time = 210
----------------
(1)Time = 191
(2)Time = 220
----------------
(1)Time = 180
(2)Time = 210
----------------
(1)Time = 181
(2)Time = 220
----------------
(1)Time = 170
(2)Time = 221
----------------
(1)Time = 180
(2)Time = 220
----------------
(1)Time = 180
(2)Time = 211
----------------
(1)Time = 180
(2)Time = 210
----------------
(1)Time = 181
(2)Time = 220
----------------
(1)Time = 170
(2)Time = 210
----------------
(1)Time = 181
(2)Time = 210
----------------
(1)Time = 180
(2)Time = 221
----------------
(1)Time = 170
(2)Time = 220
----------------
(1)Time = 180
(2)Time = 211
----------------
(1)Time = 180
(2)Time = 210
----------------
(1)Time = 180
(2)Time = 221
----------------
(1)Time = 170
(2)Time = 220
----------------
(1)Time = 181
(2)Time = 210
----------------
(1)Time = 180
(2)Time = 210
----------------
(1)Time = 180
(2)Time = 220
----------------
(1)Time = 170
(2)Time = 221
----------------
(1)Time = 180
(2)Time = 220
----------------
(1)Time = 170
(2)Time = 251
----------------
(1)Time = 210
(2)Time = 220
----------------
(1)Time = 181
(2)Time = 210
----------------
(1)Time = 180
(2)Time = 221
----------------
(1)Time = 200
(2)Time = 370
----------------
(1)Time = 181
(2)Time = 210
----------------
(1)Time = 180
(2)Time = 221
----------------
(1)Time = 180
(2)Time = 210
----------------
(1)Time = 180
(2)Time = 221
----------------
(1)Time = 170
(2)Time = 220
----------------
(1)Time = 181
(2)Time = 210
----------------
(1)Time = 180
(2)Time = 210
----------------
(1)Time = 181
(2)Time = 220
----------------
(1)Time = 170
(2)Time = 291
----------------
(1)Time = 180
(2)Time = 220
----------------
(1)Time = 170
(2)Time = 221
----------------
(1)Time = 180
(2)Time = 220
----------------
(1)Time = 181
(2)Time = 230
----------------
(1)Time = 180
(2)Time = 210
----------------
(1)Time = 181
(2)Time = 220
----------------
(1)Time = 170
(2)Time = 221
----------------
(1)Time = 180
(2)Time = 230
----------------
(1)Time = 190
(2)Time = 211
----------------
(1)Time = 190
(2)Time = 250
----------------
(1)Time = 191
(2)Time = 220
----------------
(1)Time = 180
(2)Time = 221
----------------
(1)Time = 160
(2)Time = 230
----------------
(1)Time = 220
(2)Time = 241
----------------
(1)Time = 180
(2)Time = 250
----------------
(1)Time = 191
(2)Time = 210
----------------
(1)Time = 180
(2)Time = 221
----------------
(1)Time = 160
(2)Time = 220
----------------
(1)Time = 170
(2)Time = 221
----------------
(1)Time = 180
(2)Time = 240
----------------
(1)Time = 181
(2)Time = 220
----------------
(1)Time = 180
(2)Time = 220
----------------
(1)Time = 191
(2)Time = 210
----------------
(1)Time = 180
(2)Time = 221
----------------
(1)Time = 300
(2)Time = 361
----------------
(1)Time = 230
(2)Time = 220
----------------
(1)Time = 170
(2)Time = 221
----------------
(1)Time = 220
(2)Time = 250
----------------
(1)Time = 211
(2)Time = 320
----------------
(1)Time = 180
(2)Time = 211
----------------
(1)Time = 180
(2)Time = 230
----------------
(1)Time = 181
(2)Time = 210
----------------
(1)Time = 180
(2)Time = 220
----------------
(1)Time = 181
(2)Time = 230
----------------
(1)Time = 180
(2)Time = 211
----------------
(1)Time = 180
(2)Time = 210
----------------
(1)Time = 180
(2)Time = 221
----------------
(1)Time = 180
(2)Time = 210
----------------
(1)Time = 181
(2)Time = 210
----------------
(1)Time = 180
(2)Time = 220
----------------
(1)Time = 171
(2)Time = 220
----------------
(1)Time = 180
(2)Time = 211
----------------
(1)Time = 180
(2)Time = 220
----------------
(1)Time = 170
(2)Time = 271
----------------
(1)Time = 310
(2)Time = 371
----------------
(1)Time = 170
(2)Time = 240
----------------
(1)Time = 181
(2)Time = 290
----------------
(1)Time = 180
(2)Time = 211
----------------
(1)Time = 180
(2)Time = 220
----------------
(1)Time = 180
(2)Time = 231
----------------
(1)Time = 180
(2)Time = 210
----------------
(1)Time = 181
(2)Time = 330
----------------
(1)Time = 331
(2)Time = 230
----------------
(1)Time = 180
(2)Time = 271
----------------
(1)Time = 260
(2)Time = 270
----------------
===========================================================================
To unsubscribe, send email to [EMAIL PROTECTED] and include in the body
of the message "signoff JAVA2D-INTEREST". For general help, send email to
[EMAIL PROTECTED] and include in the body of the message "help".