Class BufferAlignmentAgent

java.lang.Object
org.agrona.agent.BufferAlignmentAgent

public class BufferAlignmentAgent extends Object
A Java agent that verifies that all memory accesses in DirectBuffer implementations are aligned.

Unaligned accesses can be slower or even make the JVM crash on some architectures.

Using this agent will avoid such crashes, but it has a performance overhead and should only be used for testing and debugging.

  • Field Details

    • alignmentTransformer

      private static net.bytebuddy.agent.builder.ResettableClassFileTransformer alignmentTransformer
    • instrumentation

      private static Instrumentation instrumentation
  • Constructor Details

    • BufferAlignmentAgent

      public BufferAlignmentAgent()
  • Method Details

    • premain

      public static void premain(String agentArgs, Instrumentation instrumentation)
      Invoked when the agent is launched with the JVM and before the main application.
      Parameters:
      agentArgs - ignored for buffer alignment agent.
      instrumentation - for adding bytecode to classes.
    • agentmain

      public static void agentmain(String agentArgs, Instrumentation instrumentation)
      Invoked when the agent is attached to an already running application.
      Parameters:
      agentArgs - ignored for buffer alignment agent.
      instrumentation - for adding bytecode to classes.
    • agent

      private static void agent(boolean shouldRedefine, Instrumentation instrumentation)
    • removeTransformer

      public static void removeTransformer()
      Remove the bytecode transformer and associated bytecode weaving so the alignment checks are not made.