Skip to content

Commit

Permalink
Merge pull request #1036 from mattrjacobs/reduce-map-reads
Browse files Browse the repository at this point in the history
Reduce map reads
  • Loading branch information
mattrjacobs committed Jan 4, 2016
2 parents 0bdf123 + 07cc698 commit 589b4e0
Show file tree
Hide file tree
Showing 5 changed files with 52 additions and 7 deletions.
2 changes: 1 addition & 1 deletion hystrix-core/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ jar {
jmh {
fork = 10
iterations = 3
jmhVersion = '1.11.1'
jmhVersion = '1.11.2'
profilers = ['gc']
threads = 8
warmup = '1s'
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
/**
* Copyright 2014 Netflix, Inc.
* <p/>
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
* <p/>
* http://www.apache.org/licenses/LICENSE-2.0
* <p/>
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.netflix.hystrix.perf;

import com.netflix.hystrix.HystrixCommand;
import com.netflix.hystrix.HystrixCommandGroupKey;
import org.openjdk.jmh.annotations.Benchmark;
import org.openjdk.jmh.annotations.BenchmarkMode;
import org.openjdk.jmh.annotations.Mode;
import org.openjdk.jmh.annotations.OutputTimeUnit;

import java.util.concurrent.TimeUnit;

public class CommandConstructionPerfTest {

static HystrixCommandGroupKey groupKey = HystrixCommandGroupKey.Factory.asKey("Group");

@Benchmark
@BenchmarkMode({Mode.SampleTime})
@OutputTimeUnit(TimeUnit.MICROSECONDS)
public HystrixCommand constructHystrixCommandByGroupKeyOnly() {
return new HystrixCommand<Integer>(groupKey) {
@Override
protected Integer run() throws Exception {
return 1;
}
};
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -50,9 +50,10 @@ private Factory() {
public static HystrixCommandGroupKey asKey(String name) {
HystrixCommandGroupKey k = intern.get(name);
if (k == null) {
intern.putIfAbsent(name, new HystrixCommandGroupDefault(name));
k = new HystrixCommandGroupDefault(name);
intern.putIfAbsent(name, k);
}
return intern.get(name);
return k;
}

private static class HystrixCommandGroupDefault implements HystrixCommandGroupKey {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,9 +48,10 @@ private Factory() {
public static HystrixCommandKey asKey(String name) {
HystrixCommandKey k = intern.get(name);
if (k == null) {
intern.putIfAbsent(name, new HystrixCommandKeyDefault(name));
k = new HystrixCommandKeyDefault(name);
intern.putIfAbsent(name, k);
}
return intern.get(name);
return k;
}

private static class HystrixCommandKeyDefault implements HystrixCommandKey {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,9 +50,10 @@ private Factory() {
public static HystrixThreadPoolKey asKey(String name) {
HystrixThreadPoolKey k = intern.get(name);
if (k == null) {
intern.putIfAbsent(name, new HystrixThreadPoolKeyDefault(name));
k = new HystrixThreadPoolKeyDefault(name);
intern.putIfAbsent(name, k);
}
return intern.get(name);
return k;
}

private static class HystrixThreadPoolKeyDefault implements HystrixThreadPoolKey {
Expand Down

0 comments on commit 589b4e0

Please sign in to comment.