X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fbenchmark-data-store%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fmd%2Fsal%2Fdom%2Fstore%2Fbenchmark%2FInMemoryDataStoreWriteTransactionBenchmark.java;fp=opendaylight%2Fmd-sal%2Fbenchmark-data-store%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fmd%2Fsal%2Fdom%2Fstore%2Fbenchmark%2FInMemoryDataStoreWriteTransactionBenchmark.java;h=d3dda96af5aa309d329b7800a94f831e7d3a898b;hb=a89f463bf293b27257f3fdd0fcfe90e0742ff652;hp=0000000000000000000000000000000000000000;hpb=41f7153fe534ac2dee4137eff6e3523f576504e3;p=controller.git diff --git a/opendaylight/md-sal/benchmark-data-store/src/main/java/org/opendaylight/controller/md/sal/dom/store/benchmark/InMemoryDataStoreWriteTransactionBenchmark.java b/opendaylight/md-sal/benchmark-data-store/src/main/java/org/opendaylight/controller/md/sal/dom/store/benchmark/InMemoryDataStoreWriteTransactionBenchmark.java new file mode 100644 index 0000000000..d3dda96af5 --- /dev/null +++ b/opendaylight/md-sal/benchmark-data-store/src/main/java/org/opendaylight/controller/md/sal/dom/store/benchmark/InMemoryDataStoreWriteTransactionBenchmark.java @@ -0,0 +1,50 @@ +/* + * Copyright (c) 2013 Cisco Systems, Inc. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ +package org.opendaylight.controller.md.sal.dom.store.benchmark; + +import com.google.common.util.concurrent.MoreExecutors; +import java.util.concurrent.TimeUnit; +import org.opendaylight.controller.md.sal.dom.store.impl.InMemoryDOMDataStore; +import org.openjdk.jmh.annotations.Fork; +import org.openjdk.jmh.annotations.Scope; +import org.openjdk.jmh.annotations.State; +import org.openjdk.jmh.annotations.BenchmarkMode; +import org.openjdk.jmh.annotations.Mode; +import org.openjdk.jmh.annotations.OutputTimeUnit; +import org.openjdk.jmh.annotations.Setup; +import org.openjdk.jmh.annotations.Level; +import org.openjdk.jmh.annotations.TearDown; + +/** + * Benchmark for testing of performance of write operations for InMemoryDataStore. The instance + * of benchmark creates InMemoryDataStore with Data Change Listener Executor Service as Same Thread Executor + * and DOM Store Executor Service as Same Thread Executor. + * + * @author Lukas Sedlak + */ +@State(Scope.Thread) +@BenchmarkMode(Mode.AverageTime) +@OutputTimeUnit(TimeUnit.MILLISECONDS) +@Fork(1) +public class InMemoryDataStoreWriteTransactionBenchmark extends AbstractInMemoryDatastoreWriteTransactionBenchmark { + + @Setup(Level.Trial) + public void setUp() throws Exception { + domStore = new InMemoryDOMDataStore("SINGLE_THREADED_DS_BENCHMARK", MoreExecutors.sameThreadExecutor(), + MoreExecutors.sameThreadExecutor()); + schemaContext = BenchmarkModel.createTestContext(); + domStore.onGlobalContextUpdated(schemaContext); + initTestNode(); + } + + @TearDown + public void tearDown() { + schemaContext = null; + domStore = null; + } +}