- Timestamp:
- 03/29/12 23:11:33 (10 years ago)
- Location:
- Tests/JAVA/test/src/main/java/test/threads/queue/unstressed/impl
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
Tests/JAVA/test/src/main/java/test/threads/queue/unstressed/impl/AbstractSESDSequencer.java
r511 r517 58 58 } 59 59 60 61 private final int length;62 private volatile long headCursor = 0;63 64 60 /* Elements range: [headCursor, tailCursor) 65 61 * … … 74 70 * (tailCursor % size ) is the index of _cell_ for _next last item_ 75 71 */ 72 private final int length; 76 73 77 private volatile long p11, p12, p13, p14, p15, p16, p17, p18 = 7; 74 private volatile long $pad11, $pad12, $pad13, $pad14, $pad15, $pad16, $pad17, $pad18 = 7; 75 private volatile long headCursor = 0; 76 private volatile long $pad21, $pad22, $pad23, $pad24, $pad25, $pad26, $pad27, $pad28 = 8; 78 77 private volatile long tailCursor = 0; 79 private volatile long p21, p22, p23, p24, p25, p26, p27, p28 = 8;80 78 79 private volatile long $pad31, $pad32, $pad33, $pad34, $pad35, $pad36, $pad37, $pad38 = 9; 81 80 private long lastHeadObserved = 0; 82 private volatile long p31, p32, p33, p34, p35, p36, p37, p38 = 9;81 private volatile long $pad41, $pad42, $pad43, $pad44, $pad45, $pad46, $pad47, $pad48 = 9; 83 82 private long lastTailObserved = 0; 83 private volatile long $pad51, $pad52, $pad53, $pad54, $pad55, $pad56, $pad57, $pad58 = 9; 84 84 85 85 86 86 public long sumPaddingToPreventOptimisation() { 87 return p11 + p12 + p13 + p14 + p15 + p16 + p17 + p18 88 + p21 + p22 + p23 + p24 + p25 + p26 + p27 + p28 89 + p31 + p32 + p33 + p34 + p35 + p36 + p37 + p38; 87 try { 88 long sum = 0; 89 for ( final Field field : getClass().getFields() ) { 90 if ( field.getName().startsWith( "$pad" ) && field.getType() == long.class ) { 91 final Number value = ( Number ) field.get( this ); 92 sum += value.longValue(); 93 } 94 } 95 return sum; 96 } catch ( IllegalAccessException e ) { 97 return 0; 98 } 90 99 } 91 100 -
Tests/JAVA/test/src/main/java/test/threads/queue/unstressed/impl/CABSESDLazySetPaddedSpinOptimizedUnrolledQueue.java
r514 r517 1 1 package test.threads.queue.unstressed.impl; 2 2 3 import java.lang.reflect.Field; 3 4 import java.util.concurrent.atomic.AtomicLongFieldUpdater; 4 5 … … 35 36 36 37 private final int length; 37 public volatile long p11, p12, p13, p14, p15, p16, p17, p18 = 7; 38 39 public volatile long $pad11, $pad12, $pad13, $pad14, $pad15, $pad16, $pad17, $pad18 = 7; 38 40 private volatile long headCursor = 0; 39 public volatile long p21, p22, p23, p24, p25, p26, p27, p28 = 7;41 public volatile long $pad21, $pad22, $pad23, $pad24, $pad25, $pad26, $pad27, $pad28 = 7; 40 42 private volatile long tailCursor = 0; 41 public volatile long p31, p32, p33, p34, p35, p36, p37, p38 = 8;43 public volatile long $pad31, $pad32, $pad33, $pad34, $pad35, $pad36, $pad37, $pad38 = 8; 42 44 43 45 private long lastHeadObserved = 0; 44 public volatile long p41, p42, p43, p44, p45, p46, p47, p48 = 9;46 public volatile long $pad41, $pad42, $pad43, $pad44, $pad45, $pad46, $pad47, $pad48 = 9; 45 47 private long lastTailObserved = 0; 48 public volatile long $pad51, $pad52, $pad53, $pad54, $pad55, $pad56, $pad57, $pad58 = 9; 46 49 47 50 … … 49 52 50 53 public long sumPaddingToPreventOptimisation() { 51 return p11 + p12 + p13 + p14 + p15 + p16 + p17 + p18 52 + p21 + p22 + p23 + p24 + p25 + p26 + p27 + p28 53 + p31 + p32 + p33 + p34 + p35 + p36 + p37 + p38 54 + p41 + p42 + p43 + p44 + p45 + p46 + p47 + p48; 54 try { 55 long sum = 0; 56 for ( final Field field : getClass().getFields() ) { 57 if ( field.getName().startsWith( "$pad" ) && field.getType() == long.class ) { 58 final Number value = ( Number ) field.get( this ); 59 sum += value.longValue(); 60 } 61 } 62 return sum; 63 } catch ( IllegalAccessException e ) { 64 return 0; 65 } 55 66 } 56 67 -
Tests/JAVA/test/src/main/java/test/threads/queue/unstressed/impl/CABSESDLazySetPaddedUnrolledQueue.java
r514 r517 1 1 package test.threads.queue.unstressed.impl; 2 2 3 import java.lang.reflect.Field; 3 4 import java.util.concurrent.atomic.AtomicLongFieldUpdater; 4 5 … … 35 36 36 37 private final int length; 37 public volatile long p11, p12, p13, p14, p15, p16, p17, p18 = 7;38 public volatile long $pad11, $pad12, $pad13, $pad14, $pad15, $pad16, $pad17, $pad18 = 7; 38 39 private volatile long headCursor = 0; 39 public volatile long p21, p22, p23, p24, p25, p26, p27, p28 = 7;40 public volatile long $pad21, $pad22, $pad23, $pad24, $pad25, $pad26, $pad27, $pad28 = 7; 40 41 private volatile long tailCursor = 0; 41 public volatile long p31, p32, p33, p34, p35, p36, p37, p38 = 8;42 public volatile long $pad31, $pad32, $pad33, $pad34, $pad35, $pad36, $pad37, $pad38 = 8; 42 43 43 44 public long sumPaddingToPreventOptimisation() { 44 return p11 + p12 + p13 + p14 + p15 + p16 + p17 + p18 45 + p21 + p22 + p23 + p24 + p25 + p26 + p27 + p28 46 + p31 + p32 + p33 + p34 + p35 + p36 + p37 + p38; 45 try { 46 long sum = 0; 47 for ( final Field field : getClass().getFields() ) { 48 if ( field.getName().startsWith( "$pad" ) && field.getType() == long.class ) { 49 final Number value = ( Number ) field.get( this ); 50 sum += value.longValue(); 51 } 52 } 53 return sum; 54 } catch ( IllegalAccessException e ) { 55 return 0; 56 } 47 57 } 48 58 -
Tests/JAVA/test/src/main/java/test/threads/queue/unstressed/impl/CABSESDLazySetUnrolledQueue.java
r515 r517 36 36 private final int length; 37 37 private volatile long headCursor = 0; 38 // private volatile long p11, p12, p13, p14, p15, p16, p17, p18 = 7;39 38 private volatile long tailCursor = 0; 40 // private volatile long p21, p22, p23, p24, p25, p26, p27, p28 = 8;41 42 public long sumPaddingToPreventOptimisation() {43 // return p11 + p12 + p13 + p14 + p15 + p16 + p17 + p1844 // + p21 + p22 + p23 + p24 + p25 + p26 + p27 + p28;45 return 0;46 }47 39 48 40 private final T[] elements; … … 56 48 this.length = length; 57 49 elements = ( T[] ) new Object[length]; 58 sumPaddingToPreventOptimisation();59 50 } 60 51
Note: See TracChangeset
for help on using the changeset viewer.