Skip to content

Commit 65ff00e

Browse files
committed
Обновление теста jmh
1 parent 1f7a38d commit 65ff00e

File tree

2 files changed

+27
-54
lines changed

2 files changed

+27
-54
lines changed

src/jmh/java/com/github/_1c_syntax/bsl/languageserver/context/symbol/VariableSymbolCreate.java

Lines changed: 5 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -27,46 +27,27 @@
2727
import org.openjdk.jmh.annotations.Benchmark;
2828
import org.openjdk.jmh.annotations.Fork;
2929
import org.openjdk.jmh.annotations.Level;
30+
import org.openjdk.jmh.annotations.Param;
3031
import org.openjdk.jmh.annotations.Scope;
3132
import org.openjdk.jmh.annotations.Setup;
3233
import org.openjdk.jmh.annotations.State;
3334
import org.openjdk.jmh.annotations.Warmup;
3435
import org.openjdk.jmh.infra.Blackhole;
3536

3637
import java.util.Optional;
37-
import java.util.Random;
3838

3939
@State(Scope.Benchmark)
4040
public class VariableSymbolCreate {
4141

42-
private static final Random RANDOM = new Random();
43-
4442
private Range range;
45-
private Range variableNameRange;
4643

47-
// @Param("shortBased")
44+
@Param({"false", "true"})
4845
boolean shortBased;
4946

50-
@Setup(Level.Invocation)
47+
@Setup(Level.Trial)
5148
public void setup() {
52-
var line = RANDOM.nextInt(60_000);
49+
int line = shortBased ? 100 : 60_000;
5350
range = Ranges.create(line, 0, line, 1);
54-
55-
line = RANDOM.nextInt(60_000);
56-
variableNameRange = Ranges.create(line, 0, line, 1);
57-
58-
var start = range.getStart();
59-
var end = range.getEnd();
60-
var variableNameRangeStart = variableNameRange.getStart();
61-
var variableNameRangeEnd = variableNameRange.getEnd();
62-
63-
shortBased = start.getLine() <= Short.MAX_VALUE
64-
&& end.getLine() <= Short.MAX_VALUE
65-
&& start.getCharacter() <= Short.MAX_VALUE
66-
&& end.getCharacter() <= Short.MAX_VALUE
67-
&& variableNameRangeStart.getLine() <= Short.MAX_VALUE
68-
&& variableNameRangeStart.getCharacter() <= Short.MAX_VALUE
69-
&& variableNameRangeEnd.getCharacter() <= Short.MAX_VALUE;
7051
}
7152

7253
@Benchmark
@@ -78,21 +59,12 @@ public void createVariableSymbols(Blackhole bh) {
7859
bh.consume(test);
7960
}
8061

81-
@Benchmark
82-
@Fork(value = 2, warmups = 2)
83-
@Warmup(time = 5, iterations = 3)
84-
public void createVariableSymbolsInt(Blackhole bh) {
85-
var test = getVariableSymbolBuilder().buildInt();
86-
87-
bh.consume(test);
88-
}
89-
9062
private VariableSymbolBuilder getVariableSymbolBuilder() {
9163
return VariableSymbol.builder()
9264
.name("test")
9365
.owner(null)
9466
.range(range)
95-
.variableNameRange(variableNameRange)
67+
.variableNameRange(range)
9668
.export(true)
9769
.kind(VariableKind.MODULE)
9870
.description(Optional.empty())

src/main/java/com/github/_1c_syntax/bsl/languageserver/context/symbol/VariableSymbolBuilder.java

Lines changed: 22 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ public VariableSymbolBuilder range(Range range) {
5353
startLine = start.getLine();
5454
startCharacter = start.getCharacter();
5555
endLine = end.getLine();
56-
endCharacter = end.getCharacter();
56+
endCharacter = end.getCharacter();
5757

5858
return this;
5959
}
@@ -110,32 +110,33 @@ public VariableSymbolBuilder description(Optional<VariableDescription> descripti
110110

111111
public VariableSymbol build() {
112112

113-
if (startLine <= Short.MAX_VALUE
113+
var shortBased = startLine <= Short.MAX_VALUE
114114
&& endLine <= Short.MAX_VALUE
115115
&& startCharacter <= Short.MAX_VALUE
116116
&& endCharacter <= Short.MAX_VALUE
117117
&& variableNameLine <= Short.MAX_VALUE
118118
&& variableNameStartCharacter <= Short.MAX_VALUE
119-
&& variableNameEndCharacter <= Short.MAX_VALUE) {
120-
return new ShortBasedVariableSymbol(
121-
name,
122-
scope,
123-
owner,
124-
(short) startLine,
125-
(short) startCharacter,
126-
(short) endLine,
127-
(short) endCharacter,
128-
(short) variableNameLine,
129-
(short) variableNameStartCharacter,
130-
(short) variableNameEndCharacter,
131-
parent,
132-
children,
133-
(byte) kind.ordinal(),
134-
export,
135-
description
136-
);
137-
} else {
119+
&& variableNameEndCharacter <= Short.MAX_VALUE;
138120

121+
if (shortBased) {
122+
return new ShortBasedVariableSymbol(
123+
name,
124+
scope,
125+
owner,
126+
(short) startLine,
127+
(short) startCharacter,
128+
(short) endLine,
129+
(short) endCharacter,
130+
(short) variableNameLine,
131+
(short) variableNameStartCharacter,
132+
(short) variableNameEndCharacter,
133+
parent,
134+
children,
135+
(byte) kind.ordinal(),
136+
export,
137+
description
138+
);
139+
} else {
139140
return new IntBasedVariableSymbol(
140141
name,
141142
scope,

0 commit comments

Comments
 (0)