perf-sentinel-core 0.9.7

Core library for perf-sentinel: polyglot performance anti-pattern detector
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
// GENERATED FILE - DO NOT EDIT BY HAND.
// Regenerate with: python3 scripts/refresh-instance-power.py
//
// `(instance_type, idle_watts, max_watts)` rows derived from the CCF
// per-architecture coefficients (`coefficients-{aws,gcp,azure}-use.csv`),
// snapshot 2026-04-24:
// https://github.com/cloud-carbon-footprint/ccf-coefficients/tree/b0032d928c78
//
// idle_watts = vCPU * idle_per_vcpu_coefficient (same for max).
// Memory-optimized families add the DRAM premium (+0.16/+0.40 per
// vCPU). Entries absent from the CCF CSVs live in
// `MANUAL_INSTANCE_ROWS` (table.rs). Full methodology in `table.rs`.

/// Surfaced in disclosure reports via `embedded_specpower_vintage` and
/// grep-audited by release procedure step 2.5. Stamped with the
/// ccf-coefficients HEAD commit date by the refresh script.
pub(crate) const SPECPOWER_VINTAGE: &str = "2026-04-24 (CCF aligned)";

pub(super) static GENERATED_INSTANCE_ROWS: &[(&str, f64, f64)] = &[
    // ================================================================
    // AWS instances (vCPU * per_vCPU_coefficient from CCF 2026-04-24
    // coefficients-aws-use.csv; no baseboard overhead column)
    // ================================================================
    // --- t3 (Nitro, Cascade Lake, burstable) ---
    // CCF aws Cascade Lake: 0.690 idle / 4.063 max W/vCPU.
    // Burst credit is not modeled by CCF, sizes below xlarge count as 2 vCPU.
    ("t3.nano", 1.4, 8.1),
    ("t3.micro", 1.4, 8.1),
    ("t3.small", 1.4, 8.1),
    ("t3.medium", 1.4, 8.1),
    ("t3.large", 1.4, 8.1),
    ("t3.xlarge", 2.8, 16.3),
    ("t3.2xlarge", 5.5, 32.5),
    // --- t3a (Nitro, EPYC 1st Gen Naples, burstable) ---
    // CCF aws EPYC 1st Gen: 0.847 idle / 2.604 max W/vCPU.
    ("t3a.nano", 1.7, 5.2),
    ("t3a.micro", 1.7, 5.2),
    ("t3a.small", 1.7, 5.2),
    ("t3a.medium", 1.7, 5.2),
    ("t3a.large", 1.7, 5.2),
    ("t3a.xlarge", 3.4, 10.4),
    ("t3a.2xlarge", 6.8, 20.8),
    // --- m5 (Cascade Lake, general purpose) ---
    // CCF aws Cascade Lake: 0.690 idle / 4.063 max W/vCPU.
    ("m5.large", 1.4, 8.1),
    ("m5.xlarge", 2.8, 16.3),
    ("m5.2xlarge", 5.5, 32.5),
    ("m5.4xlarge", 11.0, 65.0),
    ("m5.8xlarge", 22.1, 130.0),
    ("m5.12xlarge", 33.1, 195.0),
    ("m5.16xlarge", 44.2, 260.0),
    ("m5.24xlarge", 66.3, 390.1),
    // --- m5a (EPYC 1st Gen Naples, general purpose) ---
    // CCF aws EPYC 1st Gen: 0.847 idle / 2.604 max W/vCPU.
    ("m5a.large", 1.7, 5.2),
    ("m5a.xlarge", 3.4, 10.4),
    ("m5a.2xlarge", 6.8, 20.8),
    ("m5a.4xlarge", 13.5, 41.7),
    ("m5a.8xlarge", 27.1, 83.3),
    ("m5a.12xlarge", 40.6, 125.0),
    ("m5a.16xlarge", 54.2, 166.7),
    ("m5a.24xlarge", 81.3, 250.0),
    // --- c5 (Cascade Lake, compute-optimized) ---
    // CCF aws Cascade Lake: 0.690 idle / 4.063 max W/vCPU.
    // CCF does not differentiate compute vs general purpose.
    ("c5.large", 1.4, 8.1),
    ("c5.xlarge", 2.8, 16.3),
    ("c5.2xlarge", 5.5, 32.5),
    ("c5.4xlarge", 11.0, 65.0),
    ("c5.9xlarge", 24.9, 146.3),
    ("c5.12xlarge", 33.1, 195.0),
    ("c5.18xlarge", 49.7, 292.5),
    ("c5.24xlarge", 66.3, 390.1),
    // --- c5a (EPYC 2nd Gen Rome, compute-optimized) ---
    // CCF aws EPYC 2nd Gen: 0.474 idle / 1.693 max W/vCPU.
    ("c5a.large", 0.9, 3.4),
    ("c5a.xlarge", 1.9, 6.8),
    ("c5a.2xlarge", 3.8, 13.5),
    ("c5a.4xlarge", 7.6, 27.1),
    ("c5a.8xlarge", 15.2, 54.2),
    ("c5a.12xlarge", 22.8, 81.3),
    ("c5a.16xlarge", 30.4, 108.3),
    ("c5a.24xlarge", 45.5, 162.5),
    // --- r5 (Cascade Lake, memory-optimized) ---
    // CCF aws Cascade Lake: 0.690 idle / 4.063 max W/vCPU + DRAM premium (+0.16/+0.40).
    ("r5.large", 1.7, 8.9),
    ("r5.xlarge", 3.4, 17.9),
    ("r5.2xlarge", 6.8, 35.7),
    ("r5.4xlarge", 13.6, 71.4),
    ("r5.8xlarge", 27.2, 142.8),
    ("r5.12xlarge", 40.8, 214.2),
    ("r5.16xlarge", 54.4, 285.6),
    ("r5.24xlarge", 81.6, 428.5),
    // --- r5a (EPYC 1st Gen Naples, memory-optimized) ---
    // CCF aws EPYC 1st Gen: 0.847 idle / 2.604 max W/vCPU + DRAM premium (+0.16/+0.40).
    ("r5a.large", 2.0, 6.0),
    ("r5a.xlarge", 4.0, 12.0),
    ("r5a.2xlarge", 8.1, 24.0),
    ("r5a.4xlarge", 16.1, 48.1),
    ("r5a.8xlarge", 32.2, 96.1),
    ("r5a.12xlarge", 48.3, 144.2),
    ("r5a.16xlarge", 64.4, 192.3),
    ("r5a.24xlarge", 96.7, 288.4),
    // --- m6i (Ice Lake, general purpose) ---
    // CCF aws Ice Lake: 0.767 idle / 3.758 max W/vCPU.
    ("m6i.large", 1.5, 7.5),
    ("m6i.xlarge", 3.1, 15.0),
    ("m6i.2xlarge", 6.1, 30.1),
    ("m6i.4xlarge", 12.3, 60.1),
    ("m6i.8xlarge", 24.5, 120.3),
    ("m6i.12xlarge", 36.8, 180.4),
    ("m6i.16xlarge", 49.1, 240.5),
    ("m6i.24xlarge", 73.6, 360.8),
    ("m6i.32xlarge", 98.2, 481.0),
    // --- c6i (Ice Lake, compute-optimized) ---
    // CCF aws Ice Lake: 0.767 idle / 3.758 max W/vCPU.
    ("c6i.large", 1.5, 7.5),
    ("c6i.xlarge", 3.1, 15.0),
    ("c6i.2xlarge", 6.1, 30.1),
    ("c6i.4xlarge", 12.3, 60.1),
    ("c6i.8xlarge", 24.5, 120.3),
    ("c6i.12xlarge", 36.8, 180.4),
    ("c6i.16xlarge", 49.1, 240.5),
    ("c6i.24xlarge", 73.6, 360.8),
    ("c6i.32xlarge", 98.2, 481.0),
    // --- r6i (Ice Lake, memory-optimized) ---
    // CCF aws Ice Lake: 0.767 idle / 3.758 max W/vCPU + DRAM premium (+0.16/+0.40).
    ("r6i.large", 1.9, 8.3),
    ("r6i.xlarge", 3.7, 16.6),
    ("r6i.2xlarge", 7.4, 33.3),
    ("r6i.4xlarge", 14.8, 66.5),
    ("r6i.8xlarge", 29.7, 133.1),
    ("r6i.12xlarge", 44.5, 199.6),
    ("r6i.16xlarge", 59.3, 266.1),
    ("r6i.24xlarge", 89.0, 399.2),
    // --- m7i (Sapphire Rapids, Xeon Platinum 8488C) ---
    // CCF aws Sapphire Rapids: 1.036 idle / 4.160 max W/vCPU.
    ("m7i.large", 2.1, 8.3),
    ("m7i.xlarge", 4.1, 16.6),
    ("m7i.2xlarge", 8.3, 33.3),
    ("m7i.4xlarge", 16.6, 66.6),
    ("m7i.8xlarge", 33.2, 133.1),
    ("m7i.16xlarge", 66.3, 266.3),
    // --- c7i (Sapphire Rapids, compute-optimized) ---
    // CCF aws Sapphire Rapids: 1.036 idle / 4.160 max W/vCPU.
    ("c7i.large", 2.1, 8.3),
    ("c7i.xlarge", 4.1, 16.6),
    ("c7i.2xlarge", 8.3, 33.3),
    ("c7i.4xlarge", 16.6, 66.6),
    ("c7i.8xlarge", 33.2, 133.1),
    ("c7i.16xlarge", 66.3, 266.3),
    // --- r7i (Sapphire Rapids, memory-optimized) ---
    // CCF aws Sapphire Rapids: 1.036 idle / 4.160 max W/vCPU + DRAM premium (+0.16/+0.40).
    ("r7i.large", 2.4, 9.1),
    ("r7i.xlarge", 4.8, 18.2),
    ("r7i.2xlarge", 9.6, 36.5),
    ("r7i.4xlarge", 19.1, 73.0),
    ("r7i.8xlarge", 38.3, 145.9),
    ("r7i.16xlarge", 76.6, 291.9),
    // --- m7a (AMD Genoa, EPYC 9R14) ---
    // CCF aws EPYC 4th Gen: 0.739 idle / 2.282 max W/vCPU.
    ("m7a.large", 1.5, 4.6),
    ("m7a.xlarge", 3.0, 9.1),
    ("m7a.2xlarge", 5.9, 18.3),
    ("m7a.4xlarge", 11.8, 36.5),
    ("m7a.8xlarge", 23.7, 73.0),
    ("m7a.16xlarge", 47.3, 146.1),
    // --- c7a (Genoa, compute-optimized) ---
    // CCF aws EPYC 4th Gen: 0.739 idle / 2.282 max W/vCPU.
    ("c7a.large", 1.5, 4.6),
    ("c7a.xlarge", 3.0, 9.1),
    ("c7a.2xlarge", 5.9, 18.3),
    ("c7a.4xlarge", 11.8, 36.5),
    ("c7a.8xlarge", 23.7, 73.0),
    ("c7a.16xlarge", 47.3, 146.1),
    // --- r7a (Genoa, memory-optimized) ---
    // CCF aws EPYC 4th Gen: 0.739 idle / 2.282 max W/vCPU + DRAM premium (+0.16/+0.40).
    ("r7a.large", 1.8, 5.4),
    ("r7a.xlarge", 3.6, 10.7),
    ("r7a.2xlarge", 7.2, 21.5),
    ("r7a.4xlarge", 14.4, 42.9),
    ("r7a.8xlarge", 28.8, 85.8),
    ("r7a.16xlarge", 57.5, 171.7),
    // --- m6a (AMD Milan, EPYC 7R13) ---
    // CCF aws EPYC 3rd Gen: 0.456 idle / 1.957 max W/vCPU.
    ("m6a.large", 0.9, 3.9),
    ("m6a.xlarge", 1.8, 7.8),
    ("m6a.2xlarge", 3.6, 15.7),
    ("m6a.4xlarge", 7.3, 31.3),
    ("m6a.8xlarge", 14.6, 62.6),
    ("m6a.16xlarge", 29.2, 125.3),
    // --- c6a (Milan, compute-optimized) ---
    // CCF aws EPYC 3rd Gen: 0.456 idle / 1.957 max W/vCPU.
    ("c6a.large", 0.9, 3.9),
    ("c6a.xlarge", 1.8, 7.8),
    ("c6a.2xlarge", 3.6, 15.7),
    ("c6a.4xlarge", 7.3, 31.3),
    ("c6a.8xlarge", 14.6, 62.6),
    ("c6a.16xlarge", 29.2, 125.3),
    // --- m7g (Graviton 3, Neoverse V1) ---
    // CCF aws Graviton3: 0.474 idle / 1.693 max W/vCPU.
    // CCF has no measured SPECpower for Graviton silicon (EPYC 2nd Gen proxy).
    ("m7g.large", 0.9, 3.4),
    ("m7g.xlarge", 1.9, 6.8),
    ("m7g.2xlarge", 3.8, 13.5),
    ("m7g.4xlarge", 7.6, 27.1),
    ("m7g.8xlarge", 15.2, 54.2),
    ("m7g.16xlarge", 30.4, 108.3),
    // --- c7g (Graviton 3, compute-optimized) ---
    // CCF aws Graviton3: 0.474 idle / 1.693 max W/vCPU.
    ("c7g.large", 0.9, 3.4),
    ("c7g.xlarge", 1.9, 6.8),
    ("c7g.2xlarge", 3.8, 13.5),
    ("c7g.4xlarge", 7.6, 27.1),
    ("c7g.8xlarge", 15.2, 54.2),
    ("c7g.16xlarge", 30.4, 108.3),
    // --- m8g (Graviton 4, Neoverse V2) ---
    // CCF aws Graviton4: 0.474 idle / 1.693 max W/vCPU.
    ("m8g.large", 0.9, 3.4),
    ("m8g.xlarge", 1.9, 6.8),
    ("m8g.2xlarge", 3.8, 13.5),
    ("m8g.4xlarge", 7.6, 27.1),
    ("m8g.8xlarge", 15.2, 54.2),
    ("m8g.16xlarge", 30.4, 108.3),
    // --- c8g (Graviton 4, compute-optimized) ---
    // CCF aws Graviton4: 0.474 idle / 1.693 max W/vCPU.
    ("c8g.large", 0.9, 3.4),
    ("c8g.xlarge", 1.9, 6.8),
    ("c8g.2xlarge", 3.8, 13.5),
    ("c8g.4xlarge", 7.6, 27.1),
    ("c8g.8xlarge", 15.2, 54.2),
    ("c8g.16xlarge", 30.4, 108.3),
    // --- m8a (AMD Turin, EPYC 5th Gen, Genoa proxy) ---
    // CCF aws EPYC 4th Gen: 0.739 idle / 2.282 max W/vCPU.
    // Turin is proxied to Genoa pending an upstream CCF correction,
    // see table.rs module docs and docs/LIMITATIONS.md.
    ("m8a.large", 1.5, 4.6),
    ("m8a.xlarge", 3.0, 9.1),
    ("m8a.2xlarge", 5.9, 18.3),
    ("m8a.4xlarge", 11.8, 36.5),
    ("m8a.8xlarge", 23.7, 73.0),
    ("m8a.16xlarge", 47.3, 146.1),
    // --- c8a (Turin, compute-optimized, Genoa proxy) ---
    // CCF aws EPYC 4th Gen: 0.739 idle / 2.282 max W/vCPU.
    ("c8a.large", 1.5, 4.6),
    ("c8a.xlarge", 3.0, 9.1),
    ("c8a.2xlarge", 5.9, 18.3),
    ("c8a.4xlarge", 11.8, 36.5),
    ("c8a.8xlarge", 23.7, 73.0),
    ("c8a.16xlarge", 47.3, 146.1),
    // --- m8i (Intel Emerald Rapids, general purpose) ---
    // CCF aws Emerald Rapids: 0.814 idle / 4.482 max W/vCPU.
    ("m8i.large", 1.6, 9.0),
    ("m8i.xlarge", 3.3, 17.9),
    ("m8i.2xlarge", 6.5, 35.9),
    ("m8i.4xlarge", 13.0, 71.7),
    ("m8i.8xlarge", 26.0, 143.4),
    ("m8i.16xlarge", 52.1, 286.9),
    // --- c8i (Emerald Rapids, compute-optimized) ---
    // CCF aws Emerald Rapids: 0.814 idle / 4.482 max W/vCPU.
    ("c8i.large", 1.6, 9.0),
    ("c8i.xlarge", 3.3, 17.9),
    ("c8i.2xlarge", 6.5, 35.9),
    ("c8i.4xlarge", 13.0, 71.7),
    ("c8i.8xlarge", 26.0, 143.4),
    ("c8i.16xlarge", 52.1, 286.9),
    // ================================================================
    // GCP instances (vCPU * per_vCPU_coefficient from CCF 2026-04-24
    // coefficients-gcp-use.csv)
    // ================================================================
    // --- n2-standard (Cascade Lake, general purpose) ---
    // CCF gcp Cascade Lake: 0.690 idle / 3.755 max W/vCPU.
    ("n2-standard-2", 1.4, 7.5),
    ("n2-standard-4", 2.8, 15.0),
    ("n2-standard-8", 5.5, 30.0),
    ("n2-standard-16", 11.0, 60.1),
    ("n2-standard-32", 22.1, 120.2),
    ("n2-standard-48", 33.1, 180.2),
    ("n2-standard-64", 44.2, 240.3),
    ("n2-standard-80", 55.2, 300.4),
    ("n2-standard-96", 66.3, 360.5),
    ("n2-standard-128", 88.4, 480.6),
    // --- n2-highcpu (Cascade Lake, compute-optimized) ---
    // CCF gcp Cascade Lake: 0.690 idle / 3.755 max W/vCPU.
    ("n2-highcpu-2", 1.4, 7.5),
    ("n2-highcpu-4", 2.8, 15.0),
    ("n2-highcpu-8", 5.5, 30.0),
    ("n2-highcpu-16", 11.0, 60.1),
    ("n2-highcpu-32", 22.1, 120.2),
    ("n2-highcpu-48", 33.1, 180.2),
    ("n2-highcpu-64", 44.2, 240.3),
    ("n2-highcpu-80", 55.2, 300.4),
    ("n2-highcpu-96", 66.3, 360.5),
    // --- n2-highmem (Cascade Lake, memory-optimized) ---
    // CCF gcp Cascade Lake: 0.690 idle / 3.755 max W/vCPU + DRAM premium (+0.16/+0.40).
    ("n2-highmem-2", 1.7, 8.3),
    ("n2-highmem-4", 3.4, 16.6),
    ("n2-highmem-8", 6.8, 33.2),
    ("n2-highmem-16", 13.6, 66.5),
    ("n2-highmem-32", 27.2, 133.0),
    ("n2-highmem-48", 40.8, 199.4),
    ("n2-highmem-64", 54.4, 265.9),
    ("n2-highmem-80", 68.0, 332.4),
    ("n2-highmem-96", 81.6, 398.9),
    ("n2-highmem-128", 108.8, 531.8),
    // --- e2-standard (EPYC 2nd Gen / Skylake mix, general purpose) ---
    // CCF gcp EPYC 2nd Gen: 0.474 idle / 1.575 max W/vCPU.
    ("e2-standard-2", 0.9, 3.2),
    ("e2-standard-4", 1.9, 6.3),
    ("e2-standard-8", 3.8, 12.6),
    ("e2-standard-16", 7.6, 25.2),
    ("e2-standard-32", 15.2, 50.4),
    // --- c2-standard (Cascade Lake, compute-optimized) ---
    // CCF gcp Cascade Lake: 0.690 idle / 3.755 max W/vCPU.
    ("c2-standard-4", 2.8, 15.0),
    ("c2-standard-8", 5.5, 30.0),
    ("c2-standard-16", 11.0, 60.1),
    ("c2-standard-30", 20.7, 112.6),
    ("c2-standard-60", 41.4, 225.3),
    // --- c3 (Sapphire Rapids, general purpose) ---
    // CCF gcp Sapphire Rapids: 1.036 idle / 4.062 max W/vCPU.
    ("c3-standard-4", 4.1, 16.2),
    ("c3-standard-8", 8.3, 32.5),
    ("c3-standard-22", 22.8, 89.4),
    ("c3-standard-44", 45.6, 178.7),
    ("c3-standard-88", 91.2, 357.5),
    ("c3-standard-176", 182.4, 714.9),
    // --- c3d (AMD Genoa, EPYC 9004) ---
    // CCF gcp EPYC 4th Gen: 0.739 idle / 2.196 max W/vCPU.
    ("c3d-standard-4", 3.0, 8.8),
    ("c3d-standard-8", 5.9, 17.6),
    ("c3d-standard-16", 11.8, 35.1),
    ("c3d-standard-30", 22.2, 65.9),
    ("c3d-standard-60", 44.3, 131.8),
    ("c3d-standard-180", 133.0, 395.3),
    // --- c4 (Emerald Rapids, Xeon Platinum 8592+) ---
    // CCF gcp Emerald Rapids: 0.814 idle / 4.382 max W/vCPU.
    ("c4-standard-2", 1.6, 8.8),
    ("c4-standard-4", 3.3, 17.5),
    ("c4-standard-8", 6.5, 35.1),
    ("c4-standard-16", 13.0, 70.1),
    ("c4-standard-32", 26.0, 140.2),
    ("c4-standard-96", 78.1, 420.6),
    // --- n2d (Genoa-era newer, EPYC 9004) ---
    // CCF gcp EPYC 4th Gen: 0.739 idle / 2.196 max W/vCPU.
    ("n2d-standard-2", 1.5, 4.4),
    ("n2d-standard-4", 3.0, 8.8),
    ("n2d-standard-8", 5.9, 17.6),
    ("n2d-standard-16", 11.8, 35.1),
    ("n2d-standard-32", 23.7, 70.3),
    ("n2d-standard-64", 47.3, 140.5),
    // --- c4a (Google Axion, Neoverse V2 ARM) ---
    // CCF aws Graviton4: 0.474 idle / 1.693 max W/vCPU.
    // No native ARM entry in the GCP CSV. Proxied to AWS Graviton 4
    // (Neoverse V2 silicon family), itself an EPYC 2nd Gen placeholder.
    ("c4a-standard-1", 0.5, 1.7),
    ("c4a-standard-2", 0.9, 3.4),
    ("c4a-standard-4", 1.9, 6.8),
    ("c4a-standard-8", 3.8, 13.5),
    ("c4a-standard-16", 7.6, 27.1),
    ("c4a-standard-32", 15.2, 54.2),
    ("c4a-standard-48", 22.8, 81.3),
    ("c4a-standard-72", 34.1, 121.9),
    // ================================================================
    // Azure instances (vCPU * per_vCPU_coefficient from CCF 2026-04-24
    // coefficients-azure-use.csv). Families absent from this CSV live
    // in `MANUAL_INSTANCE_ROWS` (table.rs)
    // ================================================================
    // --- Standard_D v3 (Broadwell / Skylake) ---
    // CCF azure Skylake: 0.645 idle / 4.193 max W/vCPU.
    ("Standard_D2s_v3", 1.3, 8.4),
    ("Standard_D4s_v3", 2.6, 16.8),
    ("Standard_D8s_v3", 5.2, 33.5),
    ("Standard_D16s_v3", 10.3, 67.1),
    ("Standard_D32s_v3", 20.6, 134.2),
    ("Standard_D48s_v3", 30.9, 201.3),
    ("Standard_D64s_v3", 41.3, 268.4),
    // --- Standard_D v4 (Cascade Lake) ---
    // CCF azure Cascade Lake: 0.639 idle / 3.967 max W/vCPU.
    ("Standard_D2s_v4", 1.3, 7.9),
    ("Standard_D4s_v4", 2.6, 15.9),
    ("Standard_D8s_v4", 5.1, 31.7),
    ("Standard_D16s_v4", 10.2, 63.5),
    ("Standard_D32s_v4", 20.4, 127.0),
    ("Standard_D48s_v4", 30.7, 190.4),
    ("Standard_D64s_v4", 40.9, 253.9),
    // --- Standard_D v5 (Cascade Lake / Ice Lake) ---
    // CCF azure Cascade Lake: 0.639 idle / 3.967 max W/vCPU.
    ("Standard_D2s_v5", 1.3, 7.9),
    ("Standard_D4s_v5", 2.6, 15.9),
    ("Standard_D8s_v5", 5.1, 31.7),
    ("Standard_D16s_v5", 10.2, 63.5),
    ("Standard_D32s_v5", 20.4, 127.0),
    ("Standard_D48s_v5", 30.7, 190.4),
    ("Standard_D64s_v5", 40.9, 253.9),
    ("Standard_D96s_v5", 61.3, 380.9),
    // --- Standard_Das v5 (EPYC 3rd Gen) ---
    // CCF azure EPYC 3rd Gen: 0.445 idle / 2.019 max W/vCPU.
    ("Standard_D2as_v5", 0.9, 4.0),
    ("Standard_D4as_v5", 1.8, 8.1),
    ("Standard_D8as_v5", 3.6, 16.2),
    ("Standard_D16as_v5", 7.1, 32.3),
    ("Standard_D32as_v5", 14.3, 64.6),
    ("Standard_D48as_v5", 21.4, 96.9),
    ("Standard_D64as_v5", 28.5, 129.2),
    ("Standard_D96as_v5", 42.8, 193.9),
    // --- Standard_E v3 (Skylake, memory-optimized) ---
    // CCF azure Skylake: 0.645 idle / 4.193 max W/vCPU + DRAM premium (+0.16/+0.40).
    ("Standard_E2s_v3", 1.6, 9.2),
    ("Standard_E4s_v3", 3.2, 18.4),
    ("Standard_E8s_v3", 6.4, 36.7),
    ("Standard_E16s_v3", 12.9, 73.5),
    ("Standard_E32s_v3", 25.7, 147.0),
    ("Standard_E48s_v3", 38.6, 220.5),
    ("Standard_E64s_v3", 51.5, 294.0),
    // --- Standard_E v4 (Cascade Lake, memory-optimized) ---
    // CCF azure Cascade Lake: 0.639 idle / 3.967 max W/vCPU + DRAM premium (+0.16/+0.40).
    ("Standard_E2s_v4", 1.6, 8.7),
    ("Standard_E4s_v4", 3.2, 17.5),
    ("Standard_E8s_v4", 6.4, 34.9),
    ("Standard_E16s_v4", 12.8, 69.9),
    ("Standard_E32s_v4", 25.6, 139.8),
    ("Standard_E48s_v4", 38.3, 209.6),
    ("Standard_E64s_v4", 51.1, 279.5),
    // --- Standard_E v5 (Cascade Lake / Ice Lake, memory-optimized) ---
    // CCF azure Cascade Lake: 0.639 idle / 3.967 max W/vCPU + DRAM premium (+0.16/+0.40).
    ("Standard_E2s_v5", 1.6, 8.7),
    ("Standard_E4s_v5", 3.2, 17.5),
    ("Standard_E8s_v5", 6.4, 34.9),
    ("Standard_E16s_v5", 12.8, 69.9),
    ("Standard_E32s_v5", 25.6, 139.8),
    ("Standard_E48s_v5", 38.3, 209.6),
    ("Standard_E64s_v5", 51.1, 279.5),
    ("Standard_E96s_v5", 76.7, 419.3),
    // --- Standard_F v2 (Cascade Lake, compute-optimized) ---
    // CCF azure Cascade Lake: 0.639 idle / 3.967 max W/vCPU.
    ("Standard_F2s_v2", 1.3, 7.9),
    ("Standard_F4s_v2", 2.6, 15.9),
    ("Standard_F8s_v2", 5.1, 31.7),
    ("Standard_F16s_v2", 10.2, 63.5),
    ("Standard_F32s_v2", 20.4, 127.0),
    ("Standard_F48s_v2", 30.7, 190.4),
    ("Standard_F64s_v2", 40.9, 253.9),
    ("Standard_F72s_v2", 46.0, 285.6),
];