Skip to content

[Java] Verify direct codecs with GraalVM native-image #68

Description

@nth-bailey

Context

Issue #46 and PR #52 delivered Java POJOs, builders, direct StAX codecs, and a JVM JMH comparison. The original issue also proposed GraalVM native-image compilation and startup/size measurements. Those were not run: benchmarks/java/README.md explicitly says its warmed JMH results do not measure native-image startup, executable size, or RSS. It also notes that StAX provider selection and application dependencies may require native-image configuration.

Scope

  • Generate a small standalone Java application using --style pojo --feature direct-codec and the standard JDK StAX provider. Compile it with GraalVM native-image and execute XML read/write round trips.
  • Record whether the generated model and codec need reflection/resource configuration. If configuration is required, identify whether it comes from PolyXML output, the StAX provider, or other application dependencies.
  • Measure native executable size, startup latency, and RSS against the same application's JVM build. Record GraalVM/JDK version, OS, commands, payload, and measurement method. Do not assume the startup or memory targets proposed in [Codegen: Java & C#] Support traditional mutable classes/POJOs with getters, setters, and builders (--style pojo / --builder) #46.
  • Document the supported configuration and results in the Java guide or benchmark README. Add an automated smoke test only if a suitable native-image CI runner is available.

This is a verification task, not a requirement to change the existing JVM benchmark or promise universal zero-configuration native-image support.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requesttarget:javaJava code generator target

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions