Skip to content
This repository was archived by the owner on Jan 26, 2026. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
54 commits
Select commit Hold shift + click to select a range
8964268
Update .gitignore
expanded-for-real Jun 1, 2025
434d9d5
initial commit for imprint-java
expanded-for-real Jun 1, 2025
aeefa9e
Add GitHub Actions CI workflow for automated testing
Jun 2, 2025
606cd74
Update GitHub Actions workflow to use upload-artifact@v4
Jun 2, 2025
8315188
Add Gradle wrapper validation to CI workflow
Jun 2, 2025
cab4575
Fix gitignore to include gradle-wrapper.jar for CI
Jun 2, 2025
7e0f8ef
Update wrapper validation action to v3
Jun 2, 2025
6b5bd6b
Fix Javadoc syntax errors and disable strict Javadoc checking
Jun 2, 2025
8e3e1ba
Add JMH benchmark .bat and .sh for full suite benchmarking and perfor…
Jun 2, 2025
ddf2b64
fix map serialization error in benchmark test and streamline ci file …
Jun 2, 2025
8a210f3
Add execute permissions back for gradlew in CI
Jun 2, 2025
c85027d
Add some more string based performance benchmarks and try to make str…
Jun 2, 2025
853486c
second main commit to address initial commits
expanded-for-real Jun 3, 2025
f9755d2
additional cleanup to address concerns in https://github.com/imprint-…
Jun 3, 2025
1350cb6
minor style fixes
Jun 3, 2025
996780e
minor style fixes again
Jun 3, 2025
4f6f178
minor style fixes on benchmark tests and supress unused
Jun 3, 2025
4827a4e
minor reordering
Jun 4, 2025
876be16
Full comprehensive comparison tests with a lot of other libraries + s…
Jun 5, 2025
0341d5d
replace deprecated gradle methods with latest
Jun 5, 2025
8e18516
Lazy load of directory and header data
Jun 5, 2025
c3cf9a2
Merge Comparisons into dev branch (#8)
expanded-for-real Jun 5, 2025
b53479a
minor cleanup
Jun 5, 2025
1900cd3
minor cleanup
Jun 5, 2025
08b2ad2
minor cleanup
Jun 5, 2025
864eaf0
Actually fixes offsets and read Byte Values for Maps and Arrays even …
Jun 5, 2025
36b3422
change CI file to use JMH plugin to respect iteration and warmup valu…
Jun 5, 2025
b24555a
ok plugin didn't work apparently so reverting that and just reducing …
Jun 5, 2025
9656f0e
trying to update github ci to make jmh actually work correctly
Jun 5, 2025
f86eb88
lazy directory deserialization
Jun 6, 2025
be75ecb
remove extra comments
Jun 6, 2025
b147d4e
remove extra comments
Jun 6, 2025
96893e6
Add merge and project APIs; optimize/simplify ImprintBuffers with Tre…
Jun 7, 2025
90f8c85
Optimize serialization path and remove ImprintWriter code in favor of…
Jun 7, 2025
e6e1ecd
Allow for record creation path from builder to bypass extra TreeMapping
Jun 7, 2025
6c16271
Calculate estimated size as fields are added instead of deferring it
Jun 7, 2025
338c079
Use idiomatic Directory interface and optimize builder
Jun 8, 2025
c81646a
add large object profiling and refactor tests
Jun 8, 2025
e3bbe2b
add Thrift competitor and fix framework issues
Jun 9, 2025
8a5de0c
Add single-field access test
Jun 9, 2025
0765599
correct benchmark methodology for fairness
Jun 9, 2025
adcd629
micro-optiomize and attempt to make ComparisonBenchmark tests a littl…
Jun 9, 2025
6d36b66
final optimization and reorganization into better project structure
Jun 11, 2025
99893ea
final optimization and reorganization into better project structure
Jun 12, 2025
37ca24d
track custom map
Jun 12, 2025
429f852
adding comments and TODOs
Jun 12, 2025
04ca61d
various micro-optimizations
Jun 13, 2025
8fef426
make serilaizers static/final; begin to refactor to avoid virtual dis…
Jun 13, 2025
3919e63
add new Imprint specific benchmark
Jun 13, 2025
5525293
Remove Value and TypeHandler to significantly reduce dynamic dispatch
Jun 14, 2025
40e78ab
add static serializers
Jun 14, 2025
abfd8d8
upate formatting and comments
Jun 17, 2025
fd2bfbe
Merge branch 'main' into micro-opt-merge-to-main
Jun 17, 2025
3142025
update comments
Jun 17, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions src/jmh/java/com/imprint/benchmark/ComparisonBenchmark.java
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
@OutputTimeUnit(TimeUnit.NANOSECONDS)
@State(Scope.Benchmark)
@Warmup(iterations = 3, time = 1)
@Measurement(iterations = 7, time = 1)
@Measurement(iterations = 25, time = 1)
@Fork(value = 1, jvmArgs = {"-Xms4g", "-Xmx4g"})
public class ComparisonBenchmark {

Expand All @@ -30,7 +30,7 @@ public class ComparisonBenchmark {
new KryoSerializingBenchmark(),
new MessagePackSerializingBenchmark());

@Param({"Imprint", "Jackson-JSON", "Protobuf", "FlatBuffers", "Avro-Generic", "Thrift", "Kryo", "MessagePack", "CapnProto"})
@Param({"Imprint"})
public String framework;

private SerializingBenchmark serializingBenchmark;
Expand Down Expand Up @@ -60,12 +60,12 @@ public void deserialize(Blackhole bh) {
serializingBenchmark.deserialize(bh);
}

@Benchmark
//@Benchmark
public void projectAndSerialize(Blackhole bh) {
serializingBenchmark.projectAndSerialize(bh);
}

@Benchmark
//@Benchmark
public void mergeAndSerialize(Blackhole bh) {
serializingBenchmark.mergeAndSerialize(bh);
}
Expand Down
275 changes: 0 additions & 275 deletions src/jmh/java/com/imprint/benchmark/FieldAccessBenchmark.java

This file was deleted.

Loading