Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import org.openjdk.jmh.annotations.*;
- import sun.misc.Contended;
- @Fork(value = 1, jvmArgsPrepend = "-XX:-RestrictContended")
- @Warmup(iterations = 10)
- @Measurement(iterations = 30)
- @Threads(2)
- public class ContendedBenchmarks {
- @State(Scope.Group)
- public static class Unpadded {
- public long a;
- public long b;
- }
- @State(Scope.Group)
- public static class Padded {
- @Contended
- public long a;
- public long b;
- }
- @Group("unpadded")
- @GroupThreads(1)
- @Benchmark
- public long updateUnpaddedA(Unpadded u) {
- return u.a++;
- }
- @Group("unpadded")
- @GroupThreads(1)
- @Benchmark
- public long updateUnpaddedB(Unpadded u) {
- return u.b++;
- }
- @Group("padded")
- @GroupThreads(1)
- @Benchmark
- public long updatePaddedA(Padded u) {
- return u.a++;
- }
- @Group("padded")
- @GroupThreads(1)
- @Benchmark
- public long updatePaddedB(Padded u) {
- return u.b++;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement