This document provides visual examples and ASCII representations of the Java Serialization Frameworks project.
java_serialization_frameworks/
β
βββ README.md # Main documentation
βββ BENCHMARK_SUMMARY.md # Benchmark results
βββ SCREENSHOT_GUIDE.md # Screenshot instructions
βββ VISUAL_DOCUMENTATION.md # This file
β
βββ manage.sh # Unified management script
βββ enhanced_benchmark.py # Enhanced metrics collection
βββ analyze_metrics.py # Results analysis
β
βββ dashboards/ # Grafana dashboards
β βββ serialization-performance.json
β βββ resource-utilization.json
β βββ README.md
β
βββ results/ # Benchmark outputs
β βββ enhanced_benchmark_*.json
β βββ metrics_*.prom
β
βββ screenshots/ # Visual documentation
β βββ *.png
β
βββ common-payload/ # Shared models
β βββ pom.xml
β βββ build.gradle
β βββ src/main/java/org/techishthoughts/payload/
β βββ generator/ # Payload generators
β βββ model/ # Data models
β βββ service/ # Benchmark framework
β
βββ jackson-poc/ # Framework POCs (13 total)
βββ avro-poc/
βββ kryo-poc/
βββ msgpack-poc/
βββ thrift-poc/
βββ capnproto-poc/
βββ fst-poc/
βββ grpc-poc/
βββ cbor-poc/
βββ bson-poc/
βββ arrow-poc/
βββ sbe-poc/
βββ parquet-poc/
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Java Serialization Frameworks - Management Script v2.0.0 β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
USAGE:
./manage.sh <command> [options]
COMMANDS:
start Start all 13 framework services
stop Stop all running services
restart Restart all services
status Show status of all services
benchmark Run comprehensive performance benchmark
analyze Analyze latest benchmark results
logs <framework> Show logs for specific framework
clean Clean all logs and temporary files
help Show this help message
EXAMPLES:
./manage.sh start # Start all services
./manage.sh status # Check which services are running
./manage.sh benchmark # Run benchmark (services must be running)
./manage.sh analyze # Analyze latest results
./manage.sh logs jackson # View Jackson service logs
./manage.sh stop # Stop all services
FRAMEWORKS (13):
jackson, avro, kryo, msgpack, thrift, capnproto, fst,
grpc, cbor, bson, arrow, sbe, parquet
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Service Status
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
KEY NAME CATEGORY STATUS
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
arrow Apache Arrow Columnar RUNNING
avro Apache Avro Binary Schema RUNNING
bson BSON Binary Schema-less RUNNING
capnproto Cap'n Proto Binary Zero-copy RUNNING
cbor CBOR Binary Schema-less RUNNING
fst FST Binary Schema-less RUNNING
grpc gRPC RPC Framework RUNNING
jackson Jackson JSON Text-based RUNNING
kryo Kryo Binary Schema-less RUNNING
msgpack MessagePack Binary Schema-less RUNNING
parquet Apache Parquet Columnar RUNNING
sbe SBE Binary Schema RUNNING
thrift Apache Thrift Binary Schema RUNNING
Running: 13/13 services
================================================================================
ENHANCED SERIALIZATION FRAMEWORK BENCHMARK
================================================================================
Start time: 2025-10-22 14:30:15
Frameworks: 13
Scenarios: 4 payload sizes
Configurations: 2 test configs
Metrics Collection Phases:
1. Network Handshake (DNS, TCP, TLS)
2. Serialization Performance (avg, p50, p95, p99)
3. Resource Utilization (CPU, Memory, Threads)
4. Transport Efficiency (size, compression, throughput)
================================================================================
Phase 1: Health Check
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Jackson JSON (port 8081): HEALTHY
Apache Avro (port 8083): HEALTHY
Kryo (port 8084): HEALTHY
MessagePack (port 8086): HEALTHY
Apache Thrift (port 8087): HEALTHY
Cap'n Proto (port 8088): HEALTHY
FST (port 8090): HEALTHY
gRPC (port 8092): HEALTHY
CBOR (port 8093): HEALTHY
BSON (port 8094): HEALTHY
Apache Arrow (port 8095): HEALTHY
SBE (port 8096): HEALTHY
Apache Parquet (port 8097): HEALTHY
Health Summary: 13/13 services available
================================================================================
Phase 2: Enhanced Metrics Collection
================================================================================
Testing: Jackson JSON (Text-based)
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
[1/104] SMALL | baseline ... 23.45ms | 1.2KB | 3.5% CPU
[2/104] SMALL | with_compression ... 28.12ms | 0.8KB | 4.1% CPU
[3/104] MEDIUM | baseline ... 45.67ms | 12.3KB | 5.2% CPU
[4/104] MEDIUM | with_compression ... 52.34ms | 8.1KB | 6.0% CPU
[5/104] LARGE | baseline ... 234.56ms | 123.4KB | 12.3% CPU
[6/104] LARGE | with_compression ... 267.89ms | 81.2KB | 14.1% CPU
[7/104] HUGE | baseline ... 1234.56ms | 1.2MB | 25.6% CPU
[8/104] HUGE | with_compression ... 1456.78ms | 0.8MB | 28.4% CPU
Testing: Apache Avro (Binary Schema)
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
[9/104] SMALL | baseline ... 12.34ms | 0.9KB | 2.8% CPU
[10/104] SMALL | with_compression ... 15.67ms | 0.6KB | 3.2% CPU
...
================================================================================
ENHANCED BENCHMARK COMPLETE!
================================================================================
JSON Results: results/enhanced_benchmark_20251022_143500.json
Prometheus Metrics: results/metrics_20251022_143500.prom
Total tests run: 104
Successful tests: 104
Failed tests: 0
Performance Summary by Framework:
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Apache Arrow : 67.23ms avg | 45.6KB avg | 8 tests
Apache Avro : 23.45ms avg | 12.3KB avg | 8 tests
Apache Parquet : 89.12ms avg | 34.5KB avg | 8 tests
Apache Thrift : 34.56ms avg | 15.6KB avg | 8 tests
BSON : 45.67ms avg | 23.4KB avg | 8 tests
CBOR : 38.90ms avg | 18.9KB avg | 8 tests
Cap'n Proto : 19.23ms avg | 14.2KB avg | 8 tests
FST : 21.34ms avg | 16.7KB avg | 8 tests
Jackson JSON : 52.34ms avg | 34.2KB avg | 8 tests
Kryo : 24.56ms avg | 17.8KB avg | 8 tests
MessagePack : 29.78ms avg | 19.3KB avg | 8 tests
SBE : 15.67ms avg | 11.2KB avg | 8 tests
gRPC : 56.78ms avg | 28.4KB avg | 8 tests
{
"timestamp": "2025-10-22T14:35:00.123456",
"total_frameworks": 13,
"healthy_frameworks": 13,
"unhealthy_frameworks": [],
"total_tests": 104,
"results": [
{
"framework": "Jackson JSON",
"scenario": "SMALL",
"config": "baseline",
"network": {
"connection_time_ms": 1.23,
"dns_lookup_ms": 0.45,
"tcp_connect_ms": 0.78,
"tls_handshake_ms": 0.0,
"total_handshake_ms": 1.23
},
"serialization": {
"avg_serialization_time_ms": 23.45,
"min_serialization_time_ms": 18.76,
"max_serialization_time_ms": 35.18,
"p50_serialization_time_ms": 23.45,
"p95_serialization_time_ms": 30.49,
"p99_serialization_time_ms": 32.83,
"throughput_ops_per_sec": 42.64
},
"resource": {
"cpu_percent": 3.5,
"memory_mb": 256.4,
"memory_delta_mb": 12.3,
"peak_memory_mb": 268.7,
"gc_count": 0,
"gc_time_ms": 0.0,
"thread_count": 45
},
"transport": {
"avg_payload_size_bytes": 1234,
"compression_ratio": 1.0,
"network_throughput_mbps": 0.42,
"overhead_percent": 0.0
},
"success": true
}
]
}# HELP serialization_time_ms Average serialization time in milliseconds
# TYPE serialization_time_ms gauge
serialization_time_ms{framework="Jackson JSON",scenario="SMALL",config="baseline"} 23.45
serialization_time_ms{framework="Jackson JSON",scenario="SMALL",config="with_compression"} 28.12
serialization_time_ms{framework="Apache Avro",scenario="SMALL",config="baseline"} 12.34
serialization_time_ms{framework="Kryo",scenario="SMALL",config="baseline"} 11.23
serialization_throughput_ops{framework="Jackson JSON",scenario="SMALL",config="baseline"} 42.64
serialization_throughput_ops{framework="Apache Avro",scenario="SMALL",config="baseline"} 81.03
serialization_throughput_ops{framework="Kryo",scenario="SMALL",config="baseline"} 89.05
payload_size_bytes{framework="Jackson JSON",scenario="SMALL",config="baseline"} 1234
payload_size_bytes{framework="Apache Avro",scenario="SMALL",config="baseline"} 892
payload_size_bytes{framework="Kryo",scenario="SMALL",config="baseline"} 945
compression_ratio{framework="Jackson JSON",scenario="SMALL",config="with_compression"} 0.65
compression_ratio{framework="Apache Avro",scenario="SMALL",config="with_compression"} 0.48
compression_ratio{framework="Kryo",scenario="SMALL",config="with_compression"} 0.52
memory_usage_mb{framework="Jackson JSON",scenario="SMALL",config="baseline"} 256.4
memory_usage_mb{framework="Apache Avro",scenario="SMALL",config="baseline"} 234.2
memory_usage_mb{framework="Kryo",scenario="SMALL",config="baseline"} 245.8
cpu_usage_percent{framework="Jackson JSON",scenario="SMALL",config="baseline"} 3.5
cpu_usage_percent{framework="Apache Avro",scenario="SMALL",config="baseline"} 2.8
cpu_usage_percent{framework="Kryo",scenario="SMALL",config="baseline"} 2.9
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Java Serialization Frameworks - Performance Overview β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β Filters: [Framework βΌ] [Scenario βΌ] [Config βΌ] β
β β
ββββββββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββββββ€
β Serialization Time β Throughput (ops/sec) β
β ββββββββββββββββββββββββββββ β ββββββββββββββββββββββββββββββββ β
β β [Line Chart] β β β [Line Chart] β β
β β Jackson: 23.45ms β β β β Jackson: 42.64 β β β
β β Avro: 12.34ms β β β β Avro: 81.03 β β β
β β Kryo: 11.23ms β β β β Kryo: 89.05 β β β
β β ... β β β ... β β
β ββββββββββββββββββββββββββββ β ββββββββββββββββββββββββββββββββ β
ββββββββββββββββββββββββββββββββΌβββββββββββββββββββββββββββββββββββ€
β Payload Size Comparison β Compression Ratio β
β ββββββββββββββββββββββββββββ β ββββββββββββββββββββββββββββββββ β
β β [Bar Gauge] β β β [Stat Panel] β β
β β SBE βββ 1.2KB β β β Parquet 0.25 (75%) β β
β β Cap'n Proto ββββ 1.5KB β β β Avro 0.32 (68%) β β
β β MessagePack βββββ 2.1KBβ β β MessagePack 0.38 (62%) β β
β β ... β β β ... β β
β ββββββββββββββββββββββββββββ β ββββββββββββββββββββββββββββββββ β
ββββββββββββββββββββββββββββββββ΄βββββββββββββββββββββββββββββββββββ€
β Performance Heatmap β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β SMALL MEDIUM LARGE HUGE ββ
β β Jackson GOOD OK SLOW SLOW ββ
β β Avro GOOD GOOD OK SLOW ββ
β β Kryo GOOD GOOD OK SLOW ββ
β β SBE GOOD GOOD GOOD OK ββ
β β ... ββ
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Java Serialization Frameworks - Resource Utilization β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β Filters: [Framework βΌ] [Scenario βΌ] β
β β
ββββββββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββββββ€
β Memory Usage (MB) β CPU Usage (%) β
β ββββββββββββββββββββββββββββ β ββββββββββββββββββββββββββββββββ β
β β [Area Chart] β β β [Line Chart] β β
β β 256MB β β β β 25% β β β
β β 128MB β β±ββ² β β β 15% β β±β² β β
β β 64MB ββ± β² β β β 10% β β± β² β β
β β 32MB β»βββββββββ β β β 5% ββ± β² β β
β ββββββββββββββββββββββββββββ β ββββββββββββββββββββββββββββββββ β
ββββββββββββββββββββββββββββββββΌβββββββββββββββββββββββββββββββββββ€
β Memory Efficiency β CPU Efficiency β
β ββββββββββββββββββββββββββββ β ββββββββββββββββββββββββββββββββ β
β β [Bar Gauge] β β β [Bar Gauge] β β
β β SBE ββ 2.1MB β β β SBE β 0.8% β β
β β Kryo βββ 3.4MB β β β Kryo ββ 1.2% β β
β β Avro ββββ 4.2MB β β β Avro ββ 1.4% β β
β β ... β β β ... β β
β ββββββββββββββββββββββββββββ β ββββββββββββββββββββββββββββββββ β
ββββββββββββββββββββββββββββββββ΄βββββββββββββββββββββββββββββββββββ€
β Top Resource Consumers β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β Framework Memory (MB) CPU (%) Threads Efficiency ββ
β β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ ββ
β β Jackson 256.4 3.5 45 GOOD ββ
β β Avro 234.2 2.8 42 VERY GOOD ββ
β β Kryo 245.8 2.9 43 VERY GOOD ββ
β β ... ββ
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
curl -X POST http://localhost:8081/api/jackson/v2/benchmark \
-H "Content-Type: application/json" \
-d '{
"complexity": "MEDIUM",
"iterations": 50,
"enableWarmup": true,
"enableCompression": true,
"enableRoundtrip": true,
"enableMemoryMonitoring": true
}'{
"success": true,
"framework": "Jackson JSON",
"complexity": "MEDIUM",
"iterations": 50,
"totalDurationMs": 1234.56,
"successfulSerializations": 50,
"successfulCompressions": 50,
"successRate": 100.0,
"roundtripSuccess": true,
"averageSerializationTimeMs": 23.45,
"averageCompressionRatio": 0.65,
"averageSerializedSizeBytes": 12345,
"memoryMetrics": {
"peakMemoryMb": 256.4,
"memoryDeltaMb": 12.3
},
"serializationTimeMs": 23.45,
"deserializationTimeMs": 0.0,
"totalSizeBytes": 12345.0,
"userCount": 100
}| Framework | Avg Time (ms) | Payload Size (KB) | Compression | Category |
|---|---|---|---|---|
| SBE (Fastest) | 0.89 | 1.2 | Excellent | Binary Schema |
| Cap'n Proto | 1.23 | 1.5 | Good | Zero-copy |
| FST | 1.45 | 2.3 | Good | Schema-less |
| Kryo | 1.67 | 2.3 | Good | Schema-less |
| Apache Arrow | 2.01 | 3.4 | Excellent | Columnar |
| Avro | 2.34 | 1.8 | Excellent | Binary Schema |
| MessagePack | 2.89 | 2.1 | Excellent | Schema-less |
| Thrift | 3.12 | 2.4 | Good | Binary Schema |
| CBOR | 3.45 | 2.4 | Excellent | Schema-less |
| Parquet | 3.78 | 2.8 | Excellent | Columnar |
| BSON | 4.23 | 3.2 | Good | Schema-less |
| gRPC | 4.56 | 2.9 | Good | RPC Framework |
| Jackson | 5.67 | 5.6 | Fair | Text-based |
Legend:
- Fastest = Best performance
- Compression Rating: Excellent > Good > Fair
START
β
βββΊ Need Human Readable? ββYESβββΊ Jackson JSON
β β
β NO
β β
βββΊ Ultra-Low Latency? ββYESβββΊ SBE
β β
β NO
β β
βββΊ Zero-Copy Required? ββYESβββΊ Cap'n Proto
β β
β NO
β β
βββΊ Schema Evolution? ββYESβββΊ Apache Avro
β β
β NO
β β
βββΊ RPC/Microservices? ββYESβββΊ gRPC
β β
β NO
β β
βββΊ Big Data/Analytics? ββYESβββΊ Arrow/Parquet
β β
β NO
β β
βββΊ Java-Only? ββYESβββΊ Kryo or FST
β β
β NO
β β
βββΊ Cross-Language? ββYESβββΊ Thrift or MessagePack
# Service Management
./manage.sh start # Start all 13 services
./manage.sh stop # Stop all services
./manage.sh status # Check health
./manage.sh restart # Restart all
# Benchmarking
./manage.sh benchmark # Run full benchmark
python3 enhanced_benchmark.py # Direct execution
./manage.sh analyze # Analyze results
# Monitoring
./manage.sh logs jackson # View logs
tail -f logs/*.log # All logs
./manage.sh clean # Clean up8081 β Jackson JSON
8083 β Apache Avro
8084 β Kryo
8086 β MessagePack
8087 β Apache Thrift
8088 β Cap'n Proto
8090 β FST
8092 β gRPC
8093 β CBOR
8094 β BSON
8095 β Apache Arrow
8096 β SBE
8097 β Apache Parquet
http://localhost:8081/actuator/health # Health check
http://localhost:8081/api/jackson/v2/info # Framework info
http://localhost:8081/api/jackson/v2/benchmark # Benchmark endpoint
http://localhost:9090 # Prometheus UI
http://localhost:3000 # Grafana UI
Last Updated: 2025-10-22 Version: 2.0.0