Skip to content

Latest commit

 

History

History
79 lines (63 loc) · 2.88 KB

systemProperties.adoc

File metadata and controls

79 lines (63 loc) · 2.88 KB

Chronicle System Properties Guide

This document lists Java system properties that influence Chronicle libraries such as Chronicle Wire and Chronicle Core. These options are commonly used for debugging or performance tuning.

Note
Boolean properties are parsed with net.openhft.chronicle.core.Jvm.getBoolean(String, boolean). A property is true when the key is present (e.g. -Dprop) or set to true/yes. To change a non-default value, provide the opposite value explicitly.
Warning
Changing these settings can affect behaviour and performance. Use them mainly for development and debugging unless advised otherwise.

1. Core and Wire System Properties

Table 1. System Properties Details
Property Key (System Property Name) Default Value Description & Use Case Corresponding Java Variable (Conceptual)

dumpCode

false

Prints generated bytecode or other internals such as WireMarshaller implementations when enabled. Useful for in depth debugging of dynamic code generation.

Jvm.getBoolean("dumpCode") → DUMP_CODE

mappedFile.retain

false

When enabled, mapped file components attempt to retain file mappings which can alter cleanup on JVM exit (notably on Windows where files may remain locked).

Jvm.getBoolean("mappedFile.retain") → RETAIN

regress.tests

false

Activates behaviour used by regression tests within the Chronicle test suites.

Jvm.getBoolean("regress.tests") → REGRESS_TESTS

wire.generate.tuples

false

Alters serialisation of some complex Marshallable objects to use a tuple style representation. Useful for inspecting field order in text based wire formats.

Wires.GENERATE_TUPLES

wire.method.prependPackage

false

Generated MethodWriter proxies will have their package name prefixed, aiding in debugging generated classes.

Wires.PREPEND_PACKAGE

wire.testAsYaml

false

Forces certain tests to write data in YAML instead of binary formats, making messages human readable.

Wires.TEXT_AS_YAML

wire.usePadding

true

Controls alignment padding in binary wire formats. Disable with -Dwire.usePadding=false if message size is critical at the cost of potential performance impact.

Wires.DEFAULT_USE_PADDING

yaml.logging

false

Enables logging of YAML formatted messages for debugging or documentation purposes.

YamlLogging.getYamlLogging() (or similar)

2. Important Considerations

Version Specificity

Defaults and behaviour can change between Chronicle releases. Check the version of the library you use.

Performance Impact

Properties that enable additional logging or code generation tracing (like dumpCode or yaml.logging) can slow down your application.

Testing

Include any required system property values in your test configuration to ensure consistent behaviour.