Skip to content

Implement dynamic table attributes to generalize the graphic-specific Table type#4050

Open
Keavon wants to merge 5 commits intomasterfrom
attributes
Open

Implement dynamic table attributes to generalize the graphic-specific Table type#4050
Keavon wants to merge 5 commits intomasterfrom
attributes

Conversation

@Keavon
Copy link
Copy Markdown
Member

@Keavon Keavon commented Apr 25, 2026

Closes #1173, as well as its parent: closes #1832.

Copy link
Copy Markdown
Contributor

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request refactors the Table and TableRow structures to utilize a dynamic, columnar attribute system instead of fixed fields. However, the review highlights several critical issues that must be addressed. The TableRowMut implementation and its iterator are currently unsound, as they allow for multiple mutable references to the same data and potential data races. There are also bugs regarding invariant maintenance in AttributeColumn::push and significant data loss during serialization because the new attributes are ignored. Additionally, the find_or_create_column method causes silent data loss and disrupts attribute ordering upon type mismatches.

Comment on lines 953 to +958
pub struct TableRowMut<'a, T> {
pub element: &'a mut T,
pub transform: &'a mut DAffine2,
pub alpha_blending: &'a mut AlphaBlending,
pub source_node_id: &'a mut Option<NodeId>,
element: &'a mut T,
index: usize,
columns: *mut AttributeColumns,
_marker: std::marker::PhantomData<&'a mut AttributeColumns>,
}
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

critical

The implementation of TableRowMut and its associated iterator TableRowIterMut is unsound. The iterator yields multiple TableRowMut instances that all share a raw mutable pointer to the same AttributeColumns store. This allows the creation of multiple overlapping mutable references (&mut AttributeColumns) to the same data, which is a violation of Rust's memory safety guarantees and leads to undefined behavior. Furthermore, the manual Send implementations (line 1117) allow these rows to be mutated concurrently from different threads without synchronization, causing data races.

Comment on lines +149 to +153
fn push(&mut self, value: Box<dyn AttributeValue>) {
if let Ok(value) = value.into_any().downcast::<T>() {
self.0.push(*value);
}
}
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

critical

This implementation breaks the fundamental invariant of AttributeColumns that all columns must have the same length. If the downcast fails due to a type mismatch, no value is pushed to the column, causing it to become shorter than the others. This will lead to out-of-bounds access or panics in subsequent operations. A default value should be pushed if the type does not match. The same issue exists in the extend method on line 166.

Suggested change
fn push(&mut self, value: Box<dyn AttributeValue>) {
if let Ok(value) = value.into_any().downcast::<T>() {
self.0.push(*value);
}
}
fn push(&mut self, value: Box<dyn AttributeValue>) {
if let Ok(value) = value.into_any().downcast::<T>() {
self.0.push(*value);
} else {
self.0.push(T::default());
}
}

Comment thread node-graph/libraries/core-types/src/table.rs
Comment on lines +401 to +410
fn find_or_create_column<T: Clone + Send + Sync + Default + Debug + 'static>(&mut self, key: &str) -> usize {
match self.columns.iter().position(|(k, _)| k == key) {
Some(position) => {
if (*self.columns[position].1).as_any().downcast_ref::<Column<T>>().is_some() {
position
} else {
self.columns.remove(position);
self.columns.push((key.to_string(), Box::new(Column::<T>(vec![T::default(); self.len]))));
self.columns.len() - 1
}
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

high

This method causes silent data loss and disrupts column ordering. If a column with the requested key exists but has a different type, the entire column is deleted and replaced with defaults. This destroys existing data for all rows without warning. Additionally, by removing and re-pushing the column, its relative order in the table is changed, which may affect UI presentation. Type mismatches should be handled more gracefully, perhaps by returning a Result.

@Keavon Keavon changed the title Attributes Implement dynamic table attributes to generalize the graphic-specific Table type Apr 25, 2026
Copy link
Copy Markdown
Contributor

@cubic-dev-ai cubic-dev-ai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

8 issues found across 76 files

Confidence score: 1/5

  • node-graph/libraries/core-types/src/table.rs has a severity 10 issue with a manual Send impl on TableRowMut that appears unsound; shared unsynchronized raw pointers can allow concurrent mutation and undefined behavior, which is merge-blocking risk.
  • Two high-confidence invariant bugs in node-graph/libraries/core-types/src/table.rs (Column<T>::extend and Column<T>::push) silently skip type-mismatched writes while AttributeColumns::len still increments, creating concrete out-of-bounds/regression risk later.
  • There are additional user-impacting correctness/perf issues (Image to Bytes dropping alpha in node-graph/nodes/gstd/src/platform_application_io.rs, plus row-cloning overhead in raster/texture paths), so this is not just housekeeping.
  • Pay close attention to node-graph/libraries/core-types/src/table.rs, node-graph/nodes/gstd/src/platform_application_io.rs, node-graph/libraries/wgpu-executor/src/texture_conversion.rs, and node-graph/nodes/raster/src/std_nodes.rs - memory-safety, data-integrity, and output-format correctness are at risk.

Note: This PR contains a large number of files. cubic only reviews up to 75 files per PR, so some files may not have been reviewed. cubic prioritises the most important files to review.

Prompt for AI agents (unresolved issues)

Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.


<file name="node-graph/nodes/gstd/src/platform_application_io.rs">

<violation number="1" location="node-graph/nodes/gstd/src/platform_application_io.rs:123">
P2: `Image to Bytes` currently serializes each pixel as RGB (3 bytes) instead of RGBA (4 bytes), so alpha is lost and output length is incorrect for RGBA consumers.</violation>
</file>

<file name="editor/src/messages/portfolio/document/overlays/utility_types_native.rs">

<violation number="1" location="editor/src/messages/portfolio/document/overlays/utility_types_native.rs:1178">
P2: Avoid repeated per-segment transform attribute cloning inside the inner loop; compute it once per row.</violation>
</file>

<file name="node-graph/nodes/raster/src/std_nodes.rs">

<violation number="1" location="node-graph/nodes/raster/src/std_nodes.rs:122">
P2: Avoid cloning the full raster row when only attributes are needed; this adds unnecessary image-buffer copies in `combine_channels`.</violation>
</file>

<file name="node-graph/libraries/wgpu-executor/src/texture_conversion.rs">

<violation number="1" location="node-graph/libraries/wgpu-executor/src/texture_conversion.rs:157">
P2: Avoid `row.into_cloned()` here; it clones the entire CPU raster just to copy attributes, causing unnecessary per-row image duplication and extra memory/CPU overhead.</violation>
</file>

<file name="node-graph/libraries/core-types/src/table.rs">

<violation number="1" location="node-graph/libraries/core-types/src/table.rs:149">
P1: Silent downcast failure in `Column<T>::push` breaks the column-length invariant. When the type doesn't match, no value is pushed but `AttributeColumns::len` still increments, causing later out-of-bounds accesses. Push a default on mismatch to maintain the invariant.</violation>

<violation number="2" location="node-graph/libraries/core-types/src/table.rs:166">
P1: Silent downcast failure in `Column<T>::extend` breaks the column-length invariant. When two tables have the same attribute key but different types, the column silently skips the extend while `AttributeColumns::len` still grows. Pad with defaults on mismatch.</violation>

<violation number="3" location="node-graph/libraries/core-types/src/table.rs:1117">
P0: The manual `Send` impl on `TableRowMut` is unsound because rows share an unsynchronized raw pointer to `AttributeColumns`, enabling concurrent mutation and undefined behavior.</violation>
</file>

<file name="node-graph/graph-craft/Cargo.toml">

<violation number="1" location="node-graph/graph-craft/Cargo.toml:25">
P3: Custom agent: **PR title enforcement**

PR title is not in the required imperative verb form.</violation>
</file>

Reply with feedback, questions, or to request a fix. Tag @cubic-dev-ai to re-run a review.

// for `'a`, and `AttributeColumns` is `Send`. The pointer is only used to split the borrow between
// the element slice and the column store, which are disjoint fields.
unsafe impl<T: Send> Send for TableRowIterMut<'_, T> {}
unsafe impl<T: Send> Send for TableRowMut<'_, T> {}
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P0: The manual Send impl on TableRowMut is unsound because rows share an unsynchronized raw pointer to AttributeColumns, enabling concurrent mutation and undefined behavior.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At node-graph/libraries/core-types/src/table.rs, line 1117:

<comment>The manual `Send` impl on `TableRowMut` is unsound because rows share an unsynchronized raw pointer to `AttributeColumns`, enabling concurrent mutation and undefined behavior.</comment>

<file context>
@@ -237,88 +721,397 @@ unsafe impl<T: StaticTypeSized> StaticType for Table<T> {
+// for `'a`, and `AttributeColumns` is `Send`. The pointer is only used to split the borrow between
+// the element slice and the column store, which are disjoint fields.
+unsafe impl<T: Send> Send for TableRowIterMut<'_, T> {}
+unsafe impl<T: Send> Send for TableRowMut<'_, T> {}
</file context>

}

/// Appends all values from another column, downcasting it to the same `Column<T>` type.
fn extend(&mut self, other: Box<dyn AttributeColumn>) {
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1: Silent downcast failure in Column<T>::extend breaks the column-length invariant. When two tables have the same attribute key but different types, the column silently skips the extend while AttributeColumns::len still grows. Pad with defaults on mismatch.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At node-graph/libraries/core-types/src/table.rs, line 166:

<comment>Silent downcast failure in `Column<T>::extend` breaks the column-length invariant. When two tables have the same attribute key but different types, the column silently skips the extend while `AttributeColumns::len` still grows. Pad with defaults on mismatch.</comment>

<file context>
@@ -1,137 +1,651 @@
+	}
+
+	/// Appends all values from another column, downcasting it to the same `Column<T>` type.
+	fn extend(&mut self, other: Box<dyn AttributeColumn>) {
+		if let Ok(other) = (other as Box<dyn std::any::Any>).downcast::<Self>() {
+			self.0.extend(other.0);
</file context>

Comment on lines +149 to +152
fn push(&mut self, value: Box<dyn AttributeValue>) {
if let Ok(value) = value.into_any().downcast::<T>() {
self.0.push(*value);
}
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1: Silent downcast failure in Column<T>::push breaks the column-length invariant. When the type doesn't match, no value is pushed but AttributeColumns::len still increments, causing later out-of-bounds accesses. Push a default on mismatch to maintain the invariant.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At node-graph/libraries/core-types/src/table.rs, line 149:

<comment>Silent downcast failure in `Column<T>::push` breaks the column-length invariant. When the type doesn't match, no value is pushed but `AttributeColumns::len` still increments, causing later out-of-bounds accesses. Push a default on mismatch to maintain the invariant.</comment>

<file context>
@@ -1,137 +1,651 @@
+	}
+
+	/// Pushes a scalar attribute value onto the end of this column, downcasting it to `T`.
+	fn push(&mut self, value: Box<dyn AttributeValue>) {
+		if let Ok(value) = value.into_any().downcast::<T>() {
+			self.0.push(*value);
</file context>
Suggested change
fn push(&mut self, value: Box<dyn AttributeValue>) {
if let Ok(value) = value.into_any().downcast::<T>() {
self.0.push(*value);
}
fn push(&mut self, value: Box<dyn AttributeValue>) {
if let Ok(value) = value.into_any().downcast::<T>() {
self.0.push(*value);
} else {
self.0.push(T::default());
}

fn image_to_bytes(_: impl Ctx, image: Table<Raster<CPU>>) -> Vec<u8> {
let Some(image) = image.iter().next() else { return vec![] };
image.element.data.iter().flat_map(|color| color.to_rgb8_srgb().into_iter()).collect::<Vec<u8>>()
image.element().data.iter().flat_map(|color| color.to_rgb8_srgb().into_iter()).collect::<Vec<u8>>()
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2: Image to Bytes currently serializes each pixel as RGB (3 bytes) instead of RGBA (4 bytes), so alpha is lost and output length is incorrect for RGBA consumers.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At node-graph/nodes/gstd/src/platform_application_io.rs, line 123:

<comment>`Image to Bytes` currently serializes each pixel as RGB (3 bytes) instead of RGBA (4 bytes), so alpha is lost and output length is incorrect for RGBA consumers.</comment>

<file context>
@@ -120,7 +120,7 @@ fn string_to_bytes(_: impl Ctx, string: String) -> Vec<u8> {
 fn image_to_bytes(_: impl Ctx, image: Table<Raster<CPU>>) -> Vec<u8> {
 	let Some(image) = image.iter().next() else { return vec![] };
-	image.element.data.iter().flat_map(|color| color.to_rgb8_srgb().into_iter()).collect::<Vec<u8>>()
+	image.element().data.iter().flat_map(|color| color.to_rgb8_srgb().into_iter()).collect::<Vec<u8>>()
 }
 
</file context>
Suggested change
image.element().data.iter().flat_map(|color| color.to_rgb8_srgb().into_iter()).collect::<Vec<u8>>()
image.element().data.iter().flat_map(|color| color.to_rgba8_srgb().into_iter()).collect::<Vec<u8>>()

last_point = Some(end_id);

self.bezier_to_path(bezier, *row.transform, move_to, &mut path);
self.bezier_to_path(bezier, row.attribute_cloned_or_default("transform"), move_to, &mut path);
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2: Avoid repeated per-segment transform attribute cloning inside the inner loop; compute it once per row.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At editor/src/messages/portfolio/document/overlays/utility_types_native.rs, line 1178:

<comment>Avoid repeated per-segment transform attribute cloning inside the inner loop; compute it once per row.</comment>

<file context>
@@ -1171,11 +1171,11 @@ impl OverlayContextInternal {
 				last_point = Some(end_id);
 
-				self.bezier_to_path(bezier, *row.transform, move_to, &mut path);
+				self.bezier_to_path(bezier, row.attribute_cloned_or_default("transform"), move_to, &mut path);
 			}
 
</file context>

.iter()
.find_map(|i| i.as_ref())
.map(|i| (i.transform, i.alpha_blending, i.source_node_id))?;
let (_, attributes) = [&red, &green, &blue, &alpha].iter().find_map(|i| i.as_ref()).map(|i| i.clone().into_parts())?;
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2: Avoid cloning the full raster row when only attributes are needed; this adds unnecessary image-buffer copies in combine_channels.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At node-graph/nodes/raster/src/std_nodes.rs, line 122:

<comment>Avoid cloning the full raster row when only attributes are needed; this adds unnecessary image-buffer copies in `combine_channels`.</comment>

<file context>
@@ -114,23 +113,20 @@ pub fn combine_channels(
-				.iter()
-				.find_map(|i| i.as_ref())
-				.map(|i| (i.transform, i.alpha_blending, i.source_node_id))?;
+			let (_, attributes) = [&red, &green, &blue, &alpha].iter().find_map(|i| i.as_ref()).map(|i| i.clone().into_parts())?;
 
 			// Get the common width and height of the channels, which must have equal dimensions
</file context>
Suggested change
let (_, attributes) = [&red, &green, &blue, &alpha].iter().find_map(|i| i.as_ref()).map(|i| i.clone().into_parts())?;
let attributes = [&red, &green, &blue, &alpha].iter().find_map(|i| i.as_ref()).map(|i| i.attributes().clone())?;

let image = row.element;
let image = row.element();
let texture = upload_to_texture(device, queue, image);
let (_, attributes) = row.into_cloned().into_parts();
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2: Avoid row.into_cloned() here; it clones the entire CPU raster just to copy attributes, causing unnecessary per-row image duplication and extra memory/CPU overhead.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At node-graph/libraries/wgpu-executor/src/texture_conversion.rs, line 157:

<comment>Avoid `row.into_cloned()` here; it clones the entire CPU raster just to copy attributes, causing unnecessary per-row image duplication and extra memory/CPU overhead.</comment>

<file context>
@@ -152,15 +152,11 @@ impl<'i> Convert<Table<Raster<GPU>>, &'i WgpuExecutor> for Table<Raster<CPU>> {
-				let image = row.element;
+				let image = row.element();
 				let texture = upload_to_texture(device, queue, image);
+				let (_, attributes) = row.into_cloned().into_parts();
 
-				TableRow {
</file context>

Comment thread node-graph/graph-craft/Cargo.toml
@github-actions
Copy link
Copy Markdown

Performance Benchmark Results

🔧 Graph Compilation

compile_demo_art_iai::compile_group::compile_to_proto with_setup_0:load_from_name(isometric-fountain)
Instructions: 27,457,298 (master) → 27,452,034 (HEAD) : $$\color{lime}-0.02\%$$

Detailed metrics
Baselines:                master|       HEAD
D1MissRate                     4|          4          +0.00%
D1mr                     361,792|    361,941          +0.04%
D1mw                     112,828|    112,871          +0.04%
DLmr                      31,899|     32,192          +0.92%
DLmw                      62,623|     47,017         -24.92%
Dr                     6,815,342|  6,816,574          +0.02%
Dw                     4,736,803|  4,739,827          +0.06%
EstimatedCycles       43,929,191| 43,471,929          -1.04%
I1MissRate                     0|          0          +1.23%
I1mr                      40,282|     40,769          +1.21%
ILmr                         816|        830          +1.72%
Ir                    27,457,298| 27,452,034          -0.02%
L1HitRate                     99|         99          -0.00%
L1hits                38,494,541| 38,492,854          -0.00%
LLHitRate                      1|          1          +3.81%
LLMissRate                     0|          0         -16.04%
LLdMissRate                    1|          1         -16.23%
LLhits                   419,564|    435,542          +3.81%
LLiMissRate                    0|          0          +1.74%
RamHitRate                     0|          0         -16.04%
RamHits                   95,338|     80,039         -16.05%
TotalRW               39,009,443| 39,008,435          -0.00%

compile_demo_art_iai::compile_group::compile_to_proto with_setup_1:load_from_name(painted-dreams)
Instructions: 13,874,041 (master) → 13,911,400 (HEAD) : $$\color{red}+0.27\%$$

Detailed metrics
Baselines:                master|       HEAD
D1MissRate                     4|          4          +2.13%
D1mr                     172,431|    178,040          +3.25%
D1mw                      54,639|     54,256          -0.70%
DLmr                         757|        974         +28.67%
DLmw                      15,459|     14,542          -5.93%
Dr                     3,446,329|  3,451,980          +0.16%
Dw                     2,384,512|  2,388,527          +0.17%
EstimatedCycles       21,200,478| 21,245,891          +0.21%
I1MissRate                     0|          0          -2.00%
I1mr                      20,064|     19,715          -1.74%
ILmr                         686|        682          -0.58%
Ir                    13,874,041| 13,911,400          +0.27%
L1HitRate                     99|         99          -0.02%
L1hits                19,457,748| 19,499,896          +0.22%
LLHitRate                      1|          1          +2.18%
LLMissRate                     0|          0          -4.39%
LLdMissRate                    0|          0          -4.48%
LLhits                   230,232|    235,813          +2.42%
LLiMissRate                    0|          0          -0.85%
RamHitRate                     0|          0          -4.39%
RamHits                   16,902|     16,198          -4.17%
TotalRW               19,704,882| 19,751,907          +0.24%

compile_demo_art_iai::compile_group::compile_to_proto with_setup_2:load_from_name(procedural-string-lights)
Instructions: 3,073,191 (master) → 3,080,112 (HEAD) : $$\color{red}+0.23\%$$

Detailed metrics
Baselines:                master|       HEAD
D1MissRate                     4|          4          +1.88%
D1mr                      36,781|     38,244          +3.98%
D1mw                      11,212|     10,741          -4.20%
DLmr                          15|         17         +13.33%
DLmw                       3,017|      2,909          -3.58%
Dr                       752,066|    753,659          +0.21%
Dw                       522,697|    523,408          +0.14%
EstimatedCycles        4,668,278|  4,678,973          +0.23%
I1MissRate                     0|          0          +3.96%
I1mr                       4,248|      4,426          +4.19%
ILmr                         680|        679          -0.15%
Ir                     3,073,191|  3,080,112          +0.23%
L1HitRate                     99|         99          -0.02%
L1hits                 4,295,713|  4,303,768          +0.19%
LLHitRate                      1|          1          +2.41%
LLMissRate                     0|          0          -3.09%
LLdMissRate                    0|          0          -3.67%
LLhits                    48,529|     49,806          +2.63%
LLiMissRate                    0|          0          -0.37%
RamHitRate                     0|          0          -3.09%
RamHits                    3,712|      3,605          -2.88%
TotalRW                4,347,954|  4,357,179          +0.21%

compile_demo_art_iai::compile_group::compile_to_proto with_setup_3:load_from_name(parametric-dunescape)
Instructions: 13,978,430 (master) → 13,891,127 (HEAD) : $$\color{lime}-0.62\%$$

Detailed metrics
Baselines:                master|       HEAD
D1MissRate                     4|          4          -1.00%
D1mr                     190,883|    185,974          -2.57%
D1mw                      56,983|     58,131          +2.01%
DLmr                          59|         90         +52.54%
DLmw                      14,081|     14,663          +4.13%
Dr                     3,425,729|  3,405,038          -0.60%
Dw                     2,404,688|  2,394,835          -0.41%
EstimatedCycles       21,312,399| 21,198,532          -0.53%
I1MissRate                     0|          0          +1.76%
I1mr                      16,062|     16,243          +1.13%
ILmr                         788|        785          -0.38%
Ir                    13,978,430| 13,891,127          -0.62%
L1HitRate                     99|         99          +0.01%
L1hits                19,544,919| 19,430,652          -0.58%
LLHitRate                      1|          1          -1.09%
LLMissRate                     0|          0          +4.71%
LLdMissRate                    0|          0          +4.88%
LLhits                   249,000|    244,810          -1.68%
LLiMissRate                    0|          0          +0.25%
RamHitRate                     0|          0          +4.71%
RamHits                   14,928|     15,538          +4.09%
TotalRW               19,808,847| 19,691,000          -0.59%

compile_demo_art_iai::compile_group::compile_to_proto with_setup_4:load_from_name(red-dress)
Instructions: 31,912,790 (master) → 32,042,975 (HEAD) : $$\color{red}+0.41\%$$

Detailed metrics
Baselines:                master|       HEAD
D1MissRate                     4|          4          +1.27%
D1mr                     416,495|    429,812          +3.20%
D1mw                     129,754|    125,461          -3.31%
DLmr                      43,493|     43,943          +1.03%
DLmw                      56,829|     57,964          +2.00%
Dr                     7,891,315|  7,923,094          +0.40%
Dw                     5,493,722|  5,512,999          +0.35%
EstimatedCycles       50,695,685| 50,963,942          +0.53%
I1MissRate                     0|          0          +1.19%
I1mr                      44,628|     45,343          +1.60%
ILmr                         823|        840          +2.07%
Ir                    31,912,790| 32,042,975          +0.41%
L1HitRate                     99|         99          -0.02%
L1hits                44,706,950| 44,878,452          +0.38%
LLHitRate                      1|          1          +1.26%
LLMissRate                     0|          0          +1.18%
LLdMissRate                    1|          1          +1.19%
LLhits                   489,732|    497,869          +1.66%
LLiMissRate                    0|          0          +1.65%
RamHitRate                     0|          0          +1.18%
RamHits                  101,145|    102,747          +1.58%
TotalRW               45,297,827| 45,479,068          +0.40%

compile_demo_art_iai::compile_group::compile_to_proto with_setup_5:load_from_name(valley-of-spires)
Instructions: 21,098,354 (master) → 21,183,253 (HEAD) : $$\color{red}+0.40\%$$

Detailed metrics
Baselines:                master|       HEAD
D1MissRate                     4|          4          +1.40%
D1mr                     268,525|    277,611          +3.38%
D1mw                      80,413|     77,329          -3.84%
DLmr                      15,500|     15,854          +2.28%
DLmw                      36,072|     37,771          +4.71%
Dr                     5,239,515|  5,256,559          +0.33%
Dw                     3,636,119|  3,647,274          +0.31%
EstimatedCycles       33,060,334| 33,260,462          +0.61%
I1MissRate                     0|          0          +0.84%
I1mr                      30,031|     30,404          +1.24%
ILmr                         777|        775          -0.26%
Ir                    21,098,354| 21,183,253          +0.40%
L1HitRate                     99|         99          -0.02%
L1hits                29,595,019| 29,701,742          +0.36%
LLHitRate                      1|          1          +0.94%
LLMissRate                     0|          0          +3.53%
LLdMissRate                    1|          1          +3.65%
LLhits                   326,620|    330,944          +1.32%
LLiMissRate                    0|          0          -0.66%
RamHitRate                     0|          0          +3.53%
RamHits                   52,349|     54,400          +3.92%
TotalRW               29,973,988| 30,087,086          +0.38%

🔄 Executor Update

update_executor_iai::update_group::update_executor with_setup_0:setup_update_executor(isometric-fountain)
Instructions: 50,839,868 (master) → 51,151,456 (HEAD) : $$\color{red}+0.61\%$$

Detailed metrics
Baselines:                master|       HEAD
D1MissRate                     3|          3          -0.81%
D1mr                     561,715|    566,216          +0.80%
D1mw                     129,289|    130,082          +0.61%
DLmr                       4,243|      4,887         +15.18%
DLmw                      21,774|     24,024         +10.33%
Dr                    13,086,906| 13,266,037          +1.37%
Dw                     8,866,333|  9,035,760          +1.91%
EstimatedCycles       76,473,011| 77,306,405          +1.09%
I1MissRate                     0|          0         +49.56%
I1mr                      32,082|     48,275         +50.47%
ILmr                         235|        251          +6.81%
Ir                    50,839,868| 51,151,456          +0.61%
L1HitRate                     99|         99          -0.02%
L1hits                72,070,021| 72,708,680          +0.89%
LLHitRate                      1|          1          +1.74%
LLMissRate                     0|          0         +10.09%
LLdMissRate                    0|          0          +9.39%
LLhits                   696,834|    715,411          +2.67%
LLiMissRate                    0|          0          +6.16%
RamHitRate                     0|          0         +10.09%
RamHits                   26,252|     29,162         +11.08%
TotalRW               72,793,107| 73,453,253          +0.91%

update_executor_iai::update_group::update_executor with_setup_1:setup_update_executor(painted-dreams)
Instructions: 25,221,806 (master) → 25,288,490 (HEAD) : $$\color{red}+0.26\%$$

Detailed metrics
Baselines:                master|       HEAD
D1MissRate                     3|          3          +0.39%
D1mr                     269,617|    271,564          +0.72%
D1mw                      61,460|     61,772          +0.51%
DLmr                         878|        925          +5.35%
DLmw                       4,270|      3,971          -7.00%
Dr                     6,526,393|  6,542,392          +0.25%
Dw                     4,438,050|  4,454,136          +0.36%
EstimatedCycles       37,746,929| 37,871,670          +0.33%
I1MissRate                     0|          0         +31.45%
I1mr                      19,163|     25,257         +31.80%
ILmr                         176|        180          +2.27%
Ir                    25,221,806| 25,288,490          +0.26%
L1HitRate                     99|         99          -0.02%
L1hits                35,836,009| 35,926,425          +0.25%
LLHitRate                      1|          1          +2.21%
LLMissRate                     0|          0          -4.92%
LLdMissRate                    0|          0          -5.17%
LLhits                   344,916|    353,517          +2.49%
LLiMissRate                    0|          0          +2.00%
RamHitRate                     0|          0          -4.92%
RamHits                    5,324|      5,076          -4.66%
TotalRW               36,186,249| 36,285,018          +0.27%

update_executor_iai::update_group::update_executor with_setup_2:setup_update_executor(procedural-string-lights)
Instructions: 6,393,605 (master) → 6,383,392 (HEAD) : $$\color{lime}-0.16\%$$

Detailed metrics
Baselines:                master|       HEAD
D1MissRate                     3|          3          -1.47%
D1mr                      64,764|     63,593          -1.81%
D1mw                      16,042|     15,953          -0.55%
DLmr                           1|          3        +200.00%
DLmw                         521|        541          +3.84%
Dr                     1,638,518|  1,636,278          -0.14%
Dw                     1,116,956|  1,116,601          -0.03%
EstimatedCycles        9,515,889|  9,507,873          -0.08%
I1MissRate                     0|          0         +39.88%
I1mr                       5,669|      7,917         +39.65%
ILmr                         175|        181          +3.43%
Ir                     6,393,605|  6,383,392          -0.16%
L1HitRate                     99|         99          -0.01%
L1hits                 9,062,604|  9,048,808          -0.15%
LLHitRate                      1|          1          +1.26%
LLMissRate                     0|          0          +4.16%
LLdMissRate                    0|          0          +4.31%
LLhits                    85,778|     86,738          +1.12%
LLiMissRate                    0|          0          +3.59%
RamHitRate                     0|          0          +4.16%
RamHits                      697|        725          +4.02%
TotalRW                9,149,079|  9,136,271          -0.14%

update_executor_iai::update_group::update_executor with_setup_3:setup_update_executor(parametric-dunescape)
Instructions: 27,660,219 (master) → 27,751,391 (HEAD) : $$\color{red}+0.33\%$$

Detailed metrics
Baselines:                master|       HEAD
D1MissRate                     3|          3          -0.34%
D1mr                     288,223|    287,826          -0.14%
D1mw                      71,848|     72,737          +1.24%
DLmr                         167|        114         -31.74%
DLmw                       5,474|      7,088         +29.48%
Dr                     7,127,242|  7,154,288          +0.38%
Dw                     4,909,937|  4,940,834          +0.63%
EstimatedCycles       41,372,512| 41,599,901          +0.55%
I1MissRate                     0|          0         +47.99%
I1mr                      15,140|     22,479         +48.47%
ILmr                         168|        172          +2.38%
Ir                    27,660,219| 27,751,391          +0.33%
L1HitRate                     99|         99          -0.02%
L1hits                39,322,187| 39,463,471          +0.36%
LLHitRate                      1|          1          +1.32%
LLMissRate                     0|          0         +26.47%
LLdMissRate                    0|          0         +27.06%
LLhits                   369,402|    375,668          +1.70%
LLiMissRate                    0|          0          +2.04%
RamHitRate                     0|          0         +26.47%
RamHits                    5,809|      7,374         +26.94%
TotalRW               39,697,398| 39,846,513          +0.38%

update_executor_iai::update_group::update_executor with_setup_4:setup_update_executor(red-dress)
Instructions: 60,022,800 (master) → 60,119,727 (HEAD) : $$\color{red}+0.16\%$$

Detailed metrics
Baselines:                master|       HEAD
D1MissRate                     3|          3          +0.99%
D1mr                     655,129|    657,152          +0.31%
D1mw                     154,480|    149,561          -3.18%
DLmr                      11,938|     11,666          -2.28%
DLmw                      29,575|     27,533          -6.90%
Dr                    15,529,360| 15,360,625          -1.09%
Dw                    10,526,185| 10,346,037          -1.71%
EstimatedCycles       90,717,915| 90,445,023          -0.30%
I1MissRate                     0|          0         +40.17%
I1mr                      36,281|     50,938         +40.40%
ILmr                         354|        402         +13.56%
Ir                    60,022,800| 60,119,727          +0.16%
L1HitRate                     99|         99          -0.02%
L1hits                85,232,455| 84,968,738          -0.31%
LLHitRate                      1|          1          +2.04%
LLMissRate                     0|          0          -5.13%
LLdMissRate                    0|          0          -4.29%
LLhits                   804,023|    818,050          +1.74%
LLiMissRate                    0|          0         +13.38%
RamHitRate                     0|          0          -5.13%
RamHits                   41,867|     39,601          -5.41%
TotalRW               86,078,345| 85,826,389          -0.29%

update_executor_iai::update_group::update_executor with_setup_5:setup_update_executor(valley-of-spires)
Instructions: 37,081,542 (master) → 37,157,167 (HEAD) : $$\color{red}+0.20\%$$

Detailed metrics
Baselines:                master|       HEAD
D1MissRate                     3|          3          -1.27%
D1mr                     410,403|    405,345          -1.23%
D1mw                      91,738|     92,206          +0.51%
DLmr                       2,533|      2,616          +3.28%
DLmw                      13,493|     10,211         -24.32%
Dr                     9,504,246|  9,530,459          +0.28%
Dw                     6,404,425|  6,435,223          +0.48%
EstimatedCycles       55,589,051| 55,649,155          +0.11%
I1MissRate                     0|          0         +40.07%
I1mr                      25,911|     36,368         +40.36%
ILmr                         195|        194          -0.51%
Ir                    37,081,542| 37,157,167          +0.20%
L1HitRate                     99|         99          -0.01%
L1hits                52,462,161| 52,588,930          +0.24%
LLHitRate                      1|          1          +1.52%
LLMissRate                     0|          0         -19.93%
LLdMissRate                    0|          0         -20.25%
LLhits                   511,831|    520,898          +1.77%
LLiMissRate                    0|          0          -0.72%
RamHitRate                     0|          0         -19.93%
RamHits                   16,221|     13,021         -19.73%
TotalRW               52,990,213| 53,122,849          +0.25%

🚀 Render: Cold Execution

run_once_iai::run_once_group::run_once with_setup_0:setup_run_once(isometric-fountain)
Instructions: 24,921,266 (master) → 26,910,446 (HEAD) : $$\color{red}+7.98\%$$

Detailed metrics
Baselines:                master|       HEAD
D1MissRate                     3|          3          -2.44%
D1mr                     305,225|    317,767          +4.11%
D1mw                      67,252|     64,018          -4.81%
DLmr                      10,884|     12,368         +13.63%
DLmw                      10,751|     11,753          +9.32%
Dr                     6,563,600|  6,962,825          +6.08%
Dw                     4,488,663|  4,648,871          +3.57%
EstimatedCycles       38,916,337| 41,653,254          +7.03%
I1MissRate                     1|          1          +3.11%
I1mr                     151,575|    168,763         +11.34%
ILmr                       6,585|      6,843          +3.92%
Ir                    24,921,266| 26,910,446          +7.98%
L1HitRate                     99|         99          +0.03%
L1hits                35,449,477| 37,971,594          +7.11%
LLHitRate                      1|          1          -2.14%
LLMissRate                     0|          0          +2.46%
LLdMissRate                    0|          0          +6.12%
LLhits                   495,832|    519,584          +4.79%
LLiMissRate                    0|          0          -3.76%
RamHitRate                     0|          0          +2.46%
RamHits                   28,220|     30,964          +9.72%
TotalRW               35,973,529| 38,522,142          +7.08%

run_once_iai::run_once_group::run_once with_setup_1:setup_run_once(painted-dreams)
Instructions: 315,667,887 (master) → 319,587,905 (HEAD) : $$\color{red}+1.24\%$$

Detailed metrics
Baselines:                master|       HEAD
D1MissRate                     1|          1          -1.14%
D1mr                     788,716|    798,527          +1.24%
D1mw                     484,112|    475,426          -1.79%
DLmr                      13,070|     14,929         +14.22%
DLmw                      51,265|     54,566          +6.44%
Dr                    62,399,994| 63,242,967          +1.35%
Dw                    38,026,104| 38,429,814          +1.06%
EstimatedCycles      431,840,715|437,932,788          +1.41%
I1MissRate                     1|          1          +7.58%
I1mr                   2,113,602|  2,302,015          +8.91%
ILmr                       9,032|      9,446          +4.58%
Ir                   315,667,887|319,587,905          +1.24%
L1HitRate                     99|         99          -0.04%
L1hits               412,707,555|417,684,718          +1.21%
LLHitRate                      1|          1          +4.26%
LLMissRate                     0|          0          +6.28%
LLdMissRate                    0|          0          +6.70%
LLhits                 3,313,063|  3,497,027          +5.55%
LLiMissRate                    0|          0          +3.30%
RamHitRate                     0|          0          +6.28%
RamHits                   73,367|     78,941          +7.60%
TotalRW              416,093,985|421,260,686          +1.24%

run_once_iai::run_once_group::run_once with_setup_2:setup_run_once(procedural-string-lights)
Instructions: 11,103,333 (master) → 12,122,924 (HEAD) : $$\color{red}+9.18\%$$

Detailed metrics
Baselines:                master|       HEAD
D1MissRate                     2|          2          -1.58%
D1mr                      66,796|     72,367          +8.34%
D1mw                      24,958|     26,202          +4.98%
DLmr                         596|        691         +15.94%
DLmw                       1,063|      1,119          +5.27%
Dr                     2,784,212|  3,056,829          +9.79%
Dw                     2,025,015|  2,192,702          +8.28%
EstimatedCycles       16,698,838| 18,242,575          +9.24%
I1MissRate                     0|          1         +12.78%
I1mr                      53,658|     66,071         +23.13%
ILmr                       5,162|      5,242          +1.55%
Ir                    11,103,333| 12,122,924          +9.18%
L1HitRate                     99|         99          -0.03%
L1hits                15,767,148| 17,207,815          +9.14%
LLHitRate                      1|          1          +4.15%
LLMissRate                     0|          0          -5.30%
LLdMissRate                    0|          0          -0.05%
LLhits                   138,591|    157,588         +13.71%
LLiMissRate                    0|          0          -6.99%
RamHitRate                     0|          0          -5.30%
RamHits                    6,821|      7,052          +3.39%
TotalRW               15,912,560| 17,372,455          +9.17%

run_once_iai::run_once_group::run_once with_setup_3:setup_run_once(parametric-dunescape)
Instructions: 22,655,957 (master) → 22,565,545 (HEAD) : $$\color{lime}-0.40\%$$

Detailed metrics
Baselines:                master|       HEAD
D1MissRate                     2|          2          -2.29%
D1mr                     163,300|    159,992          -2.03%
D1mw                      65,339|     61,790          -5.43%
DLmr                       2,691|      2,629          -2.30%
DLmw                       6,118|      5,550          -9.28%
Dr                     5,490,088|  5,453,534          -0.67%
Dw                     3,748,915|  3,718,856          -0.80%
EstimatedCycles       33,487,544| 33,294,693          -0.58%
I1MissRate                     0|          0          +3.57%
I1mr                      71,587|     73,845          +3.15%
ILmr                       4,247|      4,296          +1.15%
Ir                    22,655,957| 22,565,545          -0.40%
L1HitRate                     99|         99          +0.01%
L1hits                31,594,734| 31,442,308          -0.48%
LLHitRate                      1|          1          -0.91%
LLMissRate                     0|          0          -3.98%
LLdMissRate                    0|          0          -6.48%
LLhits                   287,170|    283,152          -1.40%
LLiMissRate                    0|          0          +1.56%
RamHitRate                     0|          0          -3.98%
RamHits                   13,056|     12,475          -4.45%
TotalRW               31,894,960| 31,737,935          -0.49%

run_once_iai::run_once_group::run_once with_setup_4:setup_run_once(red-dress)
Instructions: 1,752,990,037 (master) → 1,766,533,879 (HEAD) : $$\color{red}+0.77\%$$

Detailed metrics
Baselines:                master|       HEAD
D1MissRate                     0|          0          +0.29%
D1mr                   1,930,968|  1,966,493          +1.84%
D1mw                     928,198|    922,950          -0.57%
DLmr                     450,157|    437,559          -2.80%
DLmw                     543,211|    526,641          -3.05%
Dr                   419,852,390|423,118,021          +0.78%
Dw                   275,127,836|277,163,232          +0.74%
EstimatedCycles      2,494,908,155|2,514,707,776          +0.79%
I1MissRate                     0|          0         +29.96%
I1mr                   1,378,877|  1,805,823         +30.96%
ILmr                       6,156|      6,186          +0.49%
Ir                   1,752,990,037|1,766,533,879          +0.77%
L1HitRate                    100|        100          -0.02%
L1hits               2,443,732,220|2,462,119,866          +0.75%
LLHitRate                      0|          0         +14.14%
LLMissRate                     0|          0          -3.66%
LLdMissRate                    0|          0          -3.67%
LLhits                 3,238,519|  3,724,880         +15.02%
LLiMissRate                    0|          0          -0.28%
RamHitRate                     0|          0          -3.66%
RamHits                  999,524|    970,386          -2.92%
TotalRW              2,447,970,263|2,466,815,132          +0.77%

run_once_iai::run_once_group::run_once with_setup_5:setup_run_once(valley-of-spires)
Instructions: 21,655,609 (master) → 23,353,351 (HEAD) : $$\color{red}+7.84\%$$

Detailed metrics
Baselines:                master|       HEAD
D1MissRate                     3|          3          -3.47%
D1mr                     233,137|    245,369          +5.25%
D1mw                      56,763|     55,280          -2.61%
DLmr                       5,681|      5,681          +0.00%
DLmw                       8,146|      6,541         -19.70%
Dr                     5,476,706|  5,912,684          +7.96%
Dw                     3,717,845|  3,965,741          +6.67%
EstimatedCycles       33,017,190| 35,443,606          +7.35%
I1MissRate                     1|          1          +2.14%
I1mr                     117,675|    129,616         +10.15%
ILmr                       4,064|      4,137          +1.80%
Ir                    21,655,609| 23,353,351          +7.84%
L1HitRate                     99|         99          +0.03%
L1hits                30,442,585| 32,801,511          +7.75%
LLHitRate                      1|          1          -1.40%
LLMissRate                     0|          0         -15.12%
LLdMissRate                    0|          0         -17.73%
LLhits                   389,684|    413,906          +6.22%
LLiMissRate                    0|          0          -5.60%
RamHitRate                     0|          0         -15.12%
RamHits                   17,891|     16,359          -8.56%
TotalRW               30,850,160| 33,231,776          +7.72%

⚡ Render: Cached Execution

run_cached_iai::run_cached_group::run_cached with_setup_0:setup_run_cached(isometric-fountain)
Instructions: 8,245,964 (master) → 9,081,787 (HEAD) : $$\color{red}+10.14\%$$

Detailed metrics
Baselines:                master|       HEAD
D1MissRate                     6|          5          -5.69%
D1mr                     212,780|    219,754          +3.28%
D1mw                       3,381|      3,455          +2.19%
DLmr                       4,406|      5,229         +18.68%
DLmw                          81|        143         +76.54%
Dr                     2,387,014|  2,620,863          +9.80%
Dw                     1,327,492|  1,446,165          +8.94%
EstimatedCycles       12,968,506| 14,211,499          +9.58%
I1MissRate                     0|          0          -9.37%
I1mr                         538|        537          -0.19%
ILmr                         221|        218          -1.36%
Ir                     8,245,964|  9,081,787         +10.14%
L1HitRate                     98|         98          +0.11%
L1hits                11,743,771| 12,925,069         +10.06%
LLHitRate                      2|          2          -6.39%
LLMissRate                     0|          0          +8.00%
LLdMissRate                    0|          0          +9.35%
LLhits                   211,991|    218,156          +2.91%
LLiMissRate                    0|          0         -10.44%
RamHitRate                     0|          0          +8.00%
RamHits                    4,708|      5,590         +18.73%
TotalRW               11,960,470| 13,148,815          +9.94%

run_cached_iai::run_cached_group::run_cached with_setup_1:setup_run_cached(painted-dreams)
Instructions: 6,279,265 (master) → 6,964,759 (HEAD) : $$\color{red}+10.92\%$$

Detailed metrics
Baselines:                master|       HEAD
D1MissRate                     5|          4          -5.28%
D1mr                     133,000|    138,207          +3.92%
D1mw                       3,843|      3,928          +2.21%
DLmr                      10,785|     11,234          +4.16%
DLmw                         112|         95         -15.18%
Dr                     1,884,127|  2,074,297         +10.09%
Dw                     1,072,689|  1,168,193          +8.90%
EstimatedCycles       10,119,593| 11,125,971          +9.94%
I1MissRate                     0|          0         -10.97%
I1mr                         560|        553          -1.25%
ILmr                         233|        270         +15.88%
Ir                     6,279,265|  6,964,759         +10.92%
L1HitRate                     99|         99          +0.09%
L1hits                 9,098,678| 10,064,561         +10.62%
LLHitRate                      1|          1          -6.06%
LLMissRate                     0|          0          -5.70%
LLdMissRate                    0|          0          -5.20%
LLhits                   126,273|    131,089          +3.81%
LLiMissRate                    0|          0          +4.47%
RamHitRate                     0|          0          -5.70%
RamHits                   11,130|     11,599          +4.21%
TotalRW                9,236,081| 10,207,249         +10.51%

run_cached_iai::run_cached_group::run_cached with_setup_2:setup_run_cached(parametric-dunescape)
Instructions: 3,582,380 (master) → 3,562,461 (HEAD) : $$\color{lime}-0.56\%$$

Detailed metrics
Baselines:                master|       HEAD
D1MissRate                     5|          5          +0.05%
D1mr                      90,377|     89,951          -0.47%
D1mw                       2,689|      2,685          -0.15%
DLmr                          27|         31         +14.81%
DLmw                         NaN|        NaN          +0.00%
Dr                     1,086,044|  1,080,335          -0.53%
Dw                       635,223|    632,068          -0.50%
EstimatedCycles        5,684,169|  5,653,582          -0.54%
I1MissRate                     0|          0          -0.65%
I1mr                         497|        491          -1.21%
ILmr                         182|        176          -3.30%
Ir                     3,582,380|  3,562,461          -0.56%
L1HitRate                     98|         98          -0.00%
L1hits                 5,210,084|  5,181,737          -0.54%
LLHitRate                      2|          2          +0.08%
LLMissRate                     0|          0          -0.42%
LLdMissRate                    0|          0         +15.41%
LLhits                    93,354|     92,920          -0.46%
LLiMissRate                    0|          0          -2.76%
RamHitRate                     0|          0          -0.42%
RamHits                      209|        207          -0.96%
TotalRW                5,303,647|  5,274,864          -0.54%

run_cached_iai::run_cached_group::run_cached with_setup_3:setup_run_cached(red-dress)
Instructions: 34,413,626 (master) → 35,120,720 (HEAD) : $$\color{red}+2.05\%$$

Detailed metrics
Baselines:                master|       HEAD
D1MissRate                     4|          4          +2.76%
D1mr                     600,819|    630,523          +4.94%
D1mw                      30,940|     31,341          +1.30%
DLmr                     263,647|    264,146          +0.19%
DLmw                       1,173|      1,298         +10.66%
Dr                     9,842,224| 10,037,551          +1.98%
Dw                     5,219,444|  5,318,320          +1.89%
EstimatedCycles       59,962,412| 61,103,413          +1.90%
I1MissRate                     0|          0          -0.91%
I1mr                         533|        539          +1.13%
ILmr                         445|        463          +4.04%
Ir                    34,413,626| 35,120,720          +2.05%
L1HitRate                     99|         99          -0.03%
L1hits                48,843,002| 49,814,188          +1.99%
LLHitRate                      1|          1          +5.89%
LLMissRate                     1|          1          -1.75%
LLdMissRate                    2|          2          -1.68%
LLhits                   367,027|    396,496          +8.03%
LLiMissRate                    0|          0          +1.95%
RamHitRate                     1|          1          -1.75%
RamHits                  265,265|    265,907          +0.24%
TotalRW               49,475,294| 50,476,591          +2.02%

run_cached_iai::run_cached_group::run_cached with_setup_4:setup_run_cached(valley-of-spires)
Instructions: 6,438,753 (master) → 7,090,808 (HEAD) : $$\color{red}+10.13\%$$

Detailed metrics
Baselines:                master|       HEAD
D1MissRate                     6|          5          -4.75%
D1mr                     159,512|    166,274          +4.24%
D1mw                       2,981|      3,038          +1.91%
DLmr                         396|        212         -46.46%
DLmw                          12|         11          -8.33%
Dr                     1,875,017|  2,057,152          +9.71%
Dw                     1,049,526|  1,141,963          +8.81%
EstimatedCycles       10,033,356| 10,982,007          +9.45%
I1MissRate                     0|          0         -10.59%
I1mr                         522|        514          -1.53%
ILmr                         192|        203          +5.73%
Ir                     6,438,753|  7,090,808         +10.13%
L1HitRate                     98|         98          +0.09%
L1hits                 9,200,281| 10,120,097         +10.00%
LLHitRate                      2|          2          -5.09%
LLMissRate                     0|          0         -35.39%
LLdMissRate                    0|          0         -50.03%
LLhits                   162,415|    169,400          +4.30%
LLiMissRate                    0|          0          -3.99%
RamHitRate                     0|          0         -35.39%
RamHits                      600|        426         -29.00%
TotalRW                9,363,296| 10,289,923          +9.90%

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Tables and attributes for graphical data Dynamic attributes on Table<T>

1 participant