Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
pentaLiker
DolphinScheduler
提交
2c590450
DolphinScheduler
项目概览
pentaLiker
/
DolphinScheduler
与 Fork 源项目一致
Fork自
apache / DolphinScheduler
通知
1
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
DolphinScheduler
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
未验证
提交
2c590450
编写于
6月 09, 2020
作者:
S
Simon
提交者:
GitHub
6月 09, 2020
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #1 from apache/dev
merge
上级
6e907f15
b21259d6
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
339 addition
and
2 deletion
+339
-2
.github/workflows/ci_e2e.yml
.github/workflows/ci_e2e.yml
+1
-1
.github/workflows/ci_ut.yml
.github/workflows/ci_ut.yml
+1
-1
dolphinscheduler-microbench/pom.xml
dolphinscheduler-microbench/pom.xml
+101
-0
dolphinscheduler-microbench/src/main/java/org/apache/dolphinscheduler/microbench/base/AbstractBaseBenchmark.java
...lphinscheduler/microbench/base/AbstractBaseBenchmark.java
+123
-0
dolphinscheduler-microbench/src/main/java/org/apache/dolphinscheduler/microbench/common/EnumBenchMark.java
...che/dolphinscheduler/microbench/common/EnumBenchMark.java
+112
-0
pom.xml
pom.xml
+1
-0
未找到文件。
.github/workflows/ci_e2e.yml
浏览文件 @
2c590450
...
...
@@ -69,6 +69,6 @@ jobs:
uses
:
actions/upload-artifact@v1
with
:
name
:
dslogs
path
:
/var/lib/docker/volumes/do
cker-swarm_do
lphinscheduler-logs/_data
path
:
/var/lib/docker/volumes/dolphinscheduler-logs/_data
.github/workflows/ci_ut.yml
浏览文件 @
2c590450
...
...
@@ -78,7 +78,7 @@ jobs:
-Dsonar.core.codeCoveragePlugin=jacoco
-Dsonar.projectKey=apache-dolphinscheduler
-Dsonar.login=e4058004bc6be89decf558ac819aa1ecbee57682
-Dsonar.exclusions=dolphinscheduler-ui/src/**/i18n/locale/*.js
-Dsonar.exclusions=dolphinscheduler-ui/src/**/i18n/locale/*.js
,dolphinscheduler-microbench/src/**/*
env
:
GITHUB_TOKEN
:
${{ secrets.GITHUB_TOKEN }}
SONAR_TOKEN
:
${{ secrets.SONAR_TOKEN }}
...
...
dolphinscheduler-microbench/pom.xml
0 → 100644
浏览文件 @
2c590450
<?xml version="1.0" encoding="UTF-8"?>
<!--
~ Licensed to the Apache Software Foundation (ASF) under one or more
~ contributor license agreements. See the NOTICE file distributed with
~ this work for additional information regarding copyright ownership.
~ The ASF licenses this file to You 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
~
~ http://www.apache.org/licenses/LICENSE-2.0
~
~ 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.
-->
<project
xmlns=
"http://maven.apache.org/POM/4.0.0"
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation=
"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
>
<parent>
<artifactId>
dolphinscheduler
</artifactId>
<groupId>
org.apache.dolphinscheduler
</groupId>
<version>
1.2.1-SNAPSHOT
</version>
</parent>
<modelVersion>
4.0.0
</modelVersion>
<artifactId>
dolphinscheduler-microbench
</artifactId>
<packaging>
jar
</packaging>
<name>
${project.artifactId}
</name>
<properties>
<project.build.sourceEncoding>
UTF-8
</project.build.sourceEncoding>
<jmh.version>
1.21
</jmh.version>
<javac.target>
1.8
</javac.target>
<uberjar.name>
benchmarks
</uberjar.name>
</properties>
<dependencies>
<dependency>
<groupId>
org.openjdk.jmh
</groupId>
<artifactId>
jmh-core
</artifactId>
<version>
${jmh.version}
</version>
</dependency>
<dependency>
<groupId>
org.openjdk.jmh
</groupId>
<artifactId>
jmh-generator-annprocess
</artifactId>
<version>
${jmh.version}
</version>
<scope>
provided
</scope>
</dependency>
<dependency>
<groupId>
junit
</groupId>
<artifactId>
junit
</artifactId>
<scope>
compile
</scope>
</dependency>
<dependency>
<groupId>
org.slf4j
</groupId>
<artifactId>
slf4j-api
</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>
org.apache.maven.plugins
</groupId>
<artifactId>
maven-compiler-plugin
</artifactId>
<version>
${maven-compiler-plugin.version}
</version>
<configuration>
<compilerVersion>
${javac.target}
</compilerVersion>
<source>
${javac.target}
</source>
<target>
${javac.target}
</target>
<useIncrementalCompilation>
false
</useIncrementalCompilation>
</configuration>
</plugin>
<plugin>
<groupId>
org.apache.maven.plugins
</groupId>
<artifactId>
maven-assembly-plugin
</artifactId>
<version>
${maven-assembly-plugin.version}
</version>
<configuration>
<archive>
<manifest>
<mainClass>
org.openjdk.jmh.Main
</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>
jar-with-dependencies
</descriptorRef>
</descriptorRefs>
</configuration>
</plugin>
</plugins>
</build>
</project>
\ No newline at end of file
dolphinscheduler-microbench/src/main/java/org/apache/dolphinscheduler/microbench/base/AbstractBaseBenchmark.java
0 → 100644
浏览文件 @
2c590450
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You 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
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* 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
org.apache.dolphinscheduler.microbench.base
;
import
org.junit.Test
;
import
org.openjdk.jmh.annotations.*
;
import
org.openjdk.jmh.results.format.ResultFormatType
;
import
org.openjdk.jmh.runner.Runner
;
import
org.openjdk.jmh.runner.options.ChainedOptionsBuilder
;
import
org.openjdk.jmh.runner.options.OptionsBuilder
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
java.io.File
;
import
java.io.IOException
;
/**
* BaseBenchMark
* If you need to test jmh, please extend him first
*/
@Warmup
(
iterations
=
AbstractBaseBenchmark
.
DEFAULT_WARMUP_ITERATIONS
)
@Measurement
(
iterations
=
AbstractBaseBenchmark
.
DEFAULT_MEASURE_ITERATIONS
)
@State
(
Scope
.
Thread
)
@Fork
(
AbstractBaseBenchmark
.
DEFAULT_FORKS
)
public
abstract
class
AbstractBaseBenchmark
{
static
final
int
DEFAULT_WARMUP_ITERATIONS
=
10
;
static
final
int
DEFAULT_MEASURE_ITERATIONS
=
10
;
static
final
int
DEFAULT_FORKS
=
2
;
private
static
Logger
logger
=
LoggerFactory
.
getLogger
(
AbstractBaseBenchmark
.
class
);
private
ChainedOptionsBuilder
newOptionsBuilder
()
{
String
className
=
getClass
().
getSimpleName
();
ChainedOptionsBuilder
optBuilder
=
new
OptionsBuilder
()
// set benchmark ClassName
.
include
(
className
);
if
(
getMeasureIterations
()
>
0
)
{
optBuilder
.
warmupIterations
(
getMeasureIterations
());
}
if
(
getMeasureIterations
()
>
0
)
{
optBuilder
.
measurementIterations
(
getMeasureIterations
());
}
if
(
getForks
()
>
0
)
{
optBuilder
.
forks
(
getForks
());
}
String
output
=
getReportDir
();
if
(
output
!=
null
)
{
boolean
writeFileStatus
;
String
filePath
=
getReportDir
()
+
className
+
".json"
;
File
file
=
new
File
(
filePath
);
if
(
file
.
exists
())
{
writeFileStatus
=
file
.
delete
();
}
else
{
writeFileStatus
=
file
.
getParentFile
().
mkdirs
();
try
{
writeFileStatus
=
file
.
createNewFile
();
}
catch
(
IOException
e
)
{
logger
.
warn
(
"jmh test create file error"
+
e
);
}
}
if
(
writeFileStatus
)
{
optBuilder
.
resultFormat
(
ResultFormatType
.
JSON
)
.
result
(
filePath
);
}
}
return
optBuilder
;
}
@Test
public
void
run
()
throws
Exception
{
new
Runner
(
newOptionsBuilder
().
build
()).
run
();
}
private
int
getWarmupIterations
()
{
String
value
=
System
.
getProperty
(
"warmupIterations"
);
return
null
!=
value
?
Integer
.
parseInt
(
value
)
:
-
1
;
}
private
int
getMeasureIterations
()
{
String
value
=
System
.
getProperty
(
"measureIterations"
);
return
null
!=
value
?
Integer
.
parseInt
(
value
)
:
-
1
;
}
private
static
String
getReportDir
()
{
return
System
.
getProperty
(
"perfReportDir"
);
}
private
static
int
getForks
()
{
String
value
=
System
.
getProperty
(
"forkCount"
);
return
null
!=
value
?
Integer
.
parseInt
(
value
)
:
-
1
;
}
}
dolphinscheduler-microbench/src/main/java/org/apache/dolphinscheduler/microbench/common/EnumBenchMark.java
0 → 100644
浏览文件 @
2c590450
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You 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
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* 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
org.apache.dolphinscheduler.microbench.common
;
import
org.apache.dolphinscheduler.microbench.base.AbstractBaseBenchmark
;
import
org.openjdk.jmh.annotations.*
;
import
java.util.HashMap
;
import
java.util.Map
;
import
java.util.concurrent.TimeUnit
;
/**
*Enum values JMH test
*/
@Warmup
(
iterations
=
2
,
time
=
1
)
@Measurement
(
iterations
=
4
,
time
=
1
)
@State
(
Scope
.
Benchmark
)
public
class
EnumBenchMark
extends
AbstractBaseBenchmark
{
@Benchmark
public
boolean
simpleTest
(){
return
Boolean
.
TRUE
;
}
@Param
({
"101"
,
"108"
,
"103"
,
"104"
,
"105"
,
"103"
})
private
int
testNum
;
@Benchmark
@BenchmarkMode
(
Mode
.
AverageTime
)
@OutputTimeUnit
(
TimeUnit
.
MICROSECONDS
)
public
void
enumValuesTest
()
{
TestTypeEnum
.
oldGetNameByType
(
testNum
);
}
@Benchmark
@BenchmarkMode
(
Mode
.
AverageTime
)
@OutputTimeUnit
(
TimeUnit
.
MICROSECONDS
)
public
void
enumStaticMapTest
()
{
TestTypeEnum
.
newGetNameByType
(
testNum
);
}
public
enum
TestTypeEnum
{
TYPE_101
(
101
,
"TYPE101"
),
TYPE_102
(
102
,
"TYPE102"
),
TYPE_103
(
103
,
"TYPE103"
),
TYPE_104
(
104
,
"TYPE104"
),
TYPE_105
(
105
,
"TYPE105"
),
TYPE_106
(
106
,
"TYPE106"
),
TYPE_107
(
107
,
"TYPE107"
),
TYPE_108
(
108
,
"TYPE108"
);
private
int
code
;
private
String
name
;
public
int
getCode
()
{
return
code
;
}
public
String
getName
()
{
return
name
;
}
TestTypeEnum
(
int
code
,
String
name
)
{
this
.
code
=
code
;
this
.
name
=
name
;
}
private
static
final
Map
<
Integer
,
TestTypeEnum
>
TEST_TYPE_MAP
=
new
HashMap
<>();
static
{
for
(
TestTypeEnum
testTypeEnum
:
TestTypeEnum
.
values
())
{
TEST_TYPE_MAP
.
put
(
testTypeEnum
.
code
,
testTypeEnum
);
}
}
public
static
void
newGetNameByType
(
int
code
)
{
if
(
TEST_TYPE_MAP
.
containsKey
(
code
))
{
TEST_TYPE_MAP
.
get
(
code
);
return
;
}
throw
new
IllegalArgumentException
(
"invalid code : "
+
code
);
}
public
static
void
oldGetNameByType
(
int
code
)
{
for
(
TestTypeEnum
testTypeEnum
:
TestTypeEnum
.
values
())
{
if
(
testTypeEnum
.
getCode
()
==
code
)
{
return
;
}
}
throw
new
IllegalArgumentException
(
"invalid code : "
+
code
);
}
}
}
pom.xml
浏览文件 @
2c590450
...
...
@@ -1011,5 +1011,6 @@
<module>
dolphinscheduler-remote
</module>
<module>
dolphinscheduler-service
</module>
<module>
dolphinscheduler-plugin-api
</module>
<module>
dolphinscheduler-microbench
</module>
</modules>
</project>
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录