You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2026/07/01 14:29:37 UTC
(camel) 04/11: chore: compute heap histogram totals from visible entries only
This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch feature/CAMEL-23870-heap-histogram
in repository https://gitbox.apache.org/repos/asf/camel.git
commit 8a9fae587ca213251eb0db85bde4123e6b0a3048
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Wed Jul 1 16:12:33 2026 +0200
chore: compute heap histogram totals from visible entries only
Co-Authored-By: Claude <no...@anthropic.com>
Signed-off-by: Claus Ibsen <cl...@gmail.com>
---
.../jbang/core/commands/action/CamelHeapHistogram.java | 12 +++++++++---
.../dsl/jbang/core/commands/tui/HeapHistogramTab.java | 18 +++++++++++-------
2 files changed, 20 insertions(+), 10 deletions(-)
diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/action/CamelHeapHistogram.java b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/action/CamelHeapHistogram.java
index 4e5cf33b6e2f..c58ae90c67d5 100644
--- a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/action/CamelHeapHistogram.java
+++ b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/action/CamelHeapHistogram.java
@@ -137,9 +137,15 @@ public class CamelHeapHistogram extends ActionWatchCommand {
clearScreen();
}
if (!rows.isEmpty()) {
- printer().printf("PID: %s\tClasses: %d\tTotal Instances: %s\tTotal Bytes: %s\tDisplay: %d%n",
- pid, arr != null ? arr.size() : 0,
- formatNumber(totalInstances), formatBytes(totalBytes), rows.size());
+ long visibleInstances = 0;
+ long visibleBytes = 0;
+ for (Row r : rows) {
+ visibleInstances += r.instances;
+ visibleBytes += r.bytes;
+ }
+ printer().printf("PID: %s\tClasses: %d\tInstances: %s\tBytes: %s%n",
+ pid, rows.size(),
+ formatNumber(visibleInstances), formatBytes(visibleBytes));
printTable(rows);
}
} else {
diff --git a/dsl/camel-jbang/camel-jbang-plugin-tui/src/main/java/org/apache/camel/dsl/jbang/core/commands/tui/HeapHistogramTab.java b/dsl/camel-jbang/camel-jbang-plugin-tui/src/main/java/org/apache/camel/dsl/jbang/core/commands/tui/HeapHistogramTab.java
index 8af8db0cd01f..3030f3b11e33 100644
--- a/dsl/camel-jbang/camel-jbang-plugin-tui/src/main/java/org/apache/camel/dsl/jbang/core/commands/tui/HeapHistogramTab.java
+++ b/dsl/camel-jbang/camel-jbang-plugin-tui/src/main/java/org/apache/camel/dsl/jbang/core/commands/tui/HeapHistogramTab.java
@@ -169,18 +169,22 @@ class HeapHistogramTab implements MonitorTab {
}
private void renderSummary(Frame frame, Rect area, List<HeapEntry> visible) {
+ long visibleInstances = 0;
+ long visibleBytes = 0;
+ for (HeapEntry e : visible) {
+ visibleInstances += e.instances;
+ visibleBytes += e.bytes;
+ }
+
List<Span> spans = new ArrayList<>();
spans.add(Span.styled(" Classes: ", Style.EMPTY.fg(Color.YELLOW).bold()));
- spans.add(Span.styled(String.valueOf(allEntries.size()), Style.EMPTY.fg(Color.WHITE)));
- spans.add(Span.raw(" "));
- spans.add(Span.styled("Showing: ", Style.EMPTY.fg(Color.YELLOW).bold()));
spans.add(Span.styled(String.valueOf(visible.size()), Style.EMPTY.fg(Color.WHITE)));
spans.add(Span.raw(" "));
- spans.add(Span.styled("Total Instances: ", Style.EMPTY.fg(Color.YELLOW).bold()));
- spans.add(Span.styled(formatNumber(totalInstances), Style.EMPTY.fg(Color.WHITE)));
+ spans.add(Span.styled("Instances: ", Style.EMPTY.fg(Color.YELLOW).bold()));
+ spans.add(Span.styled(formatNumber(visibleInstances), Style.EMPTY.fg(Color.WHITE)));
spans.add(Span.raw(" "));
- spans.add(Span.styled("Total Bytes: ", Style.EMPTY.fg(Color.YELLOW).bold()));
- spans.add(Span.styled(formatBytes(totalBytes), Style.EMPTY.fg(Color.WHITE)));
+ spans.add(Span.styled("Bytes: ", Style.EMPTY.fg(Color.YELLOW).bold()));
+ spans.add(Span.styled(formatBytes(visibleBytes), Style.EMPTY.fg(Color.WHITE)));
frame.renderWidget(Paragraph.from(Line.from(spans)), area);
}