{
  "method": {
    "flink": "2.2.1",
    "jdk": "17",
    "native": "release/mimalloc, unchanged Rust production",
    "profiler": "async-profiler 4.5",
    "profiler_library_sha256": "3c03ce90c8c34332480d14cb0a5b9eb380c0dbc0da915486b3348bcfaf026d61",
    "event": "cpu",
    "interval": "1ms",
    "native_stack": "dwarf",
    "parallelism": 1,
    "heap": "2GiB",
    "timezone": "America/New_York",
    "batch_rows": 1024,
    "zero_copy_local": false,
    "warmup_pairs": 1,
    "measured_pairs": 1,
    "scope": "Entire JVM, including planning, warmups and both engines. Native generated scope includes its downstream chained operators. Inclusive counts overlap and must not be summed. Counts are samples, not allocation counts or bytes copied. Diagnostic job durations are retained but excluded from elapsed-time claims."
  },
  "profiles": [
    {
      "id": "row-before",
      "description": "Initial recursive ROW reconstruction before owned binary payloads.",
      "source_state": "initial",
      "html_sha256": "927335f0c0ab25ed7b2e88c09363518f0c802f3117233c2d0f2b4f7ba423f9b8",
      "log_sha256": "9842e130762768087a56f6ec690e387d1e629dba170211fef1dffb84f231a091",
      "diagnostic_job_lines": [
        "[generated-unnest-trial] shape=map_row grouped=false updating=false rows=2000000 entries=4 bytes=8 keys=4096 engine=Flink trial=0 warmup=true seconds=4.646961982",
        "[generated-unnest-trial] shape=map_row grouped=false updating=false rows=2000000 entries=4 bytes=8 keys=4096 engine=StreamFusion trial=0 warmup=true seconds=5.554562376",
        "[generated-unnest-trial] shape=map_row grouped=false updating=false rows=2000000 entries=4 bytes=8 keys=4096 engine=StreamFusion trial=1 warmup=false seconds=5.111486877",
        "[generated-unnest-trial] shape=map_row grouped=false updating=false rows=2000000 entries=4 bytes=8 keys=4096 engine=Flink trial=1 warmup=false seconds=4.126161807"
      ],
      "counters": {
        "samples": 39529,
        "native_generated_inclusive_samples": 9034,
        "top_self_samples": {
          "itable stub": 2655,
          "_raw_spin_unlock_irqrestore": 1360,
          "jdk/internal/misc/Unsafe.copyMemory": 778,
          "org/apache/flink/table/runtime/typeutils/RowDataSerializer.copyRowData": 664,
          "SymbolTable::do_lookup": 561,
          "org/apache/flink/table/data/GenericRowData.isNullAt": 555,
          "IndexSetIterator::advance_and_next": 483,
          "org/apache/flink/table/data/GenericRowData.getArity": 472,
          "/usr/lib/x86_64-linux-gnu/libc.so.6": 446,
          "PhaseChaitin::Split": 376,
          "/usr/lib/x86_64-linux-gnu/libz.so.1.2.11": 351,
          "org/apache/flink/table/data/GenericRowData.setField": 333,
          "PhaseChaitin::gather_lrg_masks": 308,
          "jlong_disjoint_arraycopy": 295,
          "org/apache/flink/table/runtime/typeutils/RowDataSerializer.copy": 289,
          "org/apache/flink/table/data/utils/JoinedRowData.isNullAt": 273,
          "org/apache/flink/table/data/GenericRowData.<init>": 265,
          "PhaseChaitin::interfere_with_live": 257,
          "org/apache/flink/table/data/RowData$$Lambda$2587.0x00007d76a0bfa070.getFieldOrNull": 255,
          "G1ParScanThreadState::trim_queue_to_threshold": 249,
          "PhaseChaitin::elide_copy": 242,
          "org/apache/flink/table/data/ArrayData$$Lambda$2610.0x00007d76a0c0c200.getElementOrNull": 231,
          "tech/streamfusion/arrow/writers/NestedStringWriter.doWrite": 228,
          "PhaseLive::compute": 224,
          "PhaseIdealLoop::build_loop_late": 214,
          "org/apache/flink/streaming/runtime/operators/sink/SinkWriterOperator.processElement": 204,
          "org/apache/flink/table/runtime/operators/sink/constraint/NotNullConstraint.enforce": 200,
          "PhaseIdealLoop::build_loop_early": 196,
          "tech/streamfusion/GeneratedUnnestBenchmark.lambda$completeJobsRetainConstructorPredicateAndRepresentationCosts$4a50ceca$1": 193,
          "vtable stub": 188,
          "org/apache/flink/table/data/utils/JoinedRowData.getArity": 182,
          "PhaseChaitin::post_allocate_copy_removal": 181,
          "InstanceKlass::find_method_index": 171,
          "org/apache/flink/table/data/binary/BinarySegmentUtils.copyToBytes": 171,
          "org/apache/flink/table/data/utils/JoinedRowData.replace": 159
        },
        "native_generated_top_self_samples": {
          "itable stub": 1359,
          "jdk/internal/misc/Unsafe.copyMemory": 424,
          "org/apache/flink/table/runtime/typeutils/RowDataSerializer.copyRowData": 354,
          "org/apache/flink/table/data/GenericRowData.isNullAt": 336,
          "org/apache/flink/table/data/GenericRowData.getArity": 258,
          "tech/streamfusion/arrow/vectors/ArrowBigIntColumnVector.isNullAt": 158,
          "tech/streamfusion/arrow/writers/NestedStringWriter.doWrite": 144,
          "org/apache/arrow/vector/BaseFixedWidthVector.isNull": 139,
          "org/apache/flink/table/data/GenericRowData.setField": 125,
          "ColumnarGeneratedUnnest$42.processElement_split52": 116,
          "vtable stub": 113,
          "org/apache/flink/table/data/columnar/vector/VectorizedColumnBatch.isNullAt": 110,
          "jdk/internal/misc/Unsafe.getLong": 108,
          "org/apache/flink/table/runtime/typeutils/RowDataSerializer.copy": 107,
          "org/apache/flink/streaming/runtime/operators/sink/SinkWriterOperator.processElement": 105,
          "jlong_disjoint_arraycopy": 104,
          "tech/streamfusion/arrow/StringCacheColumns.read": 104,
          "ColumnarGeneratedUnnest$42.processElement_split86": 102,
          "org/apache/flink/table/data/RowData$$Lambda$2587.0x00007d76a0bfa070.getFieldOrNull": 101,
          "jdk/internal/misc/Unsafe.putByte": 97,
          "org/apache/flink/table/runtime/operators/sink/constraint/NotNullConstraint.enforce": 96,
          "org/apache/flink/table/data/ArrayData$$Lambda$2610.0x00007d76a0c0c200.getElementOrNull": 95,
          "org/apache/flink/table/data/utils/ProjectedRowData.isNullAt": 93,
          "org/apache/flink/table/data/GenericRowData.<init>": 85,
          "org/apache/flink/table/data/GenericRowData.getRow": 76,
          "org/apache/flink/table/data/utils/JoinedRowData.replace": 74,
          "org/apache/flink/core/memory/MemorySegment.<init>": 70,
          "org/apache/flink/table/data/RowData.lambda$createFieldGetter$245ca7d1$7": 68,
          "org/apache/flink/table/data/binary/BinaryStringData.copy": 68,
          "Copy::fill_to_memory_atomic": 64,
          "org/apache/flink/table/data/binary/BinarySection.<init>": 63,
          "org/apache/flink/table/data/RowData$$Lambda$2585.0x00007d76a0bf7ce0.getFieldOrNull": 63,
          "tech/streamfusion/arrow/StringCacheRowData.replace": 63,
          "tech/streamfusion/arrow/StringCacheRowData.isNullAt": 62,
          "org/apache/arrow/vector/VarCharVector.get": 59
        },
        "selected_inclusive_samples": {
          "org/apache/flink/table/runtime/typeutils/RowDataSerializer.copy": 23609,
          "tech/streamfusion/operator/NativeColumnarTableFunctionOperator$1.collect": 14034,
          "org/apache/flink/table/runtime/typeutils/RowDataSerializer.copyRowData": 10431,
          "tech/streamfusion/operator/RowDataToArrowOperator.processElement": 9404,
          "tech/streamfusion/operator/RowDataToArrowOperator.flush": 9041,
          "tech/streamfusion/operator/NativeColumnarTableFunctionOperator.processElement": 9034,
          "tech/streamfusion/operator/NativeColumnarTableFunctionOperator.append": 6992,
          "tech/streamfusion/operator/NativeColumnarTableFunctionOperator.flush": 5298,
          "tech/streamfusion/operator/ArrowToRowDataOperator.processElement": 5208,
          "org/apache/flink/table/data/binary/BinarySegmentUtils.copyToBytes": 2033,
          "tech/streamfusion/arrow/vectors/ArrowRowColumnVector.getRowData": 1473,
          "tech/streamfusion/arrow/writers/RowWriter.doWrite": 891,
          "tech/streamfusion/arrow/writers/NestedStringWriter.doWrite": 615,
          "tech/streamfusion/arrow/StringCacheColumns.read": 288,
          "tech/streamfusion/arrow/writers/VarCharWriter.doWrite": 245,
          "org/apache/flink/table/data/writer/BinaryRowWriter.writeString": 203,
          "tech/streamfusion/arrow/writers/RowWriter$RowWriterForRow.readRow": 138,
          "org/apache/flink/table/data/binary/BinarySegmentUtils.allocateReuseBytes": 86,
          "tech/streamfusion/arrow/writers/NestedStringWriter$$Lambda$3687.0x00007d76a0f44938.apply": 78,
          "tech/streamfusion/arrow/writers/NestedStringWriter.lambda$forRow$0": 75,
          "org/apache/flink/table/runtime/typeutils/RowDataSerializer.<init>": 67,
          "tech/streamfusion/arrow/vectors/ArrowRowColumnVector.isNullAt": 64,
          "org/apache/flink/table/data/binary/BinarySegmentUtils.readStringData": 58,
          "tech/streamfusion/arrow/writers/RowWriter$RowWriterForRow.isNullAt": 57,
          "tech/streamfusion/arrow/vectors/ArrowRowColumnVector.<init>": 42,
          "org/apache/flink/table/data/writer/BinaryRowWriter.reset": 38,
          "org/apache/flink/table/data/binary/BinarySegmentUtils.getLong": 38,
          "org/apache/arrow/vector/UInt2Vector.get": 34,
          "tech/streamfusion/operator/NativeColumnarTableFunctionOperator.open": 31,
          "org/apache/flink/table/data/binary/BinarySegmentUtils.inFirstSegment": 28,
          "tech/streamfusion/arrow/writers/VarCharWriter$VarCharWriterForRow.readString": 28,
          "org/apache/flink/table/data/writer/BinaryRowWriter.setOffsetAndSize": 24,
          "org/apache/flink/table/data/binary/BinarySegmentUtils.getByte": 23,
          "tech/streamfusion/arrow/writers/VarCharWriter$VarCharWriterForRow.isNullAt": 22,
          "tech/streamfusion/operator/RowDataToArrowOperator.armFlushTimer": 17,
          "org/apache/flink/table/data/binary/BinarySegmentUtils.readRowData": 16,
          "org/apache/flink/table/data/binary/BinarySegmentUtils.getInt": 15,
          "org/apache/flink/table/data/writer/BinaryRowWriter.complete": 13,
          "org/apache/arrow/vector/UInt2Vector.setSafe": 11,
          "org/apache/flink/table/data/binary/BinarySegmentUtils.bitGet": 11,
          "tech/streamfusion/arrow/writers/RowWriter.finish": 9,
          "org/apache/flink/table/runtime/typeutils/RowDataSerializer$$Lambda$2463.0x00007d76a0bad320.apply": 9,
          "tech/streamfusion/arrow/StringCacheColumns.readers": 9,
          "org/apache/flink/table/data/writer/BinaryRowWriter.writeLong": 8,
          "org/apache/flink/table/runtime/typeutils/RowDataSerializer.lambda$new$2": 8,
          "org/apache/flink/table/data/writer/BinaryRowWriter.setNullAt": 7,
          "org/apache/flink/table/data/writer/BinaryRowWriter.setNullBit": 4,
          "org/apache/flink/table/data/binary/BinarySegmentUtils.bitSet": 4,
          "tech/streamfusion/arrow/writers/NestedStringWriter.forRow": 4,
          "tech/streamfusion/arrow/writers/NestedStringWriter.<init>": 4,
          "org/apache/arrow/vector/UInt2Vector.set": 3,
          "org/apache/flink/table/runtime/typeutils/RowDataSerializer$$Lambda$2459.0x00007d76a0ba5920.apply": 3,
          "tech/streamfusion/arrow/writers/NestedStringWriter.finish": 2,
          "tech/streamfusion/arrow/StringCacheColumns$Writer.finish": 2,
          "org/apache/flink/table/runtime/typeutils/BinaryRowDataSerializer.<init>": 2,
          "org/apache/flink/table/runtime/typeutils/RowDataSerializer$$Lambda$2464.0x00007d76a0bad740.apply": 1,
          "tech/streamfusion/operator/RowDataToArrowOperator.open": 1,
          "org/apache/flink/table/data/binary/BinaryRowData.setTotalSize": 1,
          "org/apache/arrow/vector/UInt2Vector.setValue": 1,
          "org/apache/flink/table/data/writer/BinaryRowWriter.getFieldOffset": 1,
          "org/apache/flink/table/runtime/typeutils/RowDataSerializer$$Lambda$2460.0x00007d76a0ba5d58.apply": 1,
          "org/apache/flink/table/runtime/typeutils/RowDataSerializer$$Lambda$2463.0x00007d76a0bad320.<init>": 1,
          "org/apache/flink/table/data/binary/BinaryRowData.calculateFixPartSizeInBytes": 1,
          "org/apache/flink/table/data/binary/BinaryRowData.calculateBitSetWidthInBytes": 1,
          "org/apache/flink/table/data/binary/BinarySegmentUtils.byteIndex": 1,
          "tech/streamfusion/arrow/writers/RowWriter.forRow": 1,
          "tech/streamfusion/arrow/writers/RowWriter$RowWriterForRow.<init>": 1,
          "tech/streamfusion/arrow/writers/RowWriter.<init>": 1,
          "tech/streamfusion/arrow/StringCacheColumns$Writer.write": 1,
          "tech/streamfusion/operator/ArrowToRowDataOperator.<init>": 1
        }
      }
    },
    {
      "id": "wide-string-before",
      "description": "Before bulk UTF-16 cache copies.",
      "source_state": "before_wide",
      "html_sha256": "1bcd66341b9d89839a87387ed2d797e5cbf7e420c18d35352da5e0fe6f0b67b7",
      "log_sha256": "2115fc84849a6bcaf52135659dd60bb0a8668898e2f925f520c5179037a5e9e4",
      "diagnostic_job_lines": [
        "[generated-unnest-trial] shape=map_string grouped=false updating=true rows=1000000 entries=4 bytes=128 keys=64 engine=Flink trial=0 warmup=true seconds=2.935338003",
        "[generated-unnest-trial] shape=map_string grouped=false updating=true rows=1000000 entries=4 bytes=128 keys=64 engine=StreamFusion trial=0 warmup=true seconds=2.869736391",
        "[generated-unnest-trial] shape=map_string grouped=false updating=true rows=1000000 entries=4 bytes=128 keys=64 engine=StreamFusion trial=1 warmup=false seconds=2.417675921",
        "[generated-unnest-trial] shape=map_string grouped=false updating=true rows=1000000 entries=4 bytes=128 keys=64 engine=Flink trial=1 warmup=false seconds=2.063969035"
      ],
      "counters": {
        "samples": 29699,
        "native_generated_inclusive_samples": 3124,
        "top_self_samples": {
          "_raw_spin_unlock_irqrestore": 1262,
          "itable stub": 879,
          "SymbolTable::do_lookup": 512,
          "/usr/lib/x86_64-linux-gnu/libc.so.6": 502,
          "IndexSetIterator::advance_and_next": 442,
          "tech/streamfusion/arrow/writers/NestedStringWriter.doWrite": 380,
          "org/apache/flink/core/memory/MemorySegment.<init>": 357,
          "PhaseChaitin::Split": 336,
          "/usr/lib/x86_64-linux-gnu/libz.so.1.2.11": 314,
          "G1ParScanThreadState::trim_queue_to_threshold": 278,
          "clear_page_erms": 270,
          "PhaseChaitin::gather_lrg_masks": 256,
          "PhaseChaitin::interfere_with_live": 240,
          "PhaseLive::compute": 235,
          "PhaseIdealLoop::build_loop_late": 220,
          "PhaseChaitin::elide_copy": 219,
          "jbyte_disjoint_arraycopy": 217,
          "org/apache/flink/table/data/binary/BinarySegmentUtils.copyToBytes": 191,
          "org/apache/flink/table/runtime/typeutils/RowDataSerializer.copyRowData": 190,
          "org/apache/flink/table/data/GenericRowData.<init>": 179,
          "org/apache/flink/table/data/binary/StringUtf8Utils.encodeUTF8": 175,
          "PhaseIdealLoop::build_loop_early": 170,
          "PhaseChaitin::post_allocate_copy_removal": 169,
          "InstanceKlass::find_method_index": 157,
          "jlong_disjoint_arraycopy": 148,
          "tech/streamfusion/arrow/StringCacheColumns.read": 146,
          "PhaseIdealLoop::Dominators": 142,
          "PhaseIdealLoop::build_loop_late_post_work": 142,
          "org/apache/flink/table/data/binary/BinaryStringData.copy": 141,
          "org/apache/flink/table/data/GenericRowData.getArity": 138,
          "org/apache/flink/table/data/GenericRowData.isNullAt": 137,
          "finish_task_switch.isra.0": 136,
          "tech/streamfusion/GeneratedUnnestBenchmark.lambda$completeJobsRetainConstructorPredicateAndRepresentationCosts$4a50ceca$1": 130,
          "PhaseLive::add_liveout": 129,
          "PhaseChaitin::build_ifg_physical": 129
        },
        "native_generated_top_self_samples": {
          "itable stub": 279,
          "tech/streamfusion/arrow/StringCacheColumns.read": 146,
          "org/apache/flink/core/memory/MemorySegment.<init>": 135,
          "jdk/internal/misc/Unsafe.getShort": 114,
          "jbyte_disjoint_arraycopy": 100,
          "jdk/internal/misc/Unsafe.copyMemory": 64,
          "org/apache/arrow/vector/VarCharVector.get": 64,
          "ColumnarGeneratedUnnest$35.processElement_split61": 61,
          "jlong_disjoint_arraycopy": 56,
          "org/apache/flink/table/data/binary/BinarySegmentUtils.copyToBytes": 56,
          "ColumnarGeneratedUnnest$35.processElement_split37": 54,
          "jint_disjoint_arraycopy": 53,
          "org/apache/flink/table/data/GenericRowData.isNullAt": 52,
          "tech/streamfusion/arrow/StringCacheColumns$Writer.<init>": 51,
          "org/apache/flink/table/runtime/typeutils/RowDataSerializer.copyRowData": 50,
          "org/apache/flink/table/data/GenericRowData.<init>": 49,
          "java/lang/String.<init>": 45,
          "tech/streamfusion/arrow/StringCacheColumns$Writer.write": 44,
          "org/apache/flink/table/data/binary/BinaryStringData.copy": 40,
          "org/apache/flink/table/data/GenericRowData.getArity": 34,
          "unsafe_arraycopy": 30,
          "_raw_spin_unlock_irqrestore": 30,
          "org/apache/flink/table/data/GenericRowData.getString": 30,
          "org/apache/flink/table/runtime/operators/sink/constraint/NotNullConstraint.enforce": 30,
          "org/apache/flink/table/data/binary/BinaryStringDataUtil.concat": 29,
          "org/apache/flink/streaming/runtime/operators/sink/SinkWriterOperator.processElement": 29,
          "tech/streamfusion/arrow/StringCacheRowData.getArity": 29,
          "org/apache/flink/table/data/binary/LazyBinaryFormat.<init>": 28,
          "org/apache/arrow/vector/BaseFixedWidthVector.isSet": 28,
          "tech/streamfusion/arrow/vectors/ArrowVarCharColumnVector.isNullAt": 28,
          "jdk/internal/misc/Unsafe.getLong": 27,
          "tech/streamfusion/arrow/writers/VarCharWriter.doWrite": 27,
          "vtable stub": 26,
          "tech/streamfusion/arrow/StringCacheRowData.isNullAt": 25,
          "org/apache/flink/table/data/binary/BinarySection.<init>": 23
        },
        "selected_inclusive_samples": {
          "org/apache/flink/table/runtime/typeutils/RowDataSerializer.copy": 7265,
          "tech/streamfusion/operator/RowDataToArrowOperator.processElement": 4378,
          "tech/streamfusion/operator/NativeColumnarTableFunctionOperator$1.collect": 4076,
          "tech/streamfusion/operator/RowDataToArrowOperator.flush": 3697,
          "tech/streamfusion/operator/NativeColumnarDropUpdateBeforeOperator.processElement": 3670,
          "org/apache/flink/table/runtime/typeutils/RowDataSerializer.copyRowData": 3367,
          "tech/streamfusion/operator/NativeColumnarTableFunctionOperator.processElement": 3124,
          "tech/streamfusion/operator/NativeColumnarTableFunctionOperator.append": 2028,
          "tech/streamfusion/operator/NativeColumnarTableFunctionOperator.flush": 1411,
          "tech/streamfusion/operator/ArrowToRowDataOperator.processElement": 1366,
          "tech/streamfusion/arrow/writers/NestedStringWriter.doWrite": 579,
          "org/apache/flink/table/data/binary/BinarySegmentUtils.copyToBytes": 381,
          "tech/streamfusion/arrow/StringCacheColumns.read": 375,
          "tech/streamfusion/arrow/writers/VarCharWriter.doWrite": 241,
          "arrow_select::filter::filter_record_batch": 214,
          "arrow_select::filter::FilterPredicate::filter_record_batch": 213,
          "arrow_data::transform::MutableArrayData::extend": 182,
          "tech/streamfusion/arrow/StringCacheColumns$Writer.write": 137,
          "org/apache/arrow/vector/UInt2Vector.get": 115,
          "tech/streamfusion/arrow/StringCacheColumns$Writer.<init>": 104,
          "org/apache/arrow/vector/UInt2Vector.setSafe": 77,
          "org/apache/flink/table/data/binary/BinarySegmentUtils.readStringData": 59,
          "tech/streamfusion/arrow/writers/VarCharWriter$VarCharWriterForRow.readString": 50,
          "org/apache/flink/table/data/binary/BinarySegmentUtils.inFirstSegment": 48,
          "tech/streamfusion/arrow/writers/VarCharWriter$VarCharWriterForRow.isNullAt": 38,
          "org/apache/flink/table/data/binary/BinarySegmentUtils.bitGet": 32,
          "tech/streamfusion/operator/NativeColumnarTableFunctionOperator.open": 30,
          "org/apache/flink/table/data/binary/BinarySegmentUtils.allocateReuseBytes": 26,
          "org/apache/flink/table/data/binary/BinarySegmentUtils.getByte": 20,
          "tech/streamfusion/operator/RowDataToArrowOperator.armFlushTimer": 14,
          "tech/streamfusion/arrow/StringCacheColumns.readers": 13,
          "org/apache/flink/table/data/binary/BinarySegmentUtils.getInt": 12,
          "org/apache/flink/table/runtime/typeutils/RowDataSerializer.<init>": 11,
          "org/apache/flink/table/data/binary/BinarySegmentUtils.getLong": 7,
          "tech/streamfusion/arrow/writers/NestedStringWriter.forRow": 5,
          "tech/streamfusion/arrow/writers/NestedStringWriter.<init>": 5,
          "org/apache/arrow/vector/UInt2Vector.set": 5,
          "arrow_data::transform::MutableArrayData::into_builder": 5,
          "tech/streamfusion/operator/RowDataToArrowOperator.processWatermark": 4,
          "arrow_data::transform::MutableArrayData::freeze": 3,
          "tech/streamfusion/arrow/StringCacheColumns.name": 3,
          "org/apache/flink/table/runtime/typeutils/RowDataSerializer$$Lambda$2456.0x000070d03cba85e0.apply": 3,
          "org/apache/flink/table/runtime/typeutils/RowDataSerializer.lambda$new$2": 3,
          "org/apache/flink/table/data/binary/BinarySegmentUtils.byteIndex": 2,
          "tech/streamfusion/operator/NativeColumnarTableFunctionOperator$1.<init>": 1,
          "org/apache/flink/table/data/binary/BinarySegmentUtils.bitSet": 1,
          "tech/streamfusion/arrow/writers/VarCharWriter.forRow": 1,
          "tech/streamfusion/arrow/writers/NestedStringWriter.finish": 1,
          "tech/streamfusion/arrow/StringCacheColumns$Writer.finish": 1,
          "tech/streamfusion/arrow/writers/NestedStringWriter$$Lambda$3660.0x000070d03cf38270.apply": 1,
          "tech/streamfusion/arrow/writers/NestedStringWriter.lambda$forRow$0": 1,
          "tech/streamfusion/operator/RowDataToArrowOperator$$Lambda$3661.0x000070d03cf38950.onProcessingTime": 1,
          "org/apache/flink/table/runtime/typeutils/RowDataSerializer$$Lambda$2452.0x000070d03cba7988.apply": 1,
          "org/apache/flink/table/runtime/typeutils/BinaryRowDataSerializer.<init>": 1,
          "tech/streamfusion/operator/ArrowToRowDataOperator.<init>": 1
        }
      }
    },
    {
      "id": "wide-string-bulk",
      "description": "Bulk UTF-16 copies before lazy scalar cache sidecars.",
      "source_state": "bulk",
      "html_sha256": "c244c778b97fd9627f7abe57c3aeaee11f1b43d0b7f85fb6e68b0e949120684b",
      "log_sha256": "7ffc2aa8913de1dd6a631500fcfdb7e9252a4248540e59f14a6a5dd2fea2577c",
      "diagnostic_job_lines": [
        "[generated-unnest-trial] shape=map_string grouped=false updating=true rows=1000000 entries=4 bytes=128 keys=64 engine=Flink trial=0 warmup=true seconds=2.840126696",
        "[generated-unnest-trial] shape=map_string grouped=false updating=true rows=1000000 entries=4 bytes=128 keys=64 engine=StreamFusion trial=0 warmup=true seconds=2.973208001",
        "[generated-unnest-trial] shape=map_string grouped=false updating=true rows=1000000 entries=4 bytes=128 keys=64 engine=StreamFusion trial=1 warmup=false seconds=2.204997728",
        "[generated-unnest-trial] shape=map_string grouped=false updating=true rows=1000000 entries=4 bytes=128 keys=64 engine=Flink trial=1 warmup=false seconds=2.100782571"
      ],
      "counters": {
        "samples": 30399,
        "native_generated_inclusive_samples": 3415,
        "top_self_samples": {
          "_raw_spin_unlock_irqrestore": 1321,
          "itable stub": 768,
          "IndexSetIterator::advance_and_next": 522,
          "/usr/lib/x86_64-linux-gnu/libc.so.6": 479,
          "org/apache/flink/table/runtime/typeutils/RowDataSerializer.copyRowData": 463,
          "SymbolTable::do_lookup": 462,
          "PhaseChaitin::Split": 396,
          "/usr/lib/x86_64-linux-gnu/libz.so.1.2.11": 355,
          "G1ParScanThreadState::trim_queue_to_threshold": 315,
          "PhaseChaitin::gather_lrg_masks": 306,
          "org/apache/flink/core/memory/MemorySegment.<init>": 297,
          "PhaseLive::compute": 257,
          "PhaseChaitin::interfere_with_live": 254,
          "clear_page_erms": 227,
          "PhaseChaitin::elide_copy": 224,
          "PhaseIdealLoop::build_loop_late": 209,
          "PhaseIdealLoop::build_loop_early": 197,
          "org/apache/flink/table/data/binary/BinarySegmentUtils.copyToBytes": 194,
          "jbyte_disjoint_arraycopy": 181,
          "PhaseChaitin::post_allocate_copy_removal": 178,
          "org/apache/flink/table/data/GenericRowData.<init>": 178,
          "Node::dominates": 169,
          "org/apache/flink/table/data/binary/StringUtf8Utils.encodeUTF8": 168,
          "PhaseIdealLoop::build_loop_late_post_work": 164,
          "PhaseChaitin::build_ifg_physical": 162,
          "tech/streamfusion/GeneratedUnnestBenchmark.lambda$completeJobsRetainConstructorPredicateAndRepresentationCosts$4a50ceca$1": 161,
          "InstanceKlass::find_method_index": 159,
          "jlong_disjoint_arraycopy": 153,
          "do_user_addr_fault": 151,
          "PhaseLive::add_liveout": 146,
          "Arena::contains": 142,
          "org/apache/flink/table/data/binary/BinaryStringData.copy": 138,
          "__tls_get_addr": 134,
          "org/apache/flink/table/data/GenericRowData.isNullAt": 133,
          "tech/streamfusion/arrow/writers/VarCharWriter.doWrite": 131
        },
        "native_generated_top_self_samples": {
          "org/apache/flink/table/runtime/typeutils/RowDataSerializer.copyRowData": 308,
          "itable stub": 221,
          "tech/streamfusion/arrow/writers/VarCharWriter.doWrite": 131,
          "org/apache/flink/core/memory/MemorySegment.<init>": 128,
          "ColumnarGeneratedUnnest$35.processElement_split37": 127,
          "ColumnarGeneratedUnnest$35.processElement_split61": 99,
          "jbyte_disjoint_arraycopy": 88,
          "org/apache/flink/table/data/columnar/vector/VectorizedColumnBatch.isNullAt": 73,
          "org/apache/flink/table/runtime/typeutils/RowDataSerializer.copy": 65,
          "jlong_disjoint_arraycopy": 64,
          "jdk/internal/misc/Unsafe.copyMemory": 59,
          "org/apache/flink/table/data/utils/JoinedRowData.getString": 55,
          "tech/streamfusion/arrow/StringCacheColumns$Writer.<init>": 52,
          "org/apache/arrow/vector/VarCharVector.get": 46,
          "org/apache/flink/table/data/GenericRowData.isNullAt": 45,
          "org/apache/flink/table/runtime/operators/sink/constraint/NotNullConstraint.enforce": 44,
          "org/apache/flink/table/data/binary/BinarySegmentUtils.copyToBytes": 44,
          "jint_disjoint_arraycopy": 41,
          "_raw_spin_unlock_irqrestore": 40,
          "org/apache/flink/table/data/RowData.lambda$createFieldGetter$25774257$1": 39,
          "org/apache/flink/table/data/GenericRowData.<init>": 37,
          "org/apache/flink/table/data/binary/BinaryStringDataUtil.concat": 36,
          "org/apache/flink/streaming/runtime/operators/sink/SinkWriterOperator.processElement": 30,
          "org/apache/flink/core/memory/MemorySegmentFactory.wrap": 29,
          "org/apache/flink/table/data/binary/BinaryStringData.copy": 28,
          "org/apache/flink/table/data/utils/JoinedRowData.replace": 27,
          "org/apache/flink/table/data/RowData.lambda$createFieldGetter$245ca7d1$7": 27,
          "org/apache/flink/table/data/binary/LazyBinaryFormat.<init>": 26,
          "java/lang/String.<init>": 25,
          "org/apache/flink/table/data/GenericRowData.getArity": 25,
          "vtable stub": 24,
          "org/apache/flink/core/memory/MemorySegment.get": 23,
          "tech/streamfusion/arrow/ArrowWriter.write": 23,
          "tech/streamfusion/arrow/vectors/ArrowVarCharColumnVector.isNullAt": 23,
          "tech/streamfusion/operator/NativeColumnarTableFunctionOperator.processElement": 23
        },
        "selected_inclusive_samples": {
          "org/apache/flink/table/runtime/typeutils/RowDataSerializer.copy": 7563,
          "tech/streamfusion/operator/NativeColumnarTableFunctionOperator$1.collect": 4830,
          "tech/streamfusion/operator/RowDataToArrowOperator.processElement": 4259,
          "tech/streamfusion/operator/RowDataToArrowOperator.flush": 3947,
          "tech/streamfusion/operator/NativeColumnarDropUpdateBeforeOperator.processElement": 3921,
          "org/apache/flink/table/runtime/typeutils/RowDataSerializer.copyRowData": 3477,
          "tech/streamfusion/operator/NativeColumnarTableFunctionOperator.processElement": 3415,
          "tech/streamfusion/operator/NativeColumnarTableFunctionOperator.append": 2414,
          "tech/streamfusion/operator/NativeColumnarTableFunctionOperator.flush": 1657,
          "tech/streamfusion/operator/ArrowToRowDataOperator.processElement": 1609,
          "org/apache/flink/table/data/binary/BinarySegmentUtils.copyToBytes": 371,
          "tech/streamfusion/arrow/writers/VarCharWriter.doWrite": 364,
          "tech/streamfusion/arrow/Utf16Cache$Writer.write": 199,
          "arrow_select::filter::filter_record_batch": 198,
          "arrow_select::filter::FilterPredicate::filter_record_batch": 196,
          "tech/streamfusion/arrow/writers/NestedStringWriter.doWrite": 193,
          "arrow_data::transform::MutableArrayData::extend": 169,
          "tech/streamfusion/arrow/StringCacheColumns$Writer.write": 128,
          "tech/streamfusion/arrow/StringCacheColumns$Writer.<init>": 106,
          "tech/streamfusion/arrow/StringCacheColumns.read": 103,
          "tech/streamfusion/arrow/writers/VarCharWriter$VarCharWriterForRow.readString": 96,
          "tech/streamfusion/arrow/Utf16Cache.read": 88,
          "org/apache/flink/table/data/binary/BinarySegmentUtils.readStringData": 46,
          "tech/streamfusion/arrow/writers/VarCharWriter$VarCharWriterForRow.isNullAt": 45,
          "org/apache/flink/table/data/binary/BinarySegmentUtils.inFirstSegment": 35,
          "org/apache/flink/table/data/binary/BinarySegmentUtils.bitGet": 31,
          "tech/streamfusion/operator/NativeColumnarTableFunctionOperator.open": 29,
          "org/apache/flink/table/data/binary/BinarySegmentUtils.allocateReuseBytes": 25,
          "org/apache/flink/table/data/binary/BinarySegmentUtils.getByte": 22,
          "tech/streamfusion/operator/RowDataToArrowOperator.armFlushTimer": 15,
          "org/apache/flink/table/data/binary/BinarySegmentUtils.getInt": 9,
          "tech/streamfusion/arrow/StringCacheColumns.readers": 9,
          "org/apache/flink/table/data/binary/BinarySegmentUtils.getLong": 7,
          "tech/streamfusion/arrow/StringCacheColumns.name": 5,
          "org/apache/flink/table/runtime/typeutils/RowDataSerializer.<init>": 5,
          "tech/streamfusion/arrow/writers/NestedStringWriter.forRow": 4,
          "tech/streamfusion/arrow/writers/NestedStringWriter.<init>": 4,
          "tech/streamfusion/arrow/StringCacheColumns$Writer.finish": 4,
          "org/apache/flink/table/data/binary/BinarySegmentUtils.hash": 3,
          "tech/streamfusion/operator/RowDataToArrowOperator.open": 2,
          "org/apache/flink/table/data/binary/BinarySegmentUtils.byteIndex": 2,
          "tech/streamfusion/arrow/writers/VarCharWriter.forRow": 2,
          "arrow_data::transform::MutableArrayData::with_capacities": 2,
          "tech/streamfusion/operator/NativeColumnarTableFunctionOperator.discard": 2,
          "tech/streamfusion/operator/RowDataToArrowOperator.processWatermark": 2,
          "tech/streamfusion/arrow/Utf16Cache$Writer.<init>": 1,
          "tech/streamfusion/arrow/writers/NestedStringWriter$$Lambda$3651.0x00007ddd7cf07d60.apply": 1,
          "tech/streamfusion/arrow/writers/NestedStringWriter.lambda$forRow$0": 1,
          "tech/streamfusion/arrow/writers/NestedStringWriter.finish": 1,
          "arrow_data::transform::MutableArrayData::new": 1,
          "tech/streamfusion/arrow/writers/VarCharWriter$VarCharWriterForRow.<init>": 1,
          "tech/streamfusion/arrow/writers/VarCharWriter.<init>": 1,
          "org/apache/flink/table/data/binary/BinarySegmentUtils.bitSet": 1,
          "org/apache/flink/table/runtime/typeutils/RowDataSerializer$$Lambda$2441.0x00007ddd7cba4e58.apply": 1,
          "org/apache/flink/table/runtime/typeutils/RowDataSerializer$$Lambda$2445.0x00007ddd7cba6df8.apply": 1,
          "org/apache/flink/table/runtime/typeutils/RowDataSerializer.lambda$new$2": 1,
          "org/apache/flink/table/runtime/typeutils/BinaryRowDataSerializer.<init>": 1
        }
      }
    },
    {
      "id": "wide-string-after",
      "description": "Final bounded bulk UTF-16 copies and lazy scalar cache sidecars.",
      "source_state": "final",
      "html_sha256": "2d216bcc56178ac029ade77ad0b6629234a977cc9ac2108b64af54e310dba481",
      "log_sha256": "69a87af0afbd32a9d8b047bde6b6017aa6245f6e43b72dedc27ba9c7ca9d34d5",
      "diagnostic_job_lines": [
        "[generated-unnest-trial] shape=map_string grouped=false updating=true rows=1000000 entries=4 bytes=128 keys=64 engine=Flink trial=0 warmup=true seconds=2.887143605",
        "[generated-unnest-trial] shape=map_string grouped=false updating=true rows=1000000 entries=4 bytes=128 keys=64 engine=StreamFusion trial=0 warmup=true seconds=2.584833572",
        "[generated-unnest-trial] shape=map_string grouped=false updating=true rows=1000000 entries=4 bytes=128 keys=64 engine=StreamFusion trial=1 warmup=false seconds=2.122775309",
        "[generated-unnest-trial] shape=map_string grouped=false updating=true rows=1000000 entries=4 bytes=128 keys=64 engine=Flink trial=1 warmup=false seconds=2.097868726"
      ],
      "counters": {
        "samples": 29329,
        "native_generated_inclusive_samples": 2876,
        "top_self_samples": {
          "_raw_spin_unlock_irqrestore": 1262,
          "itable stub": 825,
          "/usr/lib/x86_64-linux-gnu/libc.so.6": 502,
          "IndexSetIterator::advance_and_next": 488,
          "SymbolTable::do_lookup": 439,
          "PhaseChaitin::Split": 392,
          "PhaseChaitin::gather_lrg_masks": 344,
          "/usr/lib/x86_64-linux-gnu/libz.so.1.2.11": 330,
          "org/apache/flink/core/memory/MemorySegment.<init>": 280,
          "PhaseChaitin::interfere_with_live": 254,
          "PhaseChaitin::elide_copy": 251,
          "PhaseIdealLoop::build_loop_late": 241,
          "PhaseLive::compute": 239,
          "G1ParScanThreadState::trim_queue_to_threshold": 221,
          "clear_page_erms": 215,
          "org/apache/flink/table/runtime/typeutils/RowDataSerializer.copyRowData": 207,
          "org/apache/flink/table/data/GenericRowData.<init>": 196,
          "PhaseIdealLoop::build_loop_early": 193,
          "org/apache/flink/table/data/binary/BinarySegmentUtils.copyToBytes": 185,
          "jbyte_disjoint_arraycopy": 183,
          "InstanceKlass::find_method_index": 175,
          "PhaseChaitin::post_allocate_copy_removal": 174,
          "jlong_disjoint_arraycopy": 170,
          "org/apache/flink/table/data/binary/StringUtf8Utils.encodeUTF8": 166,
          "PhaseChaitin::build_ifg_physical": 146,
          "PhaseLive::add_liveout": 144,
          "arrow_data::transform::build_extend_null_bits::{{closure}}": 135,
          "org/apache/flink/table/data/GenericRowData.getArity": 134,
          "PhaseIdealLoop::Dominators": 133,
          "org/apache/flink/table/data/GenericRowData.isNullAt": 130,
          "PhaseIdealLoop::build_loop_late_post_work": 129,
          "tech/streamfusion/GeneratedUnnestBenchmark.lambda$completeJobsRetainConstructorPredicateAndRepresentationCosts$4a50ceca$1": 128,
          "__tls_get_addr": 121,
          "org/apache/flink/table/data/binary/BinaryStringData.copy": 118,
          "PhaseAggressiveCoalesce::insert_copies": 116
        },
        "native_generated_top_self_samples": {
          "itable stub": 247,
          "org/apache/flink/core/memory/MemorySegment.<init>": 113,
          "jbyte_disjoint_arraycopy": 92,
          "jdk/internal/misc/Unsafe.copyMemory": 91,
          "ColumnarGeneratedUnnest$35.processElement_split61": 76,
          "tech/streamfusion/arrow/StringCacheColumns$Writer.<init>": 72,
          "org/apache/flink/table/data/binary/BinarySegmentUtils.copyToBytes": 67,
          "ColumnarGeneratedUnnest$35.processElement_split37": 67,
          "org/apache/arrow/vector/VarCharVector.get": 66,
          "jlong_disjoint_arraycopy": 65,
          "org/apache/flink/table/runtime/typeutils/RowDataSerializer.copyRowData": 59,
          "jint_disjoint_arraycopy": 55,
          "org/apache/flink/table/data/GenericRowData.<init>": 54,
          "org/apache/flink/table/runtime/operators/sink/constraint/NotNullConstraint.enforce": 46,
          "org/apache/flink/table/data/GenericRowData.isNullAt": 42,
          "org/apache/flink/table/data/columnar/ColumnarRowData.getArity": 39,
          "org/apache/flink/table/data/binary/BinaryStringDataUtil.concat": 38,
          "org/apache/flink/table/data/columnar/vector/VectorizedColumnBatch.isNullAt": 35,
          "tech/streamfusion/arrow/vectors/ArrowVarCharColumnVector.isNullAt": 35,
          "vtable stub": 34,
          "org/apache/flink/streaming/runtime/operators/sink/SinkWriterOperator.processElement": 34,
          "org/apache/flink/table/data/GenericRowData.setField": 32,
          "tech/streamfusion/arrow/writers/VarCharWriter.doWrite": 32,
          "jdk/internal/misc/Unsafe.getLong": 31,
          "org/apache/flink/table/data/GenericRowData.getArity": 28,
          "org/apache/flink/table/data/binary/BinaryStringData.copy": 27,
          "org/apache/flink/table/data/binary/LazyBinaryFormat.<init>": 25,
          "java/lang/String.<init>": 25,
          "_raw_spin_unlock_irqrestore": 25,
          "org/apache/arrow/vector/BaseFixedWidthVector.isSet": 25,
          "org/apache/flink/core/memory/MemorySegment.get": 23,
          "org/apache/flink/table/data/utils/ProjectedRowData.getString": 21,
          "org/apache/flink/table/data/columnar/ColumnarRowData.isNullAt": 21,
          "tech/streamfusion/arrow/writers/ArrowFieldWriter.getCount": 21,
          "unsafe_arraycopy": 20
        },
        "selected_inclusive_samples": {
          "org/apache/flink/table/runtime/typeutils/RowDataSerializer.copy": 7048,
          "tech/streamfusion/operator/RowDataToArrowOperator.processElement": 3821,
          "tech/streamfusion/operator/NativeColumnarTableFunctionOperator$1.collect": 3755,
          "tech/streamfusion/operator/RowDataToArrowOperator.flush": 3502,
          "tech/streamfusion/operator/NativeColumnarDropUpdateBeforeOperator.processElement": 3474,
          "org/apache/flink/table/runtime/typeutils/RowDataSerializer.copyRowData": 3253,
          "tech/streamfusion/operator/NativeColumnarTableFunctionOperator.processElement": 2876,
          "tech/streamfusion/operator/NativeColumnarTableFunctionOperator.append": 1868,
          "tech/streamfusion/operator/NativeColumnarTableFunctionOperator.flush": 1347,
          "tech/streamfusion/operator/ArrowToRowDataOperator.processElement": 1291,
          "org/apache/flink/table/data/binary/BinarySegmentUtils.copyToBytes": 317,
          "arrow_select::filter::filter_record_batch": 244,
          "arrow_select::filter::FilterPredicate::filter_record_batch": 243,
          "tech/streamfusion/arrow/writers/VarCharWriter.doWrite": 224,
          "arrow_data::transform::MutableArrayData::extend": 206,
          "tech/streamfusion/arrow/writers/NestedStringWriter.doWrite": 201,
          "tech/streamfusion/arrow/Utf16Cache$Writer.write": 133,
          "tech/streamfusion/arrow/StringCacheColumns.read": 106,
          "tech/streamfusion/arrow/StringCacheColumns$Writer.<init>": 78,
          "tech/streamfusion/arrow/Utf16Cache.read": 76,
          "tech/streamfusion/arrow/StringCacheColumns$Writer.write": 57,
          "org/apache/flink/table/data/binary/BinarySegmentUtils.readStringData": 53,
          "org/apache/flink/table/data/binary/BinarySegmentUtils.allocateReuseBytes": 34,
          "tech/streamfusion/operator/NativeColumnarTableFunctionOperator.open": 29,
          "org/apache/flink/table/data/binary/BinarySegmentUtils.bitGet": 29,
          "org/apache/flink/table/data/binary/BinarySegmentUtils.inFirstSegment": 28,
          "tech/streamfusion/arrow/writers/VarCharWriter$VarCharWriterForRow.isNullAt": 27,
          "org/apache/flink/table/data/binary/BinarySegmentUtils.getByte": 19,
          "tech/streamfusion/operator/RowDataToArrowOperator.armFlushTimer": 19,
          "tech/streamfusion/arrow/writers/VarCharWriter$VarCharWriterForRow.readString": 18,
          "org/apache/flink/table/data/binary/BinarySegmentUtils.getLong": 11,
          "org/apache/flink/table/data/binary/BinarySegmentUtils.getInt": 10,
          "org/apache/flink/table/runtime/typeutils/RowDataSerializer.<init>": 8,
          "arrow_data::transform::MutableArrayData::with_capacities": 3,
          "tech/streamfusion/arrow/StringCacheColumns$Writer.finish": 3,
          "tech/streamfusion/arrow/StringCacheColumns.readers": 3,
          "tech/streamfusion/operator/RowDataToArrowOperator.processWatermark": 3,
          "tech/streamfusion/arrow/writers/NestedStringWriter.forRow": 2,
          "tech/streamfusion/arrow/writers/NestedStringWriter.<init>": 2,
          "tech/streamfusion/arrow/writers/NestedStringWriter$$Lambda$3654.0x00007c7f74f38270.apply": 2,
          "arrow_data::transform::MutableArrayData::new": 2,
          "org/apache/flink/table/data/binary/BinarySegmentUtils.byteIndex": 2,
          "org/apache/flink/table/runtime/typeutils/RowDataSerializer$$Lambda$2448.0x00007c7f74ba7be8.apply": 2,
          "tech/streamfusion/operator/NativeColumnarDropUpdateBeforeOperator.open": 1,
          "tech/streamfusion/arrow/Utf16Cache$Writer.<init>": 1,
          "tech/streamfusion/arrow/writers/NestedStringWriter.lambda$forRow$0": 1,
          "tech/streamfusion/arrow/writers/NestedStringWriter.finish": 1,
          "tech/streamfusion/operator/NativeColumnarTableFunctionOperator.discard": 1,
          "tech/streamfusion/operator/RowDataToArrowOperator$$Lambda$3655.0x00007c7f74f38b60.onProcessingTime": 1,
          "org/apache/flink/table/runtime/typeutils/RowDataSerializer$$Lambda$2452.0x00007c7f74ba3d60.apply": 1,
          "org/apache/flink/table/runtime/typeutils/RowDataSerializer.lambda$new$2": 1,
          "org/apache/flink/table/runtime/typeutils/BinaryRowDataSerializer.<init>": 1,
          "tech/streamfusion/operator/ArrowToRowDataOperator.<init>": 1
        }
      }
    }
  ],
  "diagnostic_complete_job_count": 16
}
