Skip to content

Commit 185bb37

Browse files
dfa1claude
andcommitted
test(integration): use cascading(3) in WriteFileSizeIntegrationTest for fair JNI comparison
Java writer was using WriteOptions.defaults() (no cascading), while JNI uses ALP+FastLanes bitpacking by default — an apples-to-oranges comparison. Switching to cascading(3) on the Java side brings the ratio from ~6x down to ~1.16x (Java=1.2 MB vs JNI=1.0 MB for 100K OHLC rows). Tighten assertion to < 2x to catch regressions. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent 06d1299 commit 185bb37

1 file changed

Lines changed: 4 additions & 4 deletions

File tree

integration/src/test/java/io/github/dfa1/vortex/integration/WriteFileSizeIntegrationTest.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ class WriteFileSizeIntegrationTest {
8282

8383
private static void writeJava(Path file, List<OhlcGenerator.OhlcBatch> batches) throws IOException {
8484
try (FileChannel ch = FileChannel.open(file, StandardOpenOption.CREATE, StandardOpenOption.WRITE);
85-
VortexWriter writer = VortexWriter.create(ch, JAVA_SCHEMA, WriteOptions.defaults())) {
85+
VortexWriter writer = VortexWriter.create(ch, JAVA_SCHEMA, WriteOptions.cascading(3))) {
8686
for (OhlcGenerator.OhlcBatch b : batches) {
8787
writer.writeChunk(Map.of(
8888
"date", b.dates(), "open", b.open(), "high", b.high(),
@@ -200,8 +200,8 @@ void fileSizeComparison(@TempDir Path tmp) throws IOException {
200200

201201
assertThat(javaSize).isPositive();
202202
assertThat(jniSize).isPositive();
203-
// Java writer uses ALP (no further compression) for F64, PrimitiveEncoding for integers.
204-
// JNI uses ALP+FastLanes delta+bitpacking. Bound < 6× catches gross regressions.
205-
assertThat(javaSize).isLessThan(jniSize * 6);
203+
// Both writers use cascading(3): ALP+bitpacking for F64, delta+bitpacking for I64.
204+
// Bound < 2× catches regressions while tolerating minor encoding strategy differences.
205+
assertThat(javaSize).isLessThan(jniSize * 2);
206206
}
207207
}

0 commit comments

Comments
 (0)