Skip to content

Commit

Permalink
Add benchmark comparison between cosid and leaf to workflows (#23)
Browse files Browse the repository at this point in the history
Add benchmark comparison between cosid and leaf to workflows
  • Loading branch information
Ahoo-Wang authored Jan 15, 2022
1 parent 3eed60a commit 06af276
Show file tree
Hide file tree
Showing 5 changed files with 118 additions and 4 deletions.
19 changes: 16 additions & 3 deletions .github/workflows/benchmark-test.yml
Original file line number Diff line number Diff line change
@@ -1,13 +1,27 @@
#
# Copyright [2021-present] [ahoo wang <[email protected]> (https://github.com/Ahoo-Wang)].
# 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
# 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.
#

## :::::: WARNING ::::::
## https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners#supported-runners-and-hardware-resources
## :::::::::::::::::::::
## 因受到 GitHub Runner 资源限制,运行在 GitHub Runner 中的基准测试与真实环境基准测试对比有非常大的差距(近2倍),
## 但是对于运行在同一环境配置资源情况下(都运行在 GitHub Runner),进行 commit 前后的基准对比、以及第三方库的对比依然是有价值。
## :::::::::::::::::::::
## Due to the resource constraints of GitHub runner, the benchmark running in GitHub runner is very different from the benchmark in the real environment (nearly twice),
## However, it is still valuable to compare the benchmark before and after commit and the third-party library when running in the same environment and configuring resources (both running in GitHub runner).
## :::::::::::::::::::::

name: Benchmark Test
name: Benchmark CosId Test
on: [ push ]
jobs:
cosid-core-benchmark:
Expand Down Expand Up @@ -79,7 +93,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Start Mysql
run: sudo /etc/init.d/mysql start
run: sudo /etc/init.d/mysql start

- name: Checkout
uses: actions/checkout@master
Expand All @@ -97,4 +111,3 @@ jobs:

- name: CosId-Jdbc
run: gradle cosid-jdbc:clean cosid-jdbc:jmh

70 changes: 70 additions & 0 deletions .github/workflows/benchmark-vs-test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
#
# Copyright [2021-present] [ahoo wang <[email protected]> (https://github.com/Ahoo-Wang)].
# 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
# 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.
#

## :::::: WARNING ::::::
## https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners#supported-runners-and-hardware-resources
## :::::::::::::::::::::
## 因受到 GitHub Runner 资源限制,运行在 GitHub Runner 中的基准测试与真实环境基准测试对比有非常大的差距(近2倍),
## 但是对于运行在同一环境配置资源情况下(都运行在 GitHub Runner),进行 commit 前后的基准对比、以及第三方库的对比依然是有价值。
## :::::::::::::::::::::
## Due to the resource constraints of GitHub runner, the benchmark running in GitHub runner is very different from the benchmark in the real environment (nearly twice),
## However, it is still valuable to compare the benchmark before and after commit and the third-party library when running in the same environment and configuring resources (both running in GitHub runner).
## :::::::::::::::::::::

name: Benchmark VS Test
on: [ push ]
jobs:
# WARNING:中央仓库没有找到美团官方提供的Jar!!!
# git clone https://github.com/Meituan-Dianping/Leaf
# mvn install -Dmaven.test.skip=true
benchmark-vs-leaf:
name: CosId VS Leaf
runs-on: ubuntu-latest
steps:
- name: Checkout Leaf
uses: actions/checkout@master
with:
repository: Meituan-Dianping/Leaf

# - name: Cache local Maven repository
# id: cache-maven-repo
# uses: actions/cache@v2
# with:
# path: ~/.m2/repository
# key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
# restore-keys: |
# ${{ runner.os }}-maven-

- name: Set up JDK 8
uses: actions/setup-java@v2
with:
java-version: '8'
distribution: 'adopt'
server-id: github
settings-path: ${{ github.workspace }}

- name: Install Leaf Package
run: mvn install -Dmaven.test.skip=true

- name: Start Mysql
run: sudo /etc/init.d/mysql start

- name: Checkout CosId
uses: actions/checkout@master

- name: Init Benchmark-Db
run: mysql -vvv -h localhost -uroot -proot < cosid-benchmark/src/jmh/init/init-script.sql

- name: Benchmark Test
working-directory: cosid-benchmark
run: gradle clean jmh
13 changes: 13 additions & 0 deletions .github/workflows/document-deploy.yml
Original file line number Diff line number Diff line change
@@ -1,3 +1,16 @@
#
# Copyright [2021-present] [ahoo wang <[email protected]> (https://github.com/Ahoo-Wang)].
# 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
# 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.
#

name: Document Build and Deploy
on: [push]
jobs:
Expand Down
13 changes: 13 additions & 0 deletions .github/workflows/integration-test.yml
Original file line number Diff line number Diff line change
@@ -1,3 +1,16 @@
#
# Copyright [2021-present] [ahoo wang <[email protected]> (https://github.com/Ahoo-Wang)].
# 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
# 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.
#

name: Integration Test
on: [ push ]
jobs:
Expand Down
7 changes: 6 additions & 1 deletion cosid-benchmark/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,11 @@ java {
}
}

repositories {
mavenLocal()
mavenCentral()
}

//val jmhVersion = "1.33"

dependencies {
Expand All @@ -39,7 +44,7 @@ dependencies {
* git clone https://github.com/didi/tinyid
* mvn install -Dmaven.test.skip=true
*/
testImplementation("com.xiaoju.uemc.tinyid:tinyid-client:0.1.0-SNAPSHOT")
// testImplementation("com.xiaoju.uemc.tinyid:tinyid-client:0.1.0-SNAPSHOT")

jmh("org.openjdk.jmh:jmh-core:1.33")
jmh("org.openjdk.jmh:jmh-generator-annprocess:1.33")
Expand Down

0 comments on commit 06af276

Please sign in to comment.