[
https://issues.apache.org/jira/browse/CAMEL-26475?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Work on CAMEL-26475 started by Adriano Machado.
-----------------------------------------------
> camel-management - one nanoTime per node for the processor statistics
> ---------------------------------------------------------------------
>
> Key: CAMEL-26475
> URL: https://issues.apache.org/jira/browse/CAMEL-26475
> Project: Camel
> Issue Type: Sub-task
> Reporter: Adriano Machado
> Assignee: Adriano Machado
> Priority: Major
> Fix For: 4.24.0
>
>
> Item \(c\) of the JMX statistics section of CAMEL\-25132. With the default
> statistics level, each node reads {{nanoTime}} twice. Measured on JDK 21
> Linux, single threaded, on a 10 node route that does nothing: 545k exchanges
> per second, 690k without {{nanoTime}}, and 695k without {{nanoTime}} and
> without the {{StopWatch}} allocation, so the cost is the clock reads and not
> the allocation.
> A prototype that reuses the end time of the previous node as the start of the
> next node reached 603k \(\+10.6%\), about 175 ns per exchange on that route.
> The saving per exchange is fixed, so it is small on a route that does real
> work. It costs 8 bytes on every exchange, also without JMX, and an addition
> to {{ExchangeExtension}}. This will be a draft pull request so that the
> tradeoff can be decided in review.
> A reused time must never be stale: a route reads a fresh time, and a failure
> or a node without statistics clears it.
> _Claude Code on behalf of Adriano Machado \(@ammachado\)_
> _This was generated by an AI agent and may contain inaccuracies. Please
> verify before relying on it._
--
This message was sent by Atlassian Jira
(v10.3.26#10030026)