Skip to content

Commit 1137efb

Browse files
authored
Merge pull request #251 from aether-framework/fix/remove-en-dash
Standardize hyphen usage in documentation
2 parents b47abcf + 640e008 commit 1137efb

3 files changed

Lines changed: 18 additions & 18 deletions

File tree

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -558,4 +558,4 @@ To report a vulnerability, see our [Security Policy](SECURITY.md).
558558

559559
This project is licensed under the [MIT License](LICENSE).
560560

561-
Copyright (c) 20252026 [Splatgames.de Software](https://software.splatgames.de) and Contributors.
561+
Copyright (c) 2025-2026 [Splatgames.de Software](https://software.splatgames.de) and Contributors.

SECURITY.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -23,10 +23,10 @@ If you are using an older version, we **strongly recommend upgrading** to the la
2323

2424
This project uses multiple automated security tools:
2525

26-
- **GitHub CodeQL** Static Application Security Testing (SAST)
27-
- **OWASP Dependency-Check** Known vulnerability detection in dependencies
28-
- **GitHub Dependency Review** Pull request dependency analysis
29-
- **Dependabot** Automated dependency updates
26+
- **GitHub CodeQL** - Static Application Security Testing (SAST)
27+
- **OWASP Dependency-Check** - Known vulnerability detection in dependencies
28+
- **GitHub Dependency Review** - Pull request dependency analysis
29+
- **Dependabot** - Automated dependency updates
3030

3131
All scans are executed automatically in CI pipelines on every pull request and release build.
3232

@@ -93,10 +93,10 @@ If you discover a security vulnerability in **Aether Datafixers**, please report
9393

9494
| Severity | Acknowledgment | Fix Timeline |
9595
|--------------------------|----------------|--------------|
96-
| Critical (CVSS 9.010.0) | 24 hours | 72 hours |
97-
| High (CVSS 7.08.9) | 48 hours | 14 days |
98-
| Medium (CVSS 4.06.9) | 48 hours | 30 days |
99-
| Low (CVSS 0.13.9) | 72 hours | Next release |
96+
| Critical (CVSS 9.0-10.0) | 24 hours | 72 hours |
97+
| High (CVSS 7.0-8.9) | 48 hours | 14 days |
98+
| Medium (CVSS 4.0-6.9) | 48 hours | 30 days |
99+
| Low (CVSS 0.1-3.9) | 72 hours | Next release |
100100

101101
---
102102

docs/advanced/performance-optimization.md

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ Measures the cost of applying one `DataFix` to a `Dynamic` value.
5050
**Key takeaways:**
5151

5252
- **Framework overhead is ~0.25 µs** per fix invocation (identity fix baseline).
53-
- A simple rename adds only ~0.030.06 µs on top of the framework overhead.
53+
- A simple rename adds only ~0.03-0.06 µs on top of the framework overhead.
5454
- Payload size has minimal impact on simple field operations - the cost scales with fix complexity, not data size.
5555
- A realistic domain fix (player data with multiple field transformations) takes ~9 µs.
5656
- End-to-end migration (including schema lookup and type routing) adds ~22 µs overhead on top of the raw fix.
@@ -155,7 +155,7 @@ Measures raw field read, set, and object generation performance per `DynamicOps`
155155

156156
**Key takeaways:**
157157

158-
- **SnakeYamlOps is the fastest for field reads** - 23x faster than Jackson-based implementations. This is because SnakeYaml uses native Java `Map`/`List` types with direct `HashMap.get()` lookups, while Jackson and Gson use tree node wrappers (`ObjectNode`, `JsonObject`).
158+
- **SnakeYamlOps is the fastest for field reads** - 2-3x faster than Jackson-based implementations. This is because SnakeYaml uses native Java `Map`/`List` types with direct `HashMap.get()` lookups, while Jackson and Gson use tree node wrappers (`ObjectNode`, `JsonObject`).
159159
- **SnakeYamlOps is also the fastest for field sets** - 6x faster than Jackson at SMALL payloads, because Java `HashMap.put()` is an in-place mutation, while Jackson's `ObjectNode.set()` involves tree copying.
160160
- **All Jackson-based formats perform identically** for in-memory operations. JacksonJsonOps, JacksonYamlOps, JacksonTomlOps, and JacksonXmlOps share the same `ObjectNode`/`ArrayNode` tree model - format differences only matter during serialization/deserialization.
161161
- **GsonOps is consistently the slowest** for field operations due to `JsonObject.deepCopy()` on mutations.
@@ -173,7 +173,7 @@ Measures end-to-end `DataFixer.update()` throughput per format (single rename fi
173173
| GsonOps | 3.628 | 3.314 | 3.231 |
174174
| JacksonXmlOps | 3.620 | 3.644 | - |
175175

176-
**Key takeaway:** Migration throughput is nearly identical across all formats (~3.63.7 ops/µs). The DataFixer framework overhead dominates over format-specific differences. Choose your format based on your application's needs, not migration speed.
176+
**Key takeaway:** Migration throughput is nearly identical across all formats (~3.6-3.7 ops/µs). The DataFixer framework overhead dominates over format-specific differences. Choose your format based on your application's needs, not migration speed.
177177

178178
### Cross-Format Conversion
179179

@@ -224,7 +224,7 @@ Measures encode and decode throughput for individual primitive values.
224224

225225
- String, Integer, and Boolean codecs operate at ~4 ns per operation - effectively free in the context of a migration.
226226
- Float, Long, and Double are ~40% slower due to boxing and number conversion overhead but still under 7 ns per operation.
227-
- Encoding is consistently ~510% faster than decoding.
227+
- Encoding is consistently ~5-10% faster than decoding.
228228

229229
### Collection Scaling
230230

@@ -272,7 +272,7 @@ Measures migration throughput under concurrent load.
272272

273273
| Operation | 2 Threads (ops/µs) |
274274
|-----------------|---------------------:|
275-
| Latest lookup | 481.9 490.7 |
275+
| Latest lookup | 481.9 - 490.7 |
276276
| Registry lookup | 111.1 |
277277

278278
**Key takeaways:**
@@ -290,9 +290,9 @@ Measures migration throughput under concurrent load.
290290

291291
| Workload | Records | Recommended Heap | JVM Flags |
292292
|------------|--------------------:|------------------:|-------------------------------------------------------|
293-
| Small | < 1,000 | 256 MB 512 MB | `-Xms256m -Xmx512m` |
294-
| Medium | 1,000 100,000 | 1 GB 2 GB | `-Xms1g -Xmx2g` |
295-
| Large | 100,000 1,000,000 | 2 GB 4 GB | `-Xms2g -Xmx4g -XX:+UseG1GC` |
293+
| Small | < 1,000 | 256 MB - 512 MB | `-Xms256m -Xmx512m` |
294+
| Medium | 1,000 - 100,000 | 1 GB - 2 GB | `-Xms1g -Xmx2g` |
295+
| Large | 100,000 - 1,000,000 | 2 GB - 4 GB | `-Xms2g -Xmx4g -XX:+UseG1GC` |
296296
| Very large | > 1,000,000 | 4 GB+ | `-Xms4g -Xmx8g -XX:+UseG1GC -XX:MaxGCPauseMillis=200` |
297297

298298
### GC Tuning for Migration Workloads
@@ -461,7 +461,7 @@ if (elapsed > THRESHOLD_NANOS) {
461461
Based on the [schema lookup benchmarks](#schema-lookup-performance):
462462

463463
- Use `getCurrentVersion()` for the latest schema - **O(1), 5.7 ns**
464-
- Use `getSchema(version)` for a specific version - **O(log n), 952 ns**
464+
- Use `getSchema(version)` for a specific version - **O(log n), 9-52 ns**
465465
- Avoid iterating schemas sequentially - **O(n), up to 10.8 µs at 500 schemas**
466466

467467
---

0 commit comments

Comments
 (0)