Skip to content

Commit 8df0840

Browse files
committed
Add skeletal set of things
1 parent 5a54e1b commit 8df0840

File tree

3 files changed

+164
-2
lines changed

3 files changed

+164
-2
lines changed

.gitignore

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
# use glob syntax.
2+
syntax: glob
3+
*.class
4+
*~
5+
*.bak
6+
*.off
7+
*.old
8+
.DS_Store
9+
jmh.out
10+
11+
# building
12+
target
13+
14+
# Eclipse
15+
.classpath
16+
.project
17+
.settings
18+
19+
# IDEA
20+
.idea
21+
*.iml
22+
*.ipr
23+
*.iws
24+
/target/

README.md

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,12 @@
1-
# json-performance-benchmarks
2-
Collection of jmh-based benchmarks that compare performance Java JSON libraries for reading, writing
1+
# Overview
2+
3+
This project contains a set of performance micro-benchmarks, based on excellent
4+
[JMH](http://openjdk.java.net/projects/code-tools/jmh/) package.
5+
Benchmarks exercise JSON reading and/or writing performance of a few popular Java JSON libraries:
6+
7+
* [https://github.com/FasterXML/jackson](Jackson)
8+
* [https://github.com/google/gson](GSON)
9+
10+
# Status
11+
12+
Somewhat experimental. But has been used with success in optimizing Jackson 2.4 release!

pom.xml

Lines changed: 128 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,128 @@
1+
<project xmlns="http://maven.apache.org/POM/4.0.0">
2+
<modelVersion>4.0.0</modelVersion>
3+
4+
<parent>
5+
<groupId>com.fasterxml</groupId>
6+
<artifactId>oss-parent</artifactId>
7+
<version>20</version>
8+
</parent>
9+
10+
<artifactId>java-json-performance</artifactId>
11+
<version>0.5.0-SNAPSHOT</version>
12+
<name>Java JSON Performance Benchmarks</name>
13+
<packaging>jar</packaging>
14+
15+
<description>A suite of JMH-based micro-benchmarks used for Java JSON library performance comparison
16+
</description>
17+
18+
<properties>
19+
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
20+
21+
<version.jackson.annotations>2.6.0</version.jackson.annotations>
22+
<version.jackson>2.6.0</version.jackson>
23+
<version.gson>2.3.1</version.gson>
24+
25+
<version.jmh>1.9.3</version.jmh>
26+
</properties>
27+
28+
<dependencies>
29+
<dependency>
30+
<groupId>org.openjdk.jmh</groupId>
31+
<artifactId>jmh-core</artifactId>
32+
<version>${version.jmh}</version>
33+
</dependency>
34+
35+
<!-- As per [http://stackoverflow.com/questions/23891586/jmh-not-working-in-eclipse-as-maven-project-no-benchmarks-to-run]
36+
we need another dep
37+
-->
38+
<dependency>
39+
<groupId>org.openjdk.jmh</groupId>
40+
<artifactId>jmh-generator-annprocess</artifactId>
41+
<version>${version.jmh}</version>
42+
<!-- the processor artifact is required only during compilation and
43+
does not need to be transitive, hence provided scope
44+
-->
45+
<scope>provided</scope>
46+
</dependency>
47+
48+
<!-- First, Jackson deps -->
49+
50+
<dependency>
51+
<groupId>com.fasterxml.jackson.core</groupId>
52+
<artifactId>jackson-annotations</artifactId>
53+
<version>${version.jackson.annotations}</version>
54+
</dependency>
55+
56+
<dependency>
57+
<groupId>com.fasterxml.jackson.core</groupId>
58+
<artifactId>jackson-core</artifactId>
59+
<version>${version.jackson}</version>
60+
</dependency>
61+
62+
<dependency>
63+
<groupId>com.fasterxml.jackson.core</groupId>
64+
<artifactId>jackson-databind</artifactId>
65+
<version>${version.jackson}</version>
66+
</dependency>
67+
68+
<!-- may want to test Afterburner-enabled Jackson? -->
69+
<dependency>
70+
<groupId>com.fasterxml.jackson.module</groupId>
71+
<artifactId>jackson-module-afterburner</artifactId>
72+
<version>${version.jackson}</version>
73+
</dependency>
74+
<dependency>
75+
<groupId>com.fasterxml.jackson.jr</groupId>
76+
<artifactId>jackson-jr-objects</artifactId>
77+
<version>${version.jackson}</version>
78+
</dependency>
79+
80+
<!-- and GSON -->
81+
82+
<dependency>
83+
<groupId>com.google.code.gson</groupId>
84+
<artifactId>gson</artifactId>
85+
<version>2.3.1</version>
86+
</dependency>
87+
88+
</dependencies>
89+
90+
<build>
91+
<plugins>
92+
<plugin>
93+
<groupId>org.apache.maven.plugins</groupId>
94+
<artifactId>maven-compiler-plugin</artifactId>
95+
<version>3.1</version>
96+
<configuration>
97+
<source>1.7</source>
98+
<target>1.7</target>
99+
<showDeprecation>true</showDeprecation>
100+
<showWarnings>true</showWarnings>
101+
<optimize>true</optimize>
102+
</configuration>
103+
</plugin>
104+
<plugin>
105+
<groupId>org.apache.maven.plugins</groupId>
106+
<artifactId>maven-shade-plugin</artifactId>
107+
<version>2.0</version>
108+
<executions>
109+
<execution>
110+
<phase>package</phase>
111+
<goals>
112+
<goal>shade</goal>
113+
</goals>
114+
<configuration>
115+
<finalName>microbenchmarks</finalName>
116+
<transformers>
117+
<transformer
118+
implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
119+
<mainClass>org.openjdk.jmh.Main</mainClass>
120+
</transformer>
121+
</transformers>
122+
</configuration>
123+
</execution>
124+
</executions>
125+
</plugin>
126+
</plugins>
127+
</build>
128+
</project>

0 commit comments

Comments
 (0)