This is an automated email from the ASF dual-hosted git repository.
wangweipeng pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/incubator-fury.git
The following commit(s) were added to refs/heads/main by this push:
new bcd36656 perf(java): merge perftests into benchmark (#1318)
bcd36656 is described below
commit bcd366562f7ecf96970ebef05a1877dd48805d76
Author: Shawn Yang <[email protected]>
AuthorDate: Sun Jan 7 19:08:25 2024 +0800
perf(java): merge perftests into benchmark (#1318)
---
.gitattributes | 1 -
ci/deploy.sh | 4 +-
ci/format.sh | 4 +-
ci/run_ci.sh | 3 +
integration_tests/README.md | 3 +-
integration_tests/perftests/README.md | 24 --
integration_tests/perftests/pom.xml | 251 ---------------------
.../UserTypeDeserializeSuite.java | 67 ------
.../integration_tests/UserTypeSerializeSuite.java | 83 -------
java/fury-benchmark/README.md | 13 +-
java/fury-benchmark/pom.xml | 78 +++++++
.../fury/benchmark/UserTypeDeserializeSuite.java | 23 ++
.../fury/benchmark/UserTypeSerializeSuite.java | 25 ++
.../org/apache/fury/benchmark}/state/Example.java | 2 +-
.../fury/benchmark}/state/FlatBuffersState.java | 21 +-
.../fury/benchmark}/state/ProtoBuffersState.java | 9 +-
.../org/apache/fury/benchmark}/state/bench.fbs | 0
.../fury/benchmark}/state/generated/FBSBar.java | 24 +-
.../fury/benchmark}/state/generated/FBSFoo.java | 4 +-
.../fury/benchmark}/state/generated/FBSImage.java | 8 +-
.../fury/benchmark}/state/generated/FBSMedia.java | 4 +-
.../state/generated/FBSMediaContent.java | 16 +-
.../fury/benchmark}/state/generated/FBSPlayer.java | 2 +-
.../fury/benchmark}/state/generated/FBSSample.java | 4 +-
.../fury/benchmark}/state/generated/FBSSize.java | 2 +-
.../fury-benchmark}/src/main/proto/bench.proto | 0
.../benchmark}/state/FlatBuffersStateTest.java | 11 +-
.../benchmark}/state/ProtoBuffersStateTest.java | 11 +-
licenserc.toml | 2 +-
29 files changed, 211 insertions(+), 488 deletions(-)
diff --git a/.gitattributes b/.gitattributes
index a2e46878..4c3924f5 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -1,2 +1 @@
java/fury-benchmark export-ignore
-integration_tests/perftests export-ignore
\ No newline at end of file
diff --git a/ci/deploy.sh b/ci/deploy.sh
index bb9d4be8..e5d1ad40 100755
--- a/ci/deploy.sh
+++ b/ci/deploy.sh
@@ -89,8 +89,6 @@ bump_java_version() {
echo "Set fury integration_tests version to $version"
cd "$ROOT/integration_tests/jdk_compatibility_tests"
mvn versions:set -DnewVersion="$version"
- cd "$ROOT/integration_tests/perftests"
- mvn versions:set -DnewVersion="$version"
cd "$ROOT/integration_tests/latest_jdk_tests"
mvn versions:set -DnewVersion="$version"
}
@@ -176,4 +174,4 @@ python) # Deploy wheel to pypi
echo "Execute command $*"
"$@"
;;
-esac
\ No newline at end of file
+esac
diff --git a/ci/format.sh b/ci/format.sh
index 433dc47b..54750890 100755
--- a/ci/format.sh
+++ b/ci/format.sh
@@ -13,7 +13,7 @@ BLACK_VERSION_REQUIRED="22.1.0"
SHELLCHECK_VERSION_REQUIRED="0.7.1"
install_nodejs() {
- #intall nodejs
+ #intall nodejs
filename="node-v16.17.1-linux-x64"
pkg="$filename.tar.gz"
NODE_URL="https://nodejs.org/dist/v16.17.1/$pkg"
@@ -188,7 +188,7 @@ format_java() {
cd "$ROOT/java/fury-benchmark"
mvn -T10 --no-transfer-progress spotless:apply
cd "$ROOT/integration_tests"
- dirs=("graalvm_tests" "jdk_compatibility_tests" "latest_jdk_tests"
"perftests")
+ dirs=("graalvm_tests" "jdk_compatibility_tests" "latest_jdk_tests")
for d in "${dirs[@]}" ; do
pushd "$d"
mvn -T10 --no-transfer-progress spotless:apply
diff --git a/ci/run_ci.sh b/ci/run_ci.sh
index 9d7fc9f4..52b8a87a 100755
--- a/ci/run_ci.sh
+++ b/ci/run_ci.sh
@@ -109,6 +109,9 @@ graalvm_test() {
integration_tests() {
cd "$ROOT"/java
mvn -T10 -B --no-transfer-progress clean install -DskipTests
+ echo "benchmark tests"
+ cd "$ROOT"/java/fury-benchmark
+ mvn -T10 -B --no-transfer-progress clean test -Pjmh
echo "Start latest jdk tests"
cd "$ROOT"/integration_tests/latest_jdk_tests
echo "latest_jdk_tests: JDK 21"
diff --git a/integration_tests/README.md b/integration_tests/README.md
index 2dc5eaad..f806f7a4 100644
--- a/integration_tests/README.md
+++ b/integration_tests/README.md
@@ -1,5 +1,6 @@
Integration tests for fury:
- [jdk_compatibility_tests](jdk_compatibility_tests): test fury compatibility
across multiple jdk versions.
-- [perftests](perftests): benchmark with protobuf/flatbuffers directly.
+- [latest_jdk_tests](latest_jdk_tests): test latest jdk.
+- [graalvm_tests](graalvm_tests): test graalvm native image support.
> Note that this integration_tests is not designed as a maven multi-module
> project on purpose, so we can introduce features of higher jdk version
> without breaking compilation for lower jdk, and add integration tests for
> other languages.
diff --git a/integration_tests/perftests/README.md
b/integration_tests/perftests/README.md
deleted file mode 100644
index 22e3ff87..00000000
--- a/integration_tests/perftests/README.md
+++ /dev/null
@@ -1,24 +0,0 @@
-Module sued to proto/flatbuffers benchmark without pollute core codebase and
serve as integration_tests to
-ensure java maven shade work and so on.
-# Protobuffers/Flatbuffers benchmark
-Generate code manually:
-```bash
-flatc -o src/main/java -j
src/main/java/org/apache/fury/integration_tests/state/bench.fbs
-protoc -I=src/main/java/org/apache/fury/integration_tests/state
--java_out=src/main/java/ bench.proto
-```
-proto code can be generated by maven plugin.
-Flatbuffers generated is short, just add generated files to repo directly.
-
-# Run tests
-This benchmark use [jmh](https://github.com/openjdk/jmh) as benchmark tool.
[jmh](https://github.com/openjdk/jmh) is
-licensed under GPL V2 with CLASSPATH exception, the usage can't be included in
apache source/binary release unless
-as an optional feature. So Fury make it as an optional dependency and you must
enable `jmh` profile to activate it.
-
-```bash
-cd java && mvn -T10 install -DskipTests -Dcheckstyle.skip -Dlicense.skip
-Dmaven.javadoc.skip && cd ../integration_tests/perftests
-# use `-Pjmh` to download jmh dependencies, we mark it as optional
-# since jmh is licenced under GPL V2 andn not comply with the license policy
of ASF.
-mvn -T10 compile -Pjmh
-#mvn exec:java
-Dexec.mainClass="org.apache.fury.integration_tests.UserTypeSerializeSuite"
-Dexec.args="-f 1 -wi 0 -i 1 -t 1 -w 1s -r 1s -rf csv"
-mvn exec:java
-Dexec.mainClass="org.apache.fury.integration_tests.UserTypeSerializeSuite"
-Pjmh
-```
\ No newline at end of file
diff --git a/integration_tests/perftests/pom.xml
b/integration_tests/perftests/pom.xml
deleted file mode 100644
index 9a958e82..00000000
--- a/integration_tests/perftests/pom.xml
+++ /dev/null
@@ -1,251 +0,0 @@
-<?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>
- <groupId>org.apache.fury</groupId>
- <artifactId>fury-parent</artifactId>
- <version>0.5.0-SNAPSHOT</version>
- <relativePath>../../java</relativePath>
- </parent>
- <modelVersion>4.0.0</modelVersion>
-
- <artifactId>perftests</artifactId>
- <properties>
- <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
- <jmh.version>1.33</jmh.version>
- <uberjar.name>benchmarks</uberjar.name>
- <protobuf.version>3.16.3</protobuf.version>
- <checkstyle.skip>true</checkstyle.skip>
- <maven.deploy.skip>true</maven.deploy.skip>
- <maven.javadoc.skip>true</maven.javadoc.skip>
- </properties>
-
- <repositories>
- <repository>
- <id>sonatype</id>
- <url>https://oss.sonatype.org/content/repositories/snapshots/</url>
- <releases>
- <enabled>false</enabled>
- </releases>
- <snapshots>
- <enabled>true</enabled>
- </snapshots>
- </repository>
- </repositories>
-
- <dependencies>
- <dependency>
- <groupId>com.google.protobuf</groupId>
- <artifactId>protobuf-java</artifactId>
- <version>${protobuf.version}</version>
- </dependency>
- <dependency>
- <groupId>com.google.flatbuffers</groupId>
- <artifactId>flatbuffers-java</artifactId>
- <version>2.0.3</version>
- </dependency>
- </dependencies>
-
- <profiles>
- <profile>
- <id>jmh</id>
- <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>
- </dependencies>
- </profile>
- </profiles>
-
- <build>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-compiler-plugin</artifactId>
- <version>3.10.1</version>
- <configuration>
- <source>1.8</source>
- <target>1.8</target>
- <annotationProcessorPaths>
- <path>
- <groupId>org.openjdk.jmh</groupId>
- <artifactId>jmh-generator-annprocess</artifactId>
- <version>${jmh.version}</version>
- </path>
- </annotationProcessorPaths>
- </configuration>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-shade-plugin</artifactId>
- <version>2.2</version>
- <executions>
- <execution>
- <phase>package</phase>
- <goals>
- <goal>shade</goal>
- </goals>
- <configuration>
- <finalName>${uberjar.name}</finalName>
- <transformers>
- <transformer
-
implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
- <mainClass>org.openjdk.jmh.Main</mainClass>
- </transformer>
- </transformers>
- <filters>
- <filter>
- <artifact>*:*</artifact>
- <excludes>
- <exclude>META-INF/*.SF</exclude>
- <exclude>META-INF/*.DSA</exclude>
- <exclude>META-INF/*.RSA</exclude>
- </excludes>
- </filter>
- </filters>
- </configuration>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-dependency-plugin</artifactId>
- <version>3.3.0</version>
- <executions>
- <execution>
- <id>build-classpath</id>
- <goals>
- <goal>build-classpath</goal>
- </goals>
- <configuration>
- <includeScope>runtime</includeScope>
- <outputProperty>depClasspath</outputProperty>
- </configuration>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>exec-maven-plugin</artifactId>
- <version>1.4.0</version>
- <executions>
- <execution>
- <goals>
- <goal>java</goal>
- </goals>
- </execution>
- </executions>
- <configuration>
- <mainClass>org.openjdk.jmh.Main</mainClass>
- <systemProperties>
- <systemProperty>
- <key>java.class.path</key>
-
<value>${project.build.outputDirectory}${path.separator}${depClasspath}</value>
- </systemProperty>
- </systemProperties>
- </configuration>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-deploy-plugin</artifactId>
- <version>2.7</version>
- <configuration>
- <skip>true</skip>
- </configuration>
- </plugin>
- <plugin>
- <groupId>com.diffplug.spotless</groupId>
- <artifactId>spotless-maven-plugin</artifactId>
- <version>2.5.0</version>
- <configuration>
- <java>
- <googleJavaFormat>
- <version>1.7</version>
- <style>GOOGLE</style>
- </googleJavaFormat>
- <excludes>
- <exclude>**/generated/*.java</exclude>
- </excludes>
- </java>
- </configuration>
- </plugin>
- <plugin>
- <groupId>org.xolstice.maven.plugins</groupId>
- <artifactId>protobuf-maven-plugin</artifactId>
- <version>0.5.1</version>
- <extensions>true</extensions>
- <configuration>
-
<protocArtifact>com.google.protobuf:protoc:${protobuf.version}:exe:${os.detected.classifier}</protocArtifact>
- <pluginId>grpc-java</pluginId>
-
<pluginArtifact>io.grpc:protoc-gen-grpc-java:1.47.0:exe:${os.detected.classifier}</pluginArtifact>
- <protoSourceRoot>${basedir}/src/main/proto</protoSourceRoot>
- </configuration>
- <executions>
- <execution>
- <id>protobuf-compile</id>
- <phase>generate-sources</phase>
- <goals>
- <goal>compile</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>build-helper-maven-plugin</artifactId>
- <version>3.0.0</version>
- <executions>
- <execution>
- <id>add-source</id>
- <phase>generate-sources</phase>
- <goals>
- <goal>add-source</goal>
- </goals>
- <configuration>
- <sources>
-
<source>${project.build.directory}/generated-sources/protobuf/java</source>
- </sources>
- </configuration>
- </execution>
- </executions>
- </plugin>
- </plugins>
- <extensions>
- <extension>
- <!--set os properties such as${os.detected.classifier} -->
- <groupId>kr.motd.maven</groupId>
- <artifactId>os-maven-plugin</artifactId>
- <version>1.5.0.Final</version>
- </extension>
- </extensions>
- </build>
-</project>
\ No newline at end of file
diff --git
a/integration_tests/perftests/src/main/java/org/apache/fury/integration_tests/UserTypeDeserializeSuite.java
b/integration_tests/perftests/src/main/java/org/apache/fury/integration_tests/UserTypeDeserializeSuite.java
deleted file mode 100644
index 4030d156..00000000
---
a/integration_tests/perftests/src/main/java/org/apache/fury/integration_tests/UserTypeDeserializeSuite.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * 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.fury.integration_tests;
-
-import java.io.IOException;
-import org.apache.fury.benchmark.state.ObjectType;
-import org.apache.fury.integration_tests.state.FlatBuffersState;
-import
org.apache.fury.integration_tests.state.FlatBuffersState.FlatBuffersUserTypeState;
-import org.apache.fury.integration_tests.state.ProtoBuffersState;
-import
org.apache.fury.integration_tests.state.ProtoBuffersState.ProtoBuffersUserTypeState;
-import org.apache.fury.util.Platform;
-import org.openjdk.jmh.Main;
-import org.openjdk.jmh.annotations.Benchmark;
-import org.openjdk.jmh.annotations.BenchmarkMode;
-import org.openjdk.jmh.annotations.CompilerControl;
-import org.openjdk.jmh.annotations.Mode;
-
-@BenchmarkMode(Mode.Throughput)
-@CompilerControl(value = CompilerControl.Mode.INLINE)
-public class UserTypeDeserializeSuite extends
org.apache.fury.benchmark.UserTypeDeserializeSuite {
-
- @Benchmark
- public Object protobuffers_deserialize(ProtoBuffersUserTypeState state) {
- if (state.objectType == ObjectType.SAMPLE) {
- return ProtoBuffersState.deserializeSample(state.data);
- } else {
- return ProtoBuffersState.deserializeMediaContent(state.data);
- }
- }
-
- @Benchmark
- public Object flatbuffers_deserialize(FlatBuffersUserTypeState state) {
- Platform.clearBuffer(state.deserializedData);
- if (state.objectType == ObjectType.SAMPLE) {
- return FlatBuffersState.deserializeSample(state.deserializedData);
- } else {
- return FlatBuffersState.deserializeMediaContent(state.deserializedData);
- }
- }
-
- public static void main(String[] args) throws IOException {
- if (args.length == 0) {
- String commandLine =
- "io.*.integration_tests.UserTypeDeserializeSuite.*buffers.* -f 0 -wi
0 -i 1 -t 1 -w 2s -r 1s -rf csv";
- System.out.println(commandLine);
- args = commandLine.split(" ");
- }
- Main.main(args);
- }
-}
diff --git
a/integration_tests/perftests/src/main/java/org/apache/fury/integration_tests/UserTypeSerializeSuite.java
b/integration_tests/perftests/src/main/java/org/apache/fury/integration_tests/UserTypeSerializeSuite.java
deleted file mode 100644
index ce28f64c..00000000
---
a/integration_tests/perftests/src/main/java/org/apache/fury/integration_tests/UserTypeSerializeSuite.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * 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.fury.integration_tests;
-
-import java.io.IOException;
-import org.apache.fury.benchmark.data.MediaContent;
-import org.apache.fury.benchmark.data.Sample;
-import org.apache.fury.benchmark.state.BufferType;
-import org.apache.fury.benchmark.state.ObjectType;
-import org.apache.fury.integration_tests.state.FlatBuffersState;
-import
org.apache.fury.integration_tests.state.FlatBuffersState.FlatBuffersUserTypeState;
-import org.apache.fury.integration_tests.state.ProtoBuffersState;
-import
org.apache.fury.integration_tests.state.ProtoBuffersState.ProtoBuffersUserTypeState;
-import org.apache.fury.util.Platform;
-import org.openjdk.jmh.annotations.Benchmark;
-import org.openjdk.jmh.annotations.BenchmarkMode;
-import org.openjdk.jmh.annotations.CompilerControl;
-import org.openjdk.jmh.annotations.Mode;
-
-@BenchmarkMode(Mode.Throughput)
-@CompilerControl(value = CompilerControl.Mode.INLINE)
-public class UserTypeSerializeSuite extends
org.apache.fury.benchmark.UserTypeSerializeSuite {
- @Benchmark
- public byte[] protobuffers_serialize(ProtoBuffersUserTypeState state) {
- if (state.objectType == ObjectType.SAMPLE) {
- return ProtoBuffersState.serializeSample((Sample) state.object);
- } else {
- return ProtoBuffersState.serializeMediaContent((MediaContent)
state.object);
- }
- }
-
- @Benchmark
- public Object flatbuffers_serialize(FlatBuffersUserTypeState state) {
- Platform.clearBuffer(state.directBuffer);
- if (state.objectType == ObjectType.SAMPLE) {
- return FlatBuffersState.serializeSample((Sample) state.object,
state.directBuffer);
- } else {
- return FlatBuffersState.serializeMediaContent((MediaContent)
state.object);
- }
- }
-
- public static void main(String[] args) throws IOException {
- {
- ProtoBuffersUserTypeState state = new ProtoBuffersUserTypeState();
- state.objectType = ObjectType.SAMPLE;
- state.bufferType = BufferType.array;
- state.setup();
- if (true) {
- throw new RuntimeException();
- }
- }
- {
- FlatBuffersUserTypeState state = new FlatBuffersUserTypeState();
- state.objectType = ObjectType.SAMPLE;
- state.bufferType = BufferType.array;
- state.setup();
- }
- // if (args.length == 0) {
- // String commandLine =
"io.*.integration_tests.UserTypeSerializeSuite.*buffers.* -f 0 -wi 0
- // -i 1 -t 1 -w 1s -r 1s -rf csv";
- // System.out.println(commandLine);
- // args = commandLine.split(" ");
- // }
- // Main.main(args);
- }
-}
diff --git a/java/fury-benchmark/README.md b/java/fury-benchmark/README.md
index bcedc2b6..8e205b68 100644
--- a/java/fury-benchmark/README.md
+++ b/java/fury-benchmark/README.md
@@ -8,18 +8,20 @@ Fury Java Benchmark contains benchmarks for:
- Fst
- Protostuff
- Jsonb
+- Protobuf
+- Flatbuffers
> Part of benchmark data is based on [Kryo
> benchmark](https://github.com/EsotericSoftware/kryo/tree/master/benchmarks).
> Kryo benchmark suite is based on [Kryo
> benchmark](https://github.com/EsotericSoftware/kryo/tree/master/benchmarks).
# How to run
-This benchmark use [jmh](https://github.com/openjdk/jmh) as benchmark tool.
[jmh](https://github.com/openjdk/jmh) is
+This benchmark use [jmh](https://github.com/openjdk/jmh) as benchmark tool.
[jmh](https://github.com/openjdk/jmh) is
licensed under GPL V2 with CLASSPATH exception, the usage can't be included in
apache source/binary release unless
as an optional feature. So Fury make it as an optional dependency and you must
enable `jmh` profile to activate it.
```bash
# Install fury
-cd ../java && mvn install -DskipTests && cd -
+cd ../java && mvn install -DskipTests -Dcheckstyle.skip -Dlicense.skip
-Dmaven.javadoc.skip && cd -
# build benchmark jar
# use `-Pjmh` to download jmh dependencies, we mark it as optional
@@ -30,6 +32,13 @@ nohup java -jar target/benchmarks.jar -f 5 -wi 3 -i 5 -t 1
-w 3s -r 5s -rf csv >
java -jar target/benchmarks.jar "io.*\.deserialize$" -f 1 -wi 1 -i 3 -t 1 -w
2s -r 2s -rf csv
```
+Generate Protobuf/Flatbuffers code manually:
+```bash
+flatc -o src/main/java -j
src/main/java/org/apache/fury/integration_tests/state/bench.fbs
+protoc -I=src/main/java/org/apache/fury/integration_tests/state
--java_out=src/main/java/ bench.proto
+```
+Protobuf code can be generated by maven plugin automatically. Flatbuffers
generated code is short, so we added generated files to repo directly.
+
# Maven run
```bash
diff --git a/java/fury-benchmark/pom.xml b/java/fury-benchmark/pom.xml
index a5327277..6b7c5e5c 100644
--- a/java/fury-benchmark/pom.xml
+++ b/java/fury-benchmark/pom.xml
@@ -139,6 +139,16 @@
<artifactId>smoothie-map</artifactId>
<version>2.0.2</version>
</dependency>
+ <dependency>
+ <groupId>com.google.protobuf</groupId>
+ <artifactId>protobuf-java</artifactId>
+ <version>${protobuf.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>com.google.flatbuffers</groupId>
+ <artifactId>flatbuffers-java</artifactId>
+ <version>2.0.3</version>
+ </dependency>
</dependencies>
<profiles>
@@ -257,6 +267,74 @@
<skip>true</skip>
</configuration>
</plugin>
+ <plugin>
+ <groupId>org.xolstice.maven.plugins</groupId>
+ <artifactId>protobuf-maven-plugin</artifactId>
+ <version>0.5.1</version>
+ <extensions>true</extensions>
+ <configuration>
+
<protocArtifact>com.google.protobuf:protoc:${protobuf.version}:exe:${os.detected.classifier}</protocArtifact>
+ <pluginId>grpc-java</pluginId>
+
<pluginArtifact>io.grpc:protoc-gen-grpc-java:1.47.0:exe:${os.detected.classifier}</pluginArtifact>
+ <protoSourceRoot>${basedir}/src/main/proto</protoSourceRoot>
+ </configuration>
+ <executions>
+ <execution>
+ <id>protobuf-compile</id>
+ <phase>generate-sources</phase>
+ <goals>
+ <goal>compile</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>build-helper-maven-plugin</artifactId>
+ <version>3.0.0</version>
+ <executions>
+ <execution>
+ <id>add-source</id>
+ <phase>generate-sources</phase>
+ <goals>
+ <goal>add-source</goal>
+ </goals>
+ <configuration>
+ <sources>
+
<source>${project.build.directory}/generated-sources/protobuf/java</source>
+ </sources>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>com.diffplug.spotless</groupId>
+ <artifactId>spotless-maven-plugin</artifactId>
+ <version>${maven-spotless-plugin.version}</version>
+ <configuration>
+ <java>
+ <includes>
+ <include>src/**/*.java</include>
+ </includes>
+ <excludes>
+ <exclude>**/generated/**/*.java</exclude>
+ </excludes>
+ <googleJavaFormat>
+ <!-- 1.19.1 support JDK21 -->
+ <version>1.19.1</version>
+ <style>GOOGLE</style>
+ </googleJavaFormat>
+ </java>
+ </configuration>
+ </plugin>
</plugins>
+ <extensions>
+ <extension>
+ <!--set os properties such as${os.detected.classifier} -->
+ <groupId>kr.motd.maven</groupId>
+ <artifactId>os-maven-plugin</artifactId>
+ <version>1.5.0.Final</version>
+ </extension>
+ </extensions>
</build>
</project>
diff --git
a/java/fury-benchmark/src/main/java/org/apache/fury/benchmark/UserTypeDeserializeSuite.java
b/java/fury-benchmark/src/main/java/org/apache/fury/benchmark/UserTypeDeserializeSuite.java
index 8a70abbb..b63b6104 100644
---
a/java/fury-benchmark/src/main/java/org/apache/fury/benchmark/UserTypeDeserializeSuite.java
+++
b/java/fury-benchmark/src/main/java/org/apache/fury/benchmark/UserTypeDeserializeSuite.java
@@ -20,13 +20,17 @@
package org.apache.fury.benchmark;
import java.io.IOException;
+import org.apache.fury.benchmark.state.FlatBuffersState;
import org.apache.fury.benchmark.state.FstState;
import org.apache.fury.benchmark.state.FuryState;
import org.apache.fury.benchmark.state.HessionState;
import org.apache.fury.benchmark.state.JDKState;
import org.apache.fury.benchmark.state.JsonbState;
import org.apache.fury.benchmark.state.KryoState;
+import org.apache.fury.benchmark.state.ObjectType;
+import org.apache.fury.benchmark.state.ProtoBuffersState;
import org.apache.fury.benchmark.state.ProtostuffState;
+import org.apache.fury.util.Platform;
import org.openjdk.jmh.Main;
import org.openjdk.jmh.annotations.Benchmark;
import org.openjdk.jmh.annotations.BenchmarkMode;
@@ -110,6 +114,25 @@ public class UserTypeDeserializeSuite {
return JsonbState.deserialize(bh, state);
}
+ @Benchmark
+ public Object
protobuffers_deserialize(ProtoBuffersState.ProtoBuffersUserTypeState state) {
+ if (state.objectType == ObjectType.SAMPLE) {
+ return ProtoBuffersState.deserializeSample(state.data);
+ } else {
+ return ProtoBuffersState.deserializeMediaContent(state.data);
+ }
+ }
+
+ @Benchmark
+ public Object
flatbuffers_deserialize(FlatBuffersState.FlatBuffersUserTypeState state) {
+ Platform.clearBuffer(state.deserializedData);
+ if (state.objectType == ObjectType.SAMPLE) {
+ return FlatBuffersState.deserializeSample(state.deserializedData);
+ } else {
+ return FlatBuffersState.deserializeMediaContent(state.deserializedData);
+ }
+ }
+
public static void main(String[] args) throws IOException {
if (args.length == 0) {
String commandLine =
diff --git
a/java/fury-benchmark/src/main/java/org/apache/fury/benchmark/UserTypeSerializeSuite.java
b/java/fury-benchmark/src/main/java/org/apache/fury/benchmark/UserTypeSerializeSuite.java
index a66c8aad..f376433a 100644
---
a/java/fury-benchmark/src/main/java/org/apache/fury/benchmark/UserTypeSerializeSuite.java
+++
b/java/fury-benchmark/src/main/java/org/apache/fury/benchmark/UserTypeSerializeSuite.java
@@ -21,13 +21,19 @@ package org.apache.fury.benchmark;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
+import org.apache.fury.benchmark.data.MediaContent;
+import org.apache.fury.benchmark.data.Sample;
+import org.apache.fury.benchmark.state.FlatBuffersState;
import org.apache.fury.benchmark.state.FstState;
import org.apache.fury.benchmark.state.FuryState;
import org.apache.fury.benchmark.state.HessionState;
import org.apache.fury.benchmark.state.JDKState;
import org.apache.fury.benchmark.state.JsonbState;
import org.apache.fury.benchmark.state.KryoState;
+import org.apache.fury.benchmark.state.ObjectType;
+import org.apache.fury.benchmark.state.ProtoBuffersState;
import org.apache.fury.benchmark.state.ProtostuffState;
+import org.apache.fury.util.Platform;
import org.openjdk.jmh.Main;
import org.openjdk.jmh.annotations.Benchmark;
import org.openjdk.jmh.annotations.BenchmarkMode;
@@ -116,6 +122,25 @@ public class UserTypeSerializeSuite {
return JsonbState.serialize(bh, state, state.object);
}
+ @Benchmark
+ public byte[]
protobuffers_serialize(ProtoBuffersState.ProtoBuffersUserTypeState state) {
+ if (state.objectType == ObjectType.SAMPLE) {
+ return ProtoBuffersState.serializeSample((Sample) state.object);
+ } else {
+ return ProtoBuffersState.serializeMediaContent((MediaContent)
state.object);
+ }
+ }
+
+ @Benchmark
+ public Object
flatbuffers_serialize(FlatBuffersState.FlatBuffersUserTypeState state) {
+ Platform.clearBuffer(state.directBuffer);
+ if (state.objectType == ObjectType.SAMPLE) {
+ return FlatBuffersState.serializeSample((Sample) state.object,
state.directBuffer);
+ } else {
+ return FlatBuffersState.serializeMediaContent((MediaContent)
state.object);
+ }
+ }
+
public static void main(String[] args) throws IOException {
if (args.length == 0) {
String commandLine =
diff --git
a/integration_tests/perftests/src/main/java/org/apache/fury/integration_tests/state/Example.java
b/java/fury-benchmark/src/main/java/org/apache/fury/benchmark/state/Example.java
similarity index 95%
rename from
integration_tests/perftests/src/main/java/org/apache/fury/integration_tests/state/Example.java
rename to
java/fury-benchmark/src/main/java/org/apache/fury/benchmark/state/Example.java
index e8f5691b..953fc2e0 100644
---
a/integration_tests/perftests/src/main/java/org/apache/fury/integration_tests/state/Example.java
+++
b/java/fury-benchmark/src/main/java/org/apache/fury/benchmark/state/Example.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package org.apache.fury.integration_tests.state;
+package org.apache.fury.benchmark.state;
import java.util.List;
import java.util.Map;
diff --git
a/integration_tests/perftests/src/main/java/org/apache/fury/integration_tests/state/FlatBuffersState.java
b/java/fury-benchmark/src/main/java/org/apache/fury/benchmark/state/FlatBuffersState.java
similarity index 95%
rename from
integration_tests/perftests/src/main/java/org/apache/fury/integration_tests/state/FlatBuffersState.java
rename to
java/fury-benchmark/src/main/java/org/apache/fury/benchmark/state/FlatBuffersState.java
index e253c583..58e658d4 100644
---
a/integration_tests/perftests/src/main/java/org/apache/fury/integration_tests/state/FlatBuffersState.java
+++
b/java/fury-benchmark/src/main/java/org/apache/fury/benchmark/state/FlatBuffersState.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package org.apache.fury.integration_tests.state;
+package org.apache.fury.benchmark.state;
import com.google.common.base.Preconditions;
import com.google.flatbuffers.FlatBufferBuilder;
@@ -31,17 +31,14 @@ import org.apache.fury.benchmark.data.Image;
import org.apache.fury.benchmark.data.Media;
import org.apache.fury.benchmark.data.MediaContent;
import org.apache.fury.benchmark.data.Sample;
-import org.apache.fury.benchmark.state.BenchmarkState;
-import org.apache.fury.benchmark.state.BufferType;
-import org.apache.fury.benchmark.state.ObjectType;
-import org.apache.fury.integration_tests.state.Example.Bar;
-import org.apache.fury.integration_tests.state.Example.Foo;
-import org.apache.fury.integration_tests.state.generated.FBSBar;
-import org.apache.fury.integration_tests.state.generated.FBSFoo;
-import org.apache.fury.integration_tests.state.generated.FBSImage;
-import org.apache.fury.integration_tests.state.generated.FBSMedia;
-import org.apache.fury.integration_tests.state.generated.FBSMediaContent;
-import org.apache.fury.integration_tests.state.generated.FBSSample;
+import org.apache.fury.benchmark.state.Example.Bar;
+import org.apache.fury.benchmark.state.Example.Foo;
+import org.apache.fury.benchmark.state.generated.FBSBar;
+import org.apache.fury.benchmark.state.generated.FBSFoo;
+import org.apache.fury.benchmark.state.generated.FBSImage;
+import org.apache.fury.benchmark.state.generated.FBSMedia;
+import org.apache.fury.benchmark.state.generated.FBSMediaContent;
+import org.apache.fury.benchmark.state.generated.FBSSample;
import org.apache.fury.util.Platform;
import org.checkerframework.checker.nullness.qual.Nullable;
import org.openjdk.jmh.annotations.Level;
diff --git
a/integration_tests/perftests/src/main/java/org/apache/fury/integration_tests/state/ProtoBuffersState.java
b/java/fury-benchmark/src/main/java/org/apache/fury/benchmark/state/ProtoBuffersState.java
similarity index 97%
rename from
integration_tests/perftests/src/main/java/org/apache/fury/integration_tests/state/ProtoBuffersState.java
rename to
java/fury-benchmark/src/main/java/org/apache/fury/benchmark/state/ProtoBuffersState.java
index a392f38b..2ee83606 100644
---
a/integration_tests/perftests/src/main/java/org/apache/fury/integration_tests/state/ProtoBuffersState.java
+++
b/java/fury-benchmark/src/main/java/org/apache/fury/benchmark/state/ProtoBuffersState.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package org.apache.fury.integration_tests.state;
+package org.apache.fury.benchmark.state;
import com.google.common.base.Preconditions;
import com.google.protobuf.InvalidProtocolBufferException;
@@ -28,11 +28,8 @@ import org.apache.fury.benchmark.data.Image;
import org.apache.fury.benchmark.data.Media;
import org.apache.fury.benchmark.data.MediaContent;
import org.apache.fury.benchmark.data.Sample;
-import org.apache.fury.benchmark.state.BenchmarkState;
-import org.apache.fury.benchmark.state.BufferType;
-import org.apache.fury.benchmark.state.ObjectType;
-import org.apache.fury.integration_tests.state.Example.Bar;
-import org.apache.fury.integration_tests.state.Example.Foo;
+import org.apache.fury.benchmark.state.Example.Bar;
+import org.apache.fury.benchmark.state.Example.Foo;
import org.apache.fury.integration_tests.state.generated.ProtoMessage;
import org.checkerframework.checker.nullness.qual.Nullable;
import org.openjdk.jmh.annotations.CompilerControl;
diff --git
a/integration_tests/perftests/src/main/java/org/apache/fury/integration_tests/state/bench.fbs
b/java/fury-benchmark/src/main/java/org/apache/fury/benchmark/state/bench.fbs
similarity index 100%
rename from
integration_tests/perftests/src/main/java/org/apache/fury/integration_tests/state/bench.fbs
rename to
java/fury-benchmark/src/main/java/org/apache/fury/benchmark/state/bench.fbs
diff --git
a/integration_tests/perftests/src/main/java/org/apache/fury/integration_tests/state/generated/FBSBar.java
b/java/fury-benchmark/src/main/java/org/apache/fury/benchmark/state/generated/FBSBar.java
similarity index 77%
rename from
integration_tests/perftests/src/main/java/org/apache/fury/integration_tests/state/generated/FBSBar.java
rename to
java/fury-benchmark/src/main/java/org/apache/fury/benchmark/state/generated/FBSBar.java
index 7705c270..bf787625 100644
---
a/integration_tests/perftests/src/main/java/org/apache/fury/integration_tests/state/generated/FBSBar.java
+++
b/java/fury-benchmark/src/main/java/org/apache/fury/benchmark/state/generated/FBSBar.java
@@ -1,10 +1,10 @@
// automatically generated by the FlatBuffers compiler, do not modify
-package org.apache.fury.integration_tests.state.generated;
+package org.apache.fury.benchmark.state.generated;
import java.nio.*;
import java.lang.*;
-import java.util.*;
+
import com.google.flatbuffers.*;
@SuppressWarnings("unused")
@@ -15,27 +15,27 @@ public final class FBSBar extends Table {
public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); }
public FBSBar __assign(int _i, ByteBuffer _bb) { __init(_i, _bb); return
this; }
- public org.apache.fury.integration_tests.state.generated.FBSFoo f1() {
return f1(new org.apache.fury.integration_tests.state.generated.FBSFoo()); }
- public org.apache.fury.integration_tests.state.generated.FBSFoo
f1(org.apache.fury.integration_tests.state.generated.FBSFoo obj) { int o =
__offset(4); return o != 0 ? obj.__assign(__indirect(o + bb_pos), bb) : null; }
+ public FBSFoo f1() { return f1(new FBSFoo()); }
+ public FBSFoo f1(FBSFoo obj) { int o = __offset(4); return o != 0 ?
obj.__assign(__indirect(o + bb_pos), bb) : null; }
public String f2() { int o = __offset(6); return o != 0 ? __string(o +
bb_pos) : null; }
public ByteBuffer f2AsByteBuffer() { return __vector_as_bytebuffer(6, 1); }
public ByteBuffer f2InByteBuffer(ByteBuffer _bb) { return
__vector_in_bytebuffer(_bb, 6, 1); }
- public org.apache.fury.integration_tests.state.generated.FBSFoo f3(int j) {
return f3(new org.apache.fury.integration_tests.state.generated.FBSFoo(), j); }
- public org.apache.fury.integration_tests.state.generated.FBSFoo
f3(org.apache.fury.integration_tests.state.generated.FBSFoo obj, int j) { int o
= __offset(8); return o != 0 ? obj.__assign(__indirect(__vector(o) + j * 4),
bb) : null; }
+ public FBSFoo f3(int j) { return f3(new FBSFoo(), j); }
+ public FBSFoo f3(FBSFoo obj, int j) { int o = __offset(8); return o != 0 ?
obj.__assign(__indirect(__vector(o) + j * 4), bb) : null; }
public int f3Length() { int o = __offset(8); return o != 0 ? __vector_len(o)
: 0; }
- public org.apache.fury.integration_tests.state.generated.FBSFoo.Vector
f3Vector() { return f3Vector(new
org.apache.fury.integration_tests.state.generated.FBSFoo.Vector()); }
- public org.apache.fury.integration_tests.state.generated.FBSFoo.Vector
f3Vector(org.apache.fury.integration_tests.state.generated.FBSFoo.Vector obj) {
int o = __offset(8); return o != 0 ? obj.__assign(__vector(o), 4, bb) : null; }
+ public FBSFoo.Vector f3Vector() { return f3Vector(new FBSFoo.Vector()); }
+ public FBSFoo.Vector f3Vector(FBSFoo.Vector obj) { int o = __offset(8);
return o != 0 ? obj.__assign(__vector(o), 4, bb) : null; }
public int f4Key(int j) { int o = __offset(10); return o != 0 ?
bb.getInt(__vector(o) + j * 4) : 0; }
public int f4KeyLength() { int o = __offset(10); return o != 0 ?
__vector_len(o) : 0; }
public IntVector f4KeyVector() { return f4KeyVector(new IntVector()); }
public IntVector f4KeyVector(IntVector obj) { int o = __offset(10); return o
!= 0 ? obj.__assign(__vector(o), bb) : null; }
public ByteBuffer f4KeyAsByteBuffer() { return __vector_as_bytebuffer(10,
4); }
public ByteBuffer f4KeyInByteBuffer(ByteBuffer _bb) { return
__vector_in_bytebuffer(_bb, 10, 4); }
- public org.apache.fury.integration_tests.state.generated.FBSFoo f4Value(int
j) { return f4Value(new
org.apache.fury.integration_tests.state.generated.FBSFoo(), j); }
- public org.apache.fury.integration_tests.state.generated.FBSFoo
f4Value(org.apache.fury.integration_tests.state.generated.FBSFoo obj, int j) {
int o = __offset(12); return o != 0 ? obj.__assign(__indirect(__vector(o) + j *
4), bb) : null; }
+ public FBSFoo f4Value(int j) { return f4Value(new FBSFoo(), j); }
+ public FBSFoo f4Value(FBSFoo obj, int j) { int o = __offset(12); return o !=
0 ? obj.__assign(__indirect(__vector(o) + j * 4), bb) : null; }
public int f4ValueLength() { int o = __offset(12); return o != 0 ?
__vector_len(o) : 0; }
- public org.apache.fury.integration_tests.state.generated.FBSFoo.Vector
f4ValueVector() { return f4ValueVector(new
org.apache.fury.integration_tests.state.generated.FBSFoo.Vector()); }
- public org.apache.fury.integration_tests.state.generated.FBSFoo.Vector
f4ValueVector(org.apache.fury.integration_tests.state.generated.FBSFoo.Vector
obj) { int o = __offset(12); return o != 0 ? obj.__assign(__vector(o), 4, bb) :
null; }
+ public FBSFoo.Vector f4ValueVector() { return f4ValueVector(new
FBSFoo.Vector()); }
+ public FBSFoo.Vector f4ValueVector(FBSFoo.Vector obj) { int o =
__offset(12); return o != 0 ? obj.__assign(__vector(o), 4, bb) : null; }
public int f5() { int o = __offset(14); return o != 0 ? bb.getInt(o +
bb_pos) : 0; }
public long f6() { int o = __offset(16); return o != 0 ? bb.getLong(o +
bb_pos) : 0L; }
public float f7() { int o = __offset(18); return o != 0 ? bb.getFloat(o +
bb_pos) : 0.0f; }
diff --git
a/integration_tests/perftests/src/main/java/org/apache/fury/integration_tests/state/generated/FBSFoo.java
b/java/fury-benchmark/src/main/java/org/apache/fury/benchmark/state/generated/FBSFoo.java
similarity index 98%
rename from
integration_tests/perftests/src/main/java/org/apache/fury/integration_tests/state/generated/FBSFoo.java
rename to
java/fury-benchmark/src/main/java/org/apache/fury/benchmark/state/generated/FBSFoo.java
index b56f7b49..73407a48 100644
---
a/integration_tests/perftests/src/main/java/org/apache/fury/integration_tests/state/generated/FBSFoo.java
+++
b/java/fury-benchmark/src/main/java/org/apache/fury/benchmark/state/generated/FBSFoo.java
@@ -1,10 +1,10 @@
// automatically generated by the FlatBuffers compiler, do not modify
-package org.apache.fury.integration_tests.state.generated;
+package org.apache.fury.benchmark.state.generated;
import java.nio.*;
import java.lang.*;
-import java.util.*;
+
import com.google.flatbuffers.*;
@SuppressWarnings("unused")
diff --git
a/integration_tests/perftests/src/main/java/org/apache/fury/integration_tests/state/generated/FBSImage.java
b/java/fury-benchmark/src/main/java/org/apache/fury/benchmark/state/generated/FBSImage.java
similarity index 87%
rename from
integration_tests/perftests/src/main/java/org/apache/fury/integration_tests/state/generated/FBSImage.java
rename to
java/fury-benchmark/src/main/java/org/apache/fury/benchmark/state/generated/FBSImage.java
index bf0322fe..1fb090d5 100644
---
a/integration_tests/perftests/src/main/java/org/apache/fury/integration_tests/state/generated/FBSImage.java
+++
b/java/fury-benchmark/src/main/java/org/apache/fury/benchmark/state/generated/FBSImage.java
@@ -1,10 +1,10 @@
// automatically generated by the FlatBuffers compiler, do not modify
-package org.apache.fury.integration_tests.state.generated;
+package org.apache.fury.benchmark.state.generated;
import java.nio.*;
import java.lang.*;
-import java.util.*;
+
import com.google.flatbuffers.*;
@SuppressWarnings("unused")
@@ -24,8 +24,8 @@ public final class FBSImage extends Table {
public int width() { int o = __offset(8); return o != 0 ? bb.getInt(o +
bb_pos) : 0; }
public int height() { int o = __offset(10); return o != 0 ? bb.getInt(o +
bb_pos) : 0; }
public byte size() { int o = __offset(12); return o != 0 ? bb.get(o +
bb_pos) : 0; }
- public org.apache.fury.integration_tests.state.generated.FBSMedia media() {
return media(new org.apache.fury.integration_tests.state.generated.FBSMedia());
}
- public org.apache.fury.integration_tests.state.generated.FBSMedia
media(org.apache.fury.integration_tests.state.generated.FBSMedia obj) { int o =
__offset(14); return o != 0 ? obj.__assign(__indirect(o + bb_pos), bb) : null; }
+ public FBSMedia media() { return media(new FBSMedia()); }
+ public FBSMedia media(FBSMedia obj) { int o = __offset(14); return o != 0 ?
obj.__assign(__indirect(o + bb_pos), bb) : null; }
public static int createFBSImage(FlatBufferBuilder builder,
int uriOffset,
diff --git
a/integration_tests/perftests/src/main/java/org/apache/fury/integration_tests/state/generated/FBSMedia.java
b/java/fury-benchmark/src/main/java/org/apache/fury/benchmark/state/generated/FBSMedia.java
similarity index 98%
rename from
integration_tests/perftests/src/main/java/org/apache/fury/integration_tests/state/generated/FBSMedia.java
rename to
java/fury-benchmark/src/main/java/org/apache/fury/benchmark/state/generated/FBSMedia.java
index 9caa4cb2..1670001e 100644
---
a/integration_tests/perftests/src/main/java/org/apache/fury/integration_tests/state/generated/FBSMedia.java
+++
b/java/fury-benchmark/src/main/java/org/apache/fury/benchmark/state/generated/FBSMedia.java
@@ -1,10 +1,10 @@
// automatically generated by the FlatBuffers compiler, do not modify
-package org.apache.fury.integration_tests.state.generated;
+package org.apache.fury.benchmark.state.generated;
import java.nio.*;
import java.lang.*;
-import java.util.*;
+
import com.google.flatbuffers.*;
@SuppressWarnings("unused")
diff --git
a/integration_tests/perftests/src/main/java/org/apache/fury/integration_tests/state/generated/FBSMediaContent.java
b/java/fury-benchmark/src/main/java/org/apache/fury/benchmark/state/generated/FBSMediaContent.java
similarity index 64%
rename from
integration_tests/perftests/src/main/java/org/apache/fury/integration_tests/state/generated/FBSMediaContent.java
rename to
java/fury-benchmark/src/main/java/org/apache/fury/benchmark/state/generated/FBSMediaContent.java
index 2d58dcab..f5b728a6 100644
---
a/integration_tests/perftests/src/main/java/org/apache/fury/integration_tests/state/generated/FBSMediaContent.java
+++
b/java/fury-benchmark/src/main/java/org/apache/fury/benchmark/state/generated/FBSMediaContent.java
@@ -1,10 +1,10 @@
// automatically generated by the FlatBuffers compiler, do not modify
-package org.apache.fury.integration_tests.state.generated;
+package org.apache.fury.benchmark.state.generated;
import java.nio.*;
import java.lang.*;
-import java.util.*;
+
import com.google.flatbuffers.*;
@SuppressWarnings("unused")
@@ -15,13 +15,13 @@ public final class FBSMediaContent extends Table {
public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); }
public FBSMediaContent __assign(int _i, ByteBuffer _bb) { __init(_i, _bb);
return this; }
- public org.apache.fury.integration_tests.state.generated.FBSMedia media() {
return media(new org.apache.fury.integration_tests.state.generated.FBSMedia());
}
- public org.apache.fury.integration_tests.state.generated.FBSMedia
media(org.apache.fury.integration_tests.state.generated.FBSMedia obj) { int o =
__offset(4); return o != 0 ? obj.__assign(__indirect(o + bb_pos), bb) : null; }
- public org.apache.fury.integration_tests.state.generated.FBSImage images(int
j) { return images(new
org.apache.fury.integration_tests.state.generated.FBSImage(), j); }
- public org.apache.fury.integration_tests.state.generated.FBSImage
images(org.apache.fury.integration_tests.state.generated.FBSImage obj, int j) {
int o = __offset(6); return o != 0 ? obj.__assign(__indirect(__vector(o) + j *
4), bb) : null; }
+ public FBSMedia media() { return media(new FBSMedia()); }
+ public FBSMedia media(FBSMedia obj) { int o = __offset(4); return o != 0 ?
obj.__assign(__indirect(o + bb_pos), bb) : null; }
+ public FBSImage images(int j) { return images(new FBSImage(), j); }
+ public FBSImage images(FBSImage obj, int j) { int o = __offset(6); return o
!= 0 ? obj.__assign(__indirect(__vector(o) + j * 4), bb) : null; }
public int imagesLength() { int o = __offset(6); return o != 0 ?
__vector_len(o) : 0; }
- public org.apache.fury.integration_tests.state.generated.FBSImage.Vector
imagesVector() { return imagesVector(new
org.apache.fury.integration_tests.state.generated.FBSImage.Vector()); }
- public org.apache.fury.integration_tests.state.generated.FBSImage.Vector
imagesVector(org.apache.fury.integration_tests.state.generated.FBSImage.Vector
obj) { int o = __offset(6); return o != 0 ? obj.__assign(__vector(o), 4, bb) :
null; }
+ public FBSImage.Vector imagesVector() { return imagesVector(new
FBSImage.Vector()); }
+ public FBSImage.Vector imagesVector(FBSImage.Vector obj) { int o =
__offset(6); return o != 0 ? obj.__assign(__vector(o), 4, bb) : null; }
public static int createFBSMediaContent(FlatBufferBuilder builder,
int mediaOffset,
diff --git
a/integration_tests/perftests/src/main/java/org/apache/fury/integration_tests/state/generated/FBSPlayer.java
b/java/fury-benchmark/src/main/java/org/apache/fury/benchmark/state/generated/FBSPlayer.java
similarity index 84%
rename from
integration_tests/perftests/src/main/java/org/apache/fury/integration_tests/state/generated/FBSPlayer.java
rename to
java/fury-benchmark/src/main/java/org/apache/fury/benchmark/state/generated/FBSPlayer.java
index 54ea822a..a082eabb 100644
---
a/integration_tests/perftests/src/main/java/org/apache/fury/integration_tests/state/generated/FBSPlayer.java
+++
b/java/fury-benchmark/src/main/java/org/apache/fury/benchmark/state/generated/FBSPlayer.java
@@ -1,6 +1,6 @@
// automatically generated by the FlatBuffers compiler, do not modify
-package org.apache.fury.integration_tests.state.generated;
+package org.apache.fury.benchmark.state.generated;
public final class FBSPlayer {
private FBSPlayer() { }
diff --git
a/integration_tests/perftests/src/main/java/org/apache/fury/integration_tests/state/generated/FBSSample.java
b/java/fury-benchmark/src/main/java/org/apache/fury/benchmark/state/generated/FBSSample.java
similarity index 99%
rename from
integration_tests/perftests/src/main/java/org/apache/fury/integration_tests/state/generated/FBSSample.java
rename to
java/fury-benchmark/src/main/java/org/apache/fury/benchmark/state/generated/FBSSample.java
index d8e4c6ef..7db81c29 100644
---
a/integration_tests/perftests/src/main/java/org/apache/fury/integration_tests/state/generated/FBSSample.java
+++
b/java/fury-benchmark/src/main/java/org/apache/fury/benchmark/state/generated/FBSSample.java
@@ -1,10 +1,10 @@
// automatically generated by the FlatBuffers compiler, do not modify
-package org.apache.fury.integration_tests.state.generated;
+package org.apache.fury.benchmark.state.generated;
import java.nio.*;
import java.lang.*;
-import java.util.*;
+
import com.google.flatbuffers.*;
@SuppressWarnings("unused")
diff --git
a/integration_tests/perftests/src/main/java/org/apache/fury/integration_tests/state/generated/FBSSize.java
b/java/fury-benchmark/src/main/java/org/apache/fury/benchmark/state/generated/FBSSize.java
similarity index 84%
rename from
integration_tests/perftests/src/main/java/org/apache/fury/integration_tests/state/generated/FBSSize.java
rename to
java/fury-benchmark/src/main/java/org/apache/fury/benchmark/state/generated/FBSSize.java
index a4f907d4..96dd54bd 100644
---
a/integration_tests/perftests/src/main/java/org/apache/fury/integration_tests/state/generated/FBSSize.java
+++
b/java/fury-benchmark/src/main/java/org/apache/fury/benchmark/state/generated/FBSSize.java
@@ -1,6 +1,6 @@
// automatically generated by the FlatBuffers compiler, do not modify
-package org.apache.fury.integration_tests.state.generated;
+package org.apache.fury.benchmark.state.generated;
public final class FBSSize {
private FBSSize() { }
diff --git a/integration_tests/perftests/src/main/proto/bench.proto
b/java/fury-benchmark/src/main/proto/bench.proto
similarity index 100%
rename from integration_tests/perftests/src/main/proto/bench.proto
rename to java/fury-benchmark/src/main/proto/bench.proto
diff --git
a/integration_tests/perftests/src/test/java/org/apache/fury/integration_tests/state/FlatBuffersStateTest.java
b/java/fury-benchmark/src/test/java/org/apache/fury/benchmark/state/FlatBuffersStateTest.java
similarity index 83%
rename from
integration_tests/perftests/src/test/java/org/apache/fury/integration_tests/state/FlatBuffersStateTest.java
rename to
java/fury-benchmark/src/test/java/org/apache/fury/benchmark/state/FlatBuffersStateTest.java
index 7846abb2..d3c4388e 100644
---
a/integration_tests/perftests/src/test/java/org/apache/fury/integration_tests/state/FlatBuffersStateTest.java
+++
b/java/fury-benchmark/src/test/java/org/apache/fury/benchmark/state/FlatBuffersStateTest.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package org.apache.fury.integration_tests.state;
+package org.apache.fury.benchmark.state;
import java.nio.ByteBuffer;
import org.apache.fury.benchmark.data.MediaContent;
@@ -41,4 +41,13 @@ public class FlatBuffersStateTest {
MediaContent mediaContent =
FlatBuffersState.deserializeMediaContent(ByteBuffer.wrap(data));
Assert.assertEquals(mediaContent, object);
}
+
+ @Test
+ public void testFlatBuffersUserTypeState() {
+ FlatBuffersState.FlatBuffersUserTypeState state =
+ new FlatBuffersState.FlatBuffersUserTypeState();
+ state.objectType = ObjectType.SAMPLE;
+ state.bufferType = BufferType.array;
+ state.setup();
+ }
}
diff --git
a/integration_tests/perftests/src/test/java/org/apache/fury/integration_tests/state/ProtoBuffersStateTest.java
b/java/fury-benchmark/src/test/java/org/apache/fury/benchmark/state/ProtoBuffersStateTest.java
similarity index 81%
rename from
integration_tests/perftests/src/test/java/org/apache/fury/integration_tests/state/ProtoBuffersStateTest.java
rename to
java/fury-benchmark/src/test/java/org/apache/fury/benchmark/state/ProtoBuffersStateTest.java
index 41ee40f9..f3998cd5 100644
---
a/integration_tests/perftests/src/test/java/org/apache/fury/integration_tests/state/ProtoBuffersStateTest.java
+++
b/java/fury-benchmark/src/test/java/org/apache/fury/benchmark/state/ProtoBuffersStateTest.java
@@ -17,10 +17,11 @@
* under the License.
*/
-package org.apache.fury.integration_tests.state;
+package org.apache.fury.benchmark.state;
import org.apache.fury.benchmark.data.MediaContent;
import org.apache.fury.benchmark.data.Sample;
+import
org.apache.fury.benchmark.state.ProtoBuffersState.ProtoBuffersUserTypeState;
import org.testng.Assert;
import org.testng.annotations.Test;
@@ -40,4 +41,12 @@ public class ProtoBuffersStateTest {
MediaContent mediaContent =
ProtoBuffersState.deserializeMediaContent(data);
Assert.assertEquals(mediaContent, object);
}
+
+ @Test
+ public void testProtoBuffersUserTypeState() {
+ ProtoBuffersUserTypeState state = new ProtoBuffersUserTypeState();
+ state.objectType = ObjectType.SAMPLE;
+ state.bufferType = BufferType.array;
+ state.setup();
+ }
}
diff --git a/licenserc.toml b/licenserc.toml
index 9fe1a849..1ef360ce 100644
--- a/licenserc.toml
+++ b/licenserc.toml
@@ -23,7 +23,7 @@ excludes = [
"go.sum",
# Generated
-
"integration_tests/perftests/src/main/java/org/apache/fury/integration_tests/state/generated/**",
+
"java/fury-benchmark/src/main/java/org/apache/fury/benchmark/state/generated/**",
# Derived
"ci/format.sh",
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]