Created
September 24, 2025 15:42
-
-
Save cmelchior/8670fb5d3b8df75b801405a6b53e4175 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "cells" : [ { | |
| "metadata" : { | |
| "collapsed" : true | |
| }, | |
| "cell_type" : "markdown", | |
| "source" : [ "# Benchmark Analysis\n", "This notebook demonstrates how you can analyze and plot benchmark results for a more detailed analysis.\n", "\n", "First you need to run the benchmark. Using\n", "```shell\n", "> ./gradlew :examples:jvmBenchmark\n", "```\n", "This Notebook will then analyze the latest results and plot them." ], | |
| "id" : "acbb028a1f5dff2e" | |
| }, { | |
| "metadata" : { | |
| "ExecuteTime" : { | |
| "end_time" : "2025-09-24T15:39:57.046879Z", | |
| "start_time" : "2025-09-24T15:39:51.575144Z" | |
| } | |
| }, | |
| "cell_type" : "code", | |
| "source" : "%use serialization, dataframe, kandy", | |
| "id" : "a62a1871ebe1d272", | |
| "outputs" : [ ], | |
| "execution_count" : 1 | |
| }, { | |
| "metadata" : { | |
| "ExecuteTime" : { | |
| "end_time" : "2025-09-24T15:41:18.681245Z", | |
| "start_time" : "2025-09-24T15:41:18.410544Z" | |
| } | |
| }, | |
| "cell_type" : "code", | |
| "source" : [ "import java.nio.file.Files\n", "import java.nio.file.attribute.BasicFileAttributes\n", "import kotlin.io.path.exists\n", "import kotlin.io.path.forEachDirectoryEntry\n", "import kotlin.io.path.isDirectory\n", "import kotlin.io.path.listDirectoryEntries\n", "import kotlin.io.path.readText\n", "\n", "val runsDir = notebook.workingDir.resolve(\"kotlin-multiplatform/build/reports/benchmarks/main\")\n", "val lastRunDir = runsDir.listDirectoryEntries()\n", " .filter { it.isDirectory() }\n", " .sortedByDescending { dir -> Files.readAttributes(dir, BasicFileAttributes::class.java).creationTime() }\n", " .first()\n", "val outputFile = lastRunDir.resolve(\"jvm.json\")\n", "val benchmarkData = outputFile.readText().deserializeJson()\n", "// Comment this out to see the file content inside the notebook.\n", "// benchmarkData" ], | |
| "id" : "436aaa659bc0dbb3", | |
| "outputs" : [ ], | |
| "execution_count" : 9 | |
| }, { | |
| "metadata" : { | |
| "ExecuteTime" : { | |
| "end_time" : "2025-09-24T15:39:58.600572Z", | |
| "start_time" : "2025-09-24T15:39:58.217861Z" | |
| } | |
| }, | |
| "cell_type" : "code", | |
| "source" : [ "// Move results into dataframe\n", "data class Benchmark(val name: String, val score: Double, val error: Double, val unit: String)\n", "\n", "val benchmarksDataFrame = benchmarkData.map {\n", " val paramInfo = it.params?.let {\n", " \" [data=${it.`data`}, text=\\\"${it.text}\\\", value=${it.`value`}]\"\n", " } ?: \"\"\n", " val name = it.benchmark + paramInfo\n", " Benchmark(name, it.primaryMetric.score, it.primaryMetric.scoreError, it.primaryMetric.scoreUnit)\n", "}.toDataFrame()\n", "benchmarksDataFrame" ], | |
| "id" : "2d14ca4abaf8347b", | |
| "outputs" : [ { | |
| "data" : { | |
| "text/html" : [ " <iframe onload=\"o_resize_iframe_out_1()\" style=\"width:100%;\" class=\"result_container\" id=\"iframe_out_1\" frameBorder=\"0\" srcdoc=\" <html>\n", " <head>\n", " <style type="text/css">\n", " :root {\n", " --background: #fff;\n", " --background-odd: #f5f5f5;\n", " --background-hover: #d9edfd;\n", " --header-text-color: #474747;\n", " --text-color: #848484;\n", " --text-color-dark: #000;\n", " --text-color-medium: #737373;\n", " --text-color-pale: #b3b3b3;\n", " --inner-border-color: #aaa;\n", " --bold-border-color: #000;\n", " --link-color: #296eaa;\n", " --link-color-pale: #296eaa;\n", " --link-hover: #1a466c;\n", "}\n", "\n", ":root[theme="dark"], :root [data-jp-theme-light="false"], .dataframe_dark{\n", " --background: #303030;\n", " --background-odd: #3c3c3c;\n", " --background-hover: #464646;\n", " --header-text-color: #dddddd;\n", " --text-color: #b3b3b3;\n", " --text-color-dark: #dddddd;\n", " --text-color-medium: #b2b2b2;\n", " --text-color-pale: #737373;\n", " --inner-border-color: #707070;\n", " --bold-border-color: #777777;\n", " --link-color: #008dc0;\n", " --link-color-pale: #97e1fb;\n", " --link-hover: #00688e;\n", "}\n", "\n", "p.dataframe_description {\n", " color: var(--text-color-dark);\n", "}\n", "\n", "table.dataframe {\n", " font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;\n", " font-size: 12px;\n", " background-color: var(--background);\n", " color: var(--text-color-dark);\n", " border: none;\n", " border-collapse: collapse;\n", "}\n", "\n", "table.dataframe th, td {\n", " padding: 6px;\n", " border: 1px solid transparent;\n", " text-align: left;\n", "}\n", "\n", "table.dataframe th {\n", " background-color: var(--background);\n", " color: var(--header-text-color);\n", "}\n", "\n", "table.dataframe td {\n", " vertical-align: top;\n", " white-space: nowrap;\n", "}\n", "\n", "table.dataframe th.bottomBorder {\n", " border-bottom-color: var(--bold-border-color);\n", "}\n", "\n", "table.dataframe tbody > tr:nth-child(odd) {\n", " background: var(--background-odd);\n", "}\n", "\n", "table.dataframe tbody > tr:nth-child(even) {\n", " background: var(--background);\n", "}\n", "\n", "table.dataframe tbody > tr:hover {\n", " background: var(--background-hover);\n", "}\n", "\n", "table.dataframe a {\n", " cursor: pointer;\n", " color: var(--link-color);\n", " text-decoration: none;\n", "}\n", "\n", "table.dataframe tr:hover > td a {\n", " color: var(--link-color-pale);\n", "}\n", "\n", "table.dataframe a:hover {\n", " color: var(--link-hover);\n", " text-decoration: underline;\n", "}\n", "\n", "table.dataframe img {\n", " max-width: fit-content;\n", "}\n", "\n", "table.dataframe th.complex {\n", " background-color: var(--background);\n", " border: 1px solid var(--background);\n", "}\n", "\n", "table.dataframe .leftBorder {\n", " border-left-color: var(--inner-border-color);\n", "}\n", "\n", "table.dataframe .rightBorder {\n", " border-right-color: var(--inner-border-color);\n", "}\n", "\n", "table.dataframe .rightAlign {\n", " text-align: right;\n", "}\n", "\n", "table.dataframe .expanderSvg {\n", " width: 8px;\n", " height: 8px;\n", " margin-right: 3px;\n", "}\n", "\n", "table.dataframe .expander {\n", " display: flex;\n", " align-items: center;\n", "}\n", "\n", "/* formatting */\n", "\n", "table.dataframe .null {\n", " color: var(--text-color-pale);\n", "}\n", "\n", "table.dataframe .structural {\n", " color: var(--text-color-medium);\n", " font-weight: bold;\n", "}\n", "\n", "table.dataframe .dataFrameCaption {\n", " font-weight: bold;\n", "}\n", "\n", "table.dataframe .numbers {\n", " color: var(--text-color-dark);\n", "}\n", "\n", "table.dataframe td:hover .formatted .structural, .null {\n", " color: var(--text-color-dark);\n", "}\n", "\n", "table.dataframe tr:hover .formatted .structural, .null {\n", " color: var(--text-color-dark);\n", "}\n", "\n", "\n", ":root {\n", " --scroll-bg: #f5f5f5;\n", " --scroll-fg: #b3b3b3;\n", "}\n", ":root[theme="dark"], :root [data-jp-theme-light="false"]{\n", " --scroll-bg: #3c3c3c;\n", " --scroll-fg: #97e1fb;\n", "}\n", "body {\n", " scrollbar-color: var(--scroll-fg) var(--scroll-bg);\n", "}\n", "body::-webkit-scrollbar {\n", " width: 10px; /* Mostly for vertical scrollbars */\n", " height: 10px; /* Mostly for horizontal scrollbars */\n", "}\n", "body::-webkit-scrollbar-thumb {\n", " background-color: var(--scroll-fg);\n", "}\n", "body::-webkit-scrollbar-track {\n", " background-color: var(--scroll-bg);\n", "}\n", " </style>\n", " </head>\n", " <body>\n", " <table class="dataframe" id="df_-536870912"></table>\n", "\n", "<p class="dataframe_description">DataFrame: rowsCount = 20, columnsCount = 4</p>\n", "\n", " </body>\n", " <script>\n", " (function () {\n", " window.DataFrame = window.DataFrame || new (function () {\n", " this.addTable = function (df) {\n", " let cols = df.cols;\n", " for (let i = 0; i < cols.length; i++) {\n", " for (let c of cols[i].children) {\n", " cols[c].parent = i;\n", " }\n", " }\n", " df.nrow = 0\n", " for (let i = 0; i < df.cols.length; i++) {\n", " if (df.cols[i].values.length > df.nrow) df.nrow = df.cols[i].values.length\n", " }\n", " if (df.id === df.rootId) {\n", " df.expandedFrames = new Set()\n", " df.childFrames = {}\n", " const table = this.getTableElement(df.id)\n", " table.df = df\n", " for (let i = 0; i < df.cols.length; i++) {\n", " let col = df.cols[i]\n", " if (col.parent === undefined && col.children.length > 0) col.expanded = true\n", " }\n", " } else {\n", " const rootDf = this.getTableData(df.rootId)\n", " rootDf.childFrames[df.id] = df\n", " }\n", " }\n", "\n", " this.computeRenderData = function (df) {\n", " let result = []\n", " let pos = 0\n", " for (let col = 0; col < df.cols.length; col++) {\n", " if (df.cols[col].parent === undefined)\n", " pos += this.computeRenderDataRec(df.cols, col, pos, 0, result, false, false)\n", " }\n", " for (let i = 0; i < result.length; i++) {\n", " let row = result[i]\n", " for (let j = 0; j < row.length; j++) {\n", " let cell = row[j]\n", " if (j === 0)\n", " cell.leftBd = false\n", " if (j < row.length - 1) {\n", " let nextData = row[j + 1]\n", " if (nextData.leftBd) cell.rightBd = true\n", " else if (cell.rightBd) nextData.leftBd = true\n", " } else cell.rightBd = false\n", " }\n", " }\n", " return result\n", " }\n", "\n", " this.computeRenderDataRec = function (cols, colId, pos, depth, result, leftBorder, rightBorder) {\n", " if (result.length === depth) {\n", " const array = [];\n", " if (pos > 0) {\n", " let j = 0\n", " for (let i = 0; j < pos; i++) {\n", " let c = result[depth - 1][i]\n", " j += c.span\n", " let copy = Object.assign({empty: true}, c)\n", " array.push(copy)\n", " }\n", " }\n", " result.push(array)\n", " }\n", " const col = cols[colId];\n", " let size = 0;\n", " if (col.expanded) {\n", " let childPos = pos\n", " for (let i = 0; i < col.children.length; i++) {\n", " let child = col.children[i]\n", " let childLeft = i === 0 && (col.children.length > 1 || leftBorder)\n", " let childRight = i === col.children.length - 1 && (col.children.length > 1 || rightBorder)\n", " let childSize = this.computeRenderDataRec(cols, child, childPos, depth + 1, result, childLeft, childRight)\n", " childPos += childSize\n", " size += childSize\n", " }\n", " } else {\n", " for (let i = depth + 1; i < result.length; i++)\n", " result[i].push({id: colId, span: 1, leftBd: leftBorder, rightBd: rightBorder, empty: true})\n", " size = 1\n", " }\n", " let left = leftBorder\n", " let right = rightBorder\n", " if (size > 1) {\n", " left = true\n", " right = true\n", " }\n", " result[depth].push({id: colId, span: size, leftBd: left, rightBd: right})\n", " return size\n", " }\n", "\n", " this.getTableElement = function (id) {\n", " return document.getElementById("df_" + id)\n", " }\n", "\n", " this.getTableData = function (id) {\n", " return this.getTableElement(id).df\n", " }\n", "\n", " this.createExpander = function (isExpanded) {\n", " const svgNs = "http://www.w3.org/2000/svg"\n", " let svg = document.createElementNS(svgNs, "svg")\n", " svg.classList.add("expanderSvg")\n", " let path = document.createElementNS(svgNs, "path")\n", " if (isExpanded) {\n", " svg.setAttribute("viewBox", "0 -2 8 8")\n", " path.setAttribute("d", "M1 0 l-1 1 4 4 4 -4 -1 -1 -3 3Z")\n", " } else {\n", " svg.setAttribute("viewBox", "-2 0 8 8")\n", " path.setAttribute("d", "M1 0 l-1 1 3 3 -3 3 1 1 4 -4Z")\n", " }\n", " path.setAttribute("fill", "currentColor")\n", " svg.appendChild(path)\n", " return svg\n", " }\n", "\n", " this.renderTable = function (id) {\n", "\n", " let table = this.getTableElement(id)\n", "\n", " if (table === null) return\n", "\n", " table.innerHTML = ""\n", "\n", " let df = table.df\n", " let rootDf = df.rootId === df.id ? df : this.getTableData(df.rootId)\n", "\n", " // header\n", " let header = document.createElement("thead")\n", " table.appendChild(header)\n", "\n", " let renderData = this.computeRenderData(df)\n", " for (let j = 0; j < renderData.length; j++) {\n", " let rowData = renderData[j]\n", " let tr = document.createElement("tr");\n", " let isLastRow = j === renderData.length - 1\n", " header.appendChild(tr);\n", " for (let i = 0; i < rowData.length; i++) {\n", " let cell = rowData[i]\n", " let th = document.createElement("th");\n", " th.setAttribute("colspan", cell.span)\n", " let colId = cell.id\n", " let col = df.cols[colId];\n", " if (!cell.empty) {\n", " if (col.children.length === 0) {\n", " th.innerHTML = col.name\n", " } else {\n", " let link = document.createElement("a")\n", " link.className = "expander"\n", " let that = this\n", " link.onclick = function () {\n", " col.expanded = !col.expanded\n", " that.renderTable(id)\n", " }\n", " link.appendChild(this.createExpander(col.expanded))\n", " link.innerHTML += col.name\n", " th.appendChild(link)\n", " }\n", " }\n", " let classes = (cell.leftBd ? " leftBorder" : "") + (cell.rightBd ? " rightBorder" : "")\n", " if (col.rightAlign)\n", " classes += " rightAlign"\n", " if (isLastRow)\n", " classes += " bottomBorder"\n", " if (classes.length > 0)\n", " th.setAttribute("class", classes)\n", " tr.appendChild(th)\n", " }\n", " }\n", "\n", " // body\n", " let body = document.createElement("tbody")\n", " table.appendChild(body)\n", "\n", " let columns = renderData.pop()\n", " for (let row = 0; row < df.nrow; row++) {\n", " let tr = document.createElement("tr");\n", " body.appendChild(tr)\n", " for (let i = 0; i < columns.length; i++) {\n", " let cell = columns[i]\n", " let td = document.createElement("td");\n", " let colId = cell.id\n", " let col = df.cols[colId]\n", " let classes = (cell.leftBd ? " leftBorder" : "") + (cell.rightBd ? " rightBorder" : "")\n", " if (col.rightAlign)\n", " classes += " rightAlign"\n", " if (classes.length > 0)\n", " td.setAttribute("class", classes)\n", " tr.appendChild(td)\n", " let value = col.values[row]\n", " if (value.frameId !== undefined) {\n", " let frameId = value.frameId\n", " let expanded = rootDf.expandedFrames.has(frameId)\n", " let link = document.createElement("a")\n", " link.className = "expander"\n", " let that = this\n", " link.onclick = function () {\n", " if (rootDf.expandedFrames.has(frameId))\n", " rootDf.expandedFrames.delete(frameId)\n", " else rootDf.expandedFrames.add(frameId)\n", " that.renderTable(id)\n", " }\n", " link.appendChild(this.createExpander(expanded))\n", " link.innerHTML += value.value\n", " if (expanded) {\n", " td.appendChild(link)\n", " td.appendChild(document.createElement("p"))\n", " const childTable = document.createElement("table")\n", " childTable.className = "dataframe"\n", " childTable.id = "df_" + frameId\n", " let childDf = rootDf.childFrames[frameId]\n", " childTable.df = childDf\n", " td.appendChild(childTable)\n", " this.renderTable(frameId)\n", " if (childDf.nrow !== childDf.totalRows) {\n", " const footer = document.createElement("p")\n", " footer.innerText = `... showing only top ${childDf.nrow} of ${childDf.totalRows} rows`\n", " td.appendChild(footer)\n", " }\n", " } else {\n", " td.appendChild(link)\n", " }\n", " } else if (value.style !== undefined) {\n", " td.innerHTML = value.value\n", " td.setAttribute("style", value.style)\n", " } else td.innerHTML = value\n", " this.nodeScriptReplace(td)\n", " }\n", " }\n", " }\n", "\n", " this.nodeScriptReplace = function (node) {\n", " if (this.nodeScriptIs(node) === true) {\n", " node.parentNode.replaceChild(this.nodeScriptClone(node), node);\n", " } else {\n", " let i = -1, children = node.childNodes;\n", " while (++i < children.length) {\n", " this.nodeScriptReplace(children[i]);\n", " }\n", " }\n", "\n", " return node;\n", " }\n", "\n", " this.nodeScriptClone = function (node) {\n", " let script = document.createElement("script");\n", " script.text = node.innerHTML;\n", "\n", " let i = -1, attrs = node.attributes, attr;\n", " while (++i < attrs.length) {\n", " script.setAttribute((attr = attrs[i]).name, attr.value);\n", " }\n", " return script;\n", " }\n", "\n", " this.nodeScriptIs = function (node) {\n", " return node.tagName === 'SCRIPT';\n", " }\n", " })()\n", "\n", " window.call_DataFrame = function (f) {\n", " return f();\n", " };\n", "\n", " let funQueue = window["kotlinQueues"] && window["kotlinQueues"]["DataFrame"];\n", " if (funQueue) {\n", " funQueue.forEach(function (f) {\n", " f();\n", " });\n", " funQueue = [];\n", " }\n", "})()\n", "\n", "/*<!--*/\n", "call_DataFrame(function() { DataFrame.addTable({ cols: [{ name: "<span title=\"name: String\">name</span>", children: [], rightAlign: false, values: ["test.InheritedBenchmark.baseBenchmark","<span class=\"formatted\" title=\"test.InheritedBenchmark.inheritedBenchmark\">test.InheritedBenchmark.inheritedBenc<span class=\"structural\">...</span></span>","<span class=\"formatted\" title=\"test.ParamBenchmark.mathBenchmark [data=1, text=&#34;a &#34;string&#34; with quotes&#34;, value=1]\">test.ParamBenchmark.mathBenchmark [da<span class=\"structural\">...</span></span>","<span class=\"formatted\" title=\"test.ParamBenchmark.mathBenchmark [data=1, text=&#34;a &#34;string&#34; with quotes&#34;, value=2]\">test.ParamBenchmark.mathBenchmark [da<span class=\"structural\">...</span></span>","<span class=\"formatted\" title=\"test.ParamBenchmark.mathBenchmark [data=2, text=&#34;a &#34;string&#34; with quotes&#34;, value=1]\">test.ParamBenchmark.mathBenchmark [da<span class=\"structural\">...</span></span>","<span class=\"formatted\" title=\"test.ParamBenchmark.mathBenchmark [data=2, text=&#34;a &#34;string&#34; with quotes&#34;, value=2]\">test.ParamBenchmark.mathBenchmark [da<span class=\"structural\">...</span></span>","<span class=\"formatted\" title=\"test.ParamBenchmark.otherBenchmark [data=1, text=&#34;a &#34;string&#34; with quotes&#34;, value=1]\">test.ParamBenchmark.otherBenchmark [d<span class=\"structural\">...</span></span>","<span class=\"formatted\" title=\"test.ParamBenchmark.otherBenchmark [data=1, text=&#34;a &#34;string&#34; with quotes&#34;, value=2]\">test.ParamBenchmark.otherBenchmark [d<span class=\"structural\">...</span></span>","<span class=\"formatted\" title=\"test.ParamBenchmark.otherBenchmark [data=2, text=&#34;a &#34;string&#34; with quotes&#34;, value=1]\">test.ParamBenchmark.otherBenchmark [d<span class=\"structural\">...</span></span>","<span class=\"formatted\" title=\"test.ParamBenchmark.otherBenchmark [data=2, text=&#34;a &#34;string&#34; with quotes&#34;, value=2]\">test.ParamBenchmark.otherBenchmark [d<span class=\"structural\">...</span></span>","<span class=\"formatted\" title=\"test.ParamBenchmark.textContentCheck [data=1, text=&#34;a &#34;string&#34; with quotes&#34;, value=1]\">test.ParamBenchmark.textContentCheck <span class=\"structural\">...</span></span>","<span class=\"formatted\" title=\"test.ParamBenchmark.textContentCheck [data=1, text=&#34;a &#34;string&#34; with quotes&#34;, value=2]\">test.ParamBenchmark.textContentCheck <span class=\"structural\">...</span></span>","<span class=\"formatted\" title=\"test.ParamBenchmark.textContentCheck [data=2, text=&#34;a &#34;string&#34; with quotes&#34;, value=1]\">test.ParamBenchmark.textContentCheck <span class=\"structural\">...</span></span>","<span class=\"formatted\" title=\"test.ParamBenchmark.textContentCheck [data=2, text=&#34;a &#34;string&#34; with quotes&#34;, value=2]\">test.ParamBenchmark.textContentCheck <span class=\"structural\">...</span></span>","<span class=\"formatted\" title=\"test.nested.CommonBenchmark.mathBenchmark\">test.nested.CommonBenchmark.mathBench<span class=\"structural\">...</span></span>","test.CommonBenchmark.longBenchmark","<span class=\"formatted\" title=\"test.CommonBenchmark.longBlackholeBenchmark\">test.CommonBenchmark.longBlackholeBen<span class=\"structural\">...</span></span>","test.CommonBenchmark.mathBenchmark","test.JvmTestBenchmark.cosBenchmark","test.JvmTestBenchmark.sqrtBenchmark"] }, \n", "{ name: "<span title=\"score: Double\">score</span>", children: [], rightAlign: true, values: ["<span class=\"formatted\" title=\"\"><span class=\"numbers\">1159050.348401</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">145098889.054236</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">209712.172221</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">217745.267345</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">103881.763059</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">103368.085738</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">2680848.028551</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">2536532.158499</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">2650213.077662</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">2676093.773669</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">154884.593052</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">154725.251181</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">154103.969887</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">155283.852441</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">149267.514644</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">0.000846</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">0.000023</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">0.000007</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">3.477089</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">0.536215</span></span>"] }, \n", "{ name: "<span title=\"error: Double\">error</span>", children: [], rightAlign: true, values: ["<span class=\"formatted\" title=\"\"><span class=\"numbers\">3748.652723</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">3682026.745413</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">6204.765083</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">567.128662</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">845.091655</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">1124.203555</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">10367.620110</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">201297.952312</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">92024.686748</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">6137.060320</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">418.498701</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">661.963724</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">911.775457</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">761.637638</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">398.839279</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">0.000004</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">0.000000</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">0.000000</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">0.012840</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">0.002181</span></span>"] }, \n", "{ name: "<span title=\"unit: String\">unit</span>", children: [], rightAlign: false, values: ["ops/s","ops/s","ops/ms","ops/ms","ops/ms","ops/ms","ops/ms","ops/ms","ops/ms","ops/ms","ops/ms","ops/ms","ops/ms","ops/ms","ops/ms","ms/op","ms/op","ms/op","ns/op","ns/op"] }, \n", "], id: -536870912, rootId: -536870912, totalRows: 20 } ) });\n", "/*-->*/\n", "\n", "call_DataFrame(function() { DataFrame.renderTable(-536870912) });\n", "\n", "\n", " </script>\n", " </html>\"></iframe>\n", " <script>\n", " function o_resize_iframe_out_1() {\n", " let elem = document.getElementById(\"iframe_out_1\");\n", " resize_iframe_out_1(elem);\n", " setInterval(resize_iframe_out_1, 5000, elem);\n", " }\n", " function resize_iframe_out_1(el) {\n", " let h = el.contentWindow.document.body.scrollHeight;\n", " el.height = h === 0 ? 0 : h + 41;\n", " }\n", " </script> <html>\n", " <head>\n", " <style type=\"text/css\">\n", " :root {\n", " --background: #fff;\n", " --background-odd: #f5f5f5;\n", " --background-hover: #d9edfd;\n", " --header-text-color: #474747;\n", " --text-color: #848484;\n", " --text-color-dark: #000;\n", " --text-color-medium: #737373;\n", " --text-color-pale: #b3b3b3;\n", " --inner-border-color: #aaa;\n", " --bold-border-color: #000;\n", " --link-color: #296eaa;\n", " --link-color-pale: #296eaa;\n", " --link-hover: #1a466c;\n", "}\n", "\n", ":root[theme=\"dark\"], :root [data-jp-theme-light=\"false\"], .dataframe_dark{\n", " --background: #303030;\n", " --background-odd: #3c3c3c;\n", " --background-hover: #464646;\n", " --header-text-color: #dddddd;\n", " --text-color: #b3b3b3;\n", " --text-color-dark: #dddddd;\n", " --text-color-medium: #b2b2b2;\n", " --text-color-pale: #737373;\n", " --inner-border-color: #707070;\n", " --bold-border-color: #777777;\n", " --link-color: #008dc0;\n", " --link-color-pale: #97e1fb;\n", " --link-hover: #00688e;\n", "}\n", "\n", "p.dataframe_description {\n", " color: var(--text-color-dark);\n", "}\n", "\n", "table.dataframe {\n", " font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n", " font-size: 12px;\n", " background-color: var(--background);\n", " color: var(--text-color-dark);\n", " border: none;\n", " border-collapse: collapse;\n", "}\n", "\n", "table.dataframe th, td {\n", " padding: 6px;\n", " border: 1px solid transparent;\n", " text-align: left;\n", "}\n", "\n", "table.dataframe th {\n", " background-color: var(--background);\n", " color: var(--header-text-color);\n", "}\n", "\n", "table.dataframe td {\n", " vertical-align: top;\n", " white-space: nowrap;\n", "}\n", "\n", "table.dataframe th.bottomBorder {\n", " border-bottom-color: var(--bold-border-color);\n", "}\n", "\n", "table.dataframe tbody > tr:nth-child(odd) {\n", " background: var(--background-odd);\n", "}\n", "\n", "table.dataframe tbody > tr:nth-child(even) {\n", " background: var(--background);\n", "}\n", "\n", "table.dataframe tbody > tr:hover {\n", " background: var(--background-hover);\n", "}\n", "\n", "table.dataframe a {\n", " cursor: pointer;\n", " color: var(--link-color);\n", " text-decoration: none;\n", "}\n", "\n", "table.dataframe tr:hover > td a {\n", " color: var(--link-color-pale);\n", "}\n", "\n", "table.dataframe a:hover {\n", " color: var(--link-hover);\n", " text-decoration: underline;\n", "}\n", "\n", "table.dataframe img {\n", " max-width: fit-content;\n", "}\n", "\n", "table.dataframe th.complex {\n", " background-color: var(--background);\n", " border: 1px solid var(--background);\n", "}\n", "\n", "table.dataframe .leftBorder {\n", " border-left-color: var(--inner-border-color);\n", "}\n", "\n", "table.dataframe .rightBorder {\n", " border-right-color: var(--inner-border-color);\n", "}\n", "\n", "table.dataframe .rightAlign {\n", " text-align: right;\n", "}\n", "\n", "table.dataframe .expanderSvg {\n", " width: 8px;\n", " height: 8px;\n", " margin-right: 3px;\n", "}\n", "\n", "table.dataframe .expander {\n", " display: flex;\n", " align-items: center;\n", "}\n", "\n", "/* formatting */\n", "\n", "table.dataframe .null {\n", " color: var(--text-color-pale);\n", "}\n", "\n", "table.dataframe .structural {\n", " color: var(--text-color-medium);\n", " font-weight: bold;\n", "}\n", "\n", "table.dataframe .dataFrameCaption {\n", " font-weight: bold;\n", "}\n", "\n", "table.dataframe .numbers {\n", " color: var(--text-color-dark);\n", "}\n", "\n", "table.dataframe td:hover .formatted .structural, .null {\n", " color: var(--text-color-dark);\n", "}\n", "\n", "table.dataframe tr:hover .formatted .structural, .null {\n", " color: var(--text-color-dark);\n", "}\n", "\n", "\n", " </style>\n", " </head>\n", " <body>\n", " <table class=\"dataframe\" id=\"static_df_-536870911\"><thead><tr><th class=\"bottomBorder\" style=\"text-align:left\">name</th><th class=\"bottomBorder\" style=\"text-align:left\">score</th><th class=\"bottomBorder\" style=\"text-align:left\">error</th><th class=\"bottomBorder\" style=\"text-align:left\">unit</th></tr></thead><tbody><tr><td style=\"vertical-align:top\">test.InheritedBenchmark.baseBenchmark</td><td style=\"vertical-align:top\">1159050.348401</td><td style=\"vertical-align:top\">3748.652723</td><td style=\"vertical-align:top\">ops/s</td></tr><tr><td style=\"vertical-align:top\">test.InheritedBenchmark.inheritedBenc<span class=\"structural\">...</span></td><td style=\"vertical-align:top\">145098889.054236</td><td style=\"vertical-align:top\">3682026.745413</td><td style=\"vertical-align:top\">ops/s</td></tr><tr><td style=\"vertical-align:top\">test.ParamBenchmark.mathBenchmark [da<span class=\"structural\">...</span></td><td style=\"vertical-align:top\">209712.172221</td><td style=\"vertical-align:top\">6204.765083</td><td style=\"vertical-align:top\">ops/ms</td></tr><tr><td style=\"vertical-align:top\">test.ParamBenchmark.mathBenchmark [da<span class=\"structural\">...</span></td><td style=\"vertical-align:top\">217745.267345</td><td style=\"vertical-align:top\">567.128662</td><td style=\"vertical-align:top\">ops/ms</td></tr><tr><td style=\"vertical-align:top\">test.ParamBenchmark.mathBenchmark [da<span class=\"structural\">...</span></td><td style=\"vertical-align:top\">103881.763059</td><td style=\"vertical-align:top\">845.091655</td><td style=\"vertical-align:top\">ops/ms</td></tr><tr><td style=\"vertical-align:top\">test.ParamBenchmark.mathBenchmark [da<span class=\"structural\">...</span></td><td style=\"vertical-align:top\">103368.085738</td><td style=\"vertical-align:top\">1124.203555</td><td style=\"vertical-align:top\">ops/ms</td></tr><tr><td style=\"vertical-align:top\">test.ParamBenchmark.otherBenchmark [d<span class=\"structural\">...</span></td><td style=\"vertical-align:top\">2680848.028551</td><td style=\"vertical-align:top\">10367.620110</td><td style=\"vertical-align:top\">ops/ms</td></tr><tr><td style=\"vertical-align:top\">test.ParamBenchmark.otherBenchmark [d<span class=\"structural\">...</span></td><td style=\"vertical-align:top\">2536532.158499</td><td style=\"vertical-align:top\">201297.952312</td><td style=\"vertical-align:top\">ops/ms</td></tr><tr><td style=\"vertical-align:top\">test.ParamBenchmark.otherBenchmark [d<span class=\"structural\">...</span></td><td style=\"vertical-align:top\">2650213.077662</td><td style=\"vertical-align:top\">92024.686748</td><td style=\"vertical-align:top\">ops/ms</td></tr><tr><td style=\"vertical-align:top\">test.ParamBenchmark.otherBenchmark [d<span class=\"structural\">...</span></td><td style=\"vertical-align:top\">2676093.773669</td><td style=\"vertical-align:top\">6137.060320</td><td style=\"vertical-align:top\">ops/ms</td></tr><tr><td style=\"vertical-align:top\">test.ParamBenchmark.textContentCheck <span class=\"structural\">...</span></td><td style=\"vertical-align:top\">154884.593052</td><td style=\"vertical-align:top\">418.498701</td><td style=\"vertical-align:top\">ops/ms</td></tr><tr><td style=\"vertical-align:top\">test.ParamBenchmark.textContentCheck <span class=\"structural\">...</span></td><td style=\"vertical-align:top\">154725.251181</td><td style=\"vertical-align:top\">661.963724</td><td style=\"vertical-align:top\">ops/ms</td></tr><tr><td style=\"vertical-align:top\">test.ParamBenchmark.textContentCheck <span class=\"structural\">...</span></td><td style=\"vertical-align:top\">154103.969887</td><td style=\"vertical-align:top\">911.775457</td><td style=\"vertical-align:top\">ops/ms</td></tr><tr><td style=\"vertical-align:top\">test.ParamBenchmark.textContentCheck <span class=\"structural\">...</span></td><td style=\"vertical-align:top\">155283.852441</td><td style=\"vertical-align:top\">761.637638</td><td style=\"vertical-align:top\">ops/ms</td></tr><tr><td style=\"vertical-align:top\">test.nested.CommonBenchmark.mathBench<span class=\"structural\">...</span></td><td style=\"vertical-align:top\">149267.514644</td><td style=\"vertical-align:top\">398.839279</td><td style=\"vertical-align:top\">ops/ms</td></tr><tr><td style=\"vertical-align:top\">test.CommonBenchmark.longBenchmark</td><td style=\"vertical-align:top\">0.000846</td><td style=\"vertical-align:top\">0.000004</td><td style=\"vertical-align:top\">ms/op</td></tr><tr><td style=\"vertical-align:top\">test.CommonBenchmark.longBlackholeBen<span class=\"structural\">...</span></td><td style=\"vertical-align:top\">0.000023</td><td style=\"vertical-align:top\">0.000000</td><td style=\"vertical-align:top\">ms/op</td></tr><tr><td style=\"vertical-align:top\">test.CommonBenchmark.mathBenchmark</td><td style=\"vertical-align:top\">0.000007</td><td style=\"vertical-align:top\">0.000000</td><td style=\"vertical-align:top\">ms/op</td></tr><tr><td style=\"vertical-align:top\">test.JvmTestBenchmark.cosBenchmark</td><td style=\"vertical-align:top\">3.477089</td><td style=\"vertical-align:top\">0.012840</td><td style=\"vertical-align:top\">ns/op</td></tr><tr><td style=\"vertical-align:top\">test.JvmTestBenchmark.sqrtBenchmark</td><td style=\"vertical-align:top\">0.536215</td><td style=\"vertical-align:top\">0.002181</td><td style=\"vertical-align:top\">ns/op</td></tr></tbody></table>\n", " </body>\n", " <script>\n", " document.getElementById(\"static_df_-536870911\").style.display = \"none\";\n", " </script>\n", " </html>" ], | |
| "application/kotlindataframe+json" : "{\"$version\":\"2.1.1\",\"metadata\":{\"columns\":[\"name\",\"score\",\"error\",\"unit\"],\"types\":[{\"kind\":\"ValueColumn\",\"type\":\"kotlin.String\"},{\"kind\":\"ValueColumn\",\"type\":\"kotlin.Double\"},{\"kind\":\"ValueColumn\",\"type\":\"kotlin.Double\"},{\"kind\":\"ValueColumn\",\"type\":\"kotlin.String\"}],\"nrow\":20,\"ncol\":4},\"kotlin_dataframe\":[{\"name\":\"test.InheritedBenchmark.baseBenchmark\",\"score\":1159050.3484011823,\"error\":3748.6527227175225,\"unit\":\"ops/s\"},{\"name\":\"test.InheritedBenchmark.inheritedBenchmark\",\"score\":1.4509888905423555E8,\"error\":3682026.7454129574,\"unit\":\"ops/s\"},{\"name\":\"test.ParamBenchmark.mathBenchmark [data=1, text=\\\"a \\\"string\\\" with quotes\\\", value=1]\",\"score\":209712.17222125144,\"error\":6204.7650826986865,\"unit\":\"ops/ms\"},{\"name\":\"test.ParamBenchmark.mathBenchmark [data=1, text=\\\"a \\\"string\\\" with quotes\\\", value=2]\",\"score\":217745.26734478574,\"error\":567.1286622763312,\"unit\":\"ops/ms\"},{\"name\":\"test.ParamBenchmark.mathBenchmark [data=2, text=\\\"a \\\"string\\\" with quotes\\\", value=1]\",\"score\":103881.76305918726,\"error\":845.091654613496,\"unit\":\"ops/ms\"},{\"name\":\"test.ParamBenchmark.mathBenchmark [data=2, text=\\\"a \\\"string\\\" with quotes\\\", value=2]\",\"score\":103368.08573800913,\"error\":1124.2035547028786,\"unit\":\"ops/ms\"},{\"name\":\"test.ParamBenchmark.otherBenchmark [data=1, text=\\\"a \\\"string\\\" with quotes\\\", value=1]\",\"score\":2680848.0285513955,\"error\":10367.620110199798,\"unit\":\"ops/ms\"},{\"name\":\"test.ParamBenchmark.otherBenchmark [data=1, text=\\\"a \\\"string\\\" with quotes\\\", value=2]\",\"score\":2536532.1584992353,\"error\":201297.95231211095,\"unit\":\"ops/ms\"},{\"name\":\"test.ParamBenchmark.otherBenchmark [data=2, text=\\\"a \\\"string\\\" with quotes\\\", value=1]\",\"score\":2650213.077661748,\"error\":92024.68674833527,\"unit\":\"ops/ms\"},{\"name\":\"test.ParamBenchmark.otherBenchmark [data=2, text=\\\"a \\\"string\\\" with quotes\\\", value=2]\",\"score\":2676093.7736686165,\"error\":6137.060319636991,\"unit\":\"ops/ms\"},{\"name\":\"test.ParamBenchmark.textContentCheck [data=1, text=\\\"a \\\"string\\\" with quotes\\\", value=1]\",\"score\":154884.59305200967,\"error\":418.4987006199166,\"unit\":\"ops/ms\"},{\"name\":\"test.ParamBenchmark.textContentCheck [data=1, text=\\\"a \\\"string\\\" with quotes\\\", value=2]\",\"score\":154725.251180618,\"error\":661.9637235298198,\"unit\":\"ops/ms\"},{\"name\":\"test.ParamBenchmark.textContentCheck [data=2, text=\\\"a \\\"string\\\" with quotes\\\", value=1]\",\"score\":154103.9698873938,\"error\":911.7754567574352,\"unit\":\"ops/ms\"},{\"name\":\"test.ParamBenchmark.textContentCheck [data=2, text=\\\"a \\\"string\\\" with quotes\\\", value=2]\",\"score\":155283.85244050203,\"error\":761.6376382789958,\"unit\":\"ops/ms\"},{\"name\":\"test.nested.CommonBenchmark.mathBenchmark\",\"score\":149267.51464363115,\"error\":398.8392788696256,\"unit\":\"ops/ms\"},{\"name\":\"test.CommonBenchmark.longBenchmark\",\"score\":8.459911936509983E-4,\"error\":4.255006804061264E-6,\"unit\":\"ms/op\"},{\"name\":\"test.CommonBenchmark.longBlackholeBenchmark\",\"score\":2.283681115680474E-5,\"error\":2.495606184215389E-7,\"unit\":\"ms/op\"},{\"name\":\"test.CommonBenchmark.mathBenchmark\",\"score\":6.683096887700141E-6,\"error\":1.3424038843476543E-8,\"unit\":\"ms/op\"},{\"name\":\"test.JvmTestBenchmark.cosBenchmark\",\"score\":3.4770893548299897,\"error\":0.012840203721180716,\"unit\":\"ns/op\"},{\"name\":\"test.JvmTestBenchmark.sqrtBenchmark\",\"score\":0.5362148556154316,\"error\":0.002180970454172613,\"unit\":\"ns/op\"}]}" | |
| }, | |
| "execution_count" : 3, | |
| "metadata" : { }, | |
| "output_type" : "execute_result" | |
| } ], | |
| "execution_count" : 3 | |
| }, { | |
| "metadata" : { | |
| "ExecuteTime" : { | |
| "end_time" : "2025-09-24T15:39:58.995159Z", | |
| "start_time" : "2025-09-24T15:39:58.663584Z" | |
| } | |
| }, | |
| "cell_type" : "code", | |
| "source" : [ "// Analyze underlying data for first benchmark.\n", "// `iteration` must be String for Kandy to group data correctly\n", "data class Row(val fork: Int, val iteration: String, val score: Double)\n", "val benchmark = benchmarkData.first()\n", "val rawData = benchmarkData.first().primaryMetric.rawData\n", "val df = rawData.flatMapIndexed { f, iter ->\n", " iter.mapIndexed { i, s -> Row(fork = f + 1, iteration = (i + 1).toString(), score = s) }\n", "}.toDataFrame()\n", "df" ], | |
| "id" : "d3da5d93cfdb1922", | |
| "outputs" : [ { | |
| "data" : { | |
| "text/html" : [ " <iframe onload=\"o_resize_iframe_out_2()\" style=\"width:100%;\" class=\"result_container\" id=\"iframe_out_2\" frameBorder=\"0\" srcdoc=\" <html>\n", " <head>\n", " <style type="text/css">\n", " :root {\n", " --background: #fff;\n", " --background-odd: #f5f5f5;\n", " --background-hover: #d9edfd;\n", " --header-text-color: #474747;\n", " --text-color: #848484;\n", " --text-color-dark: #000;\n", " --text-color-medium: #737373;\n", " --text-color-pale: #b3b3b3;\n", " --inner-border-color: #aaa;\n", " --bold-border-color: #000;\n", " --link-color: #296eaa;\n", " --link-color-pale: #296eaa;\n", " --link-hover: #1a466c;\n", "}\n", "\n", ":root[theme="dark"], :root [data-jp-theme-light="false"], .dataframe_dark{\n", " --background: #303030;\n", " --background-odd: #3c3c3c;\n", " --background-hover: #464646;\n", " --header-text-color: #dddddd;\n", " --text-color: #b3b3b3;\n", " --text-color-dark: #dddddd;\n", " --text-color-medium: #b2b2b2;\n", " --text-color-pale: #737373;\n", " --inner-border-color: #707070;\n", " --bold-border-color: #777777;\n", " --link-color: #008dc0;\n", " --link-color-pale: #97e1fb;\n", " --link-hover: #00688e;\n", "}\n", "\n", "p.dataframe_description {\n", " color: var(--text-color-dark);\n", "}\n", "\n", "table.dataframe {\n", " font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;\n", " font-size: 12px;\n", " background-color: var(--background);\n", " color: var(--text-color-dark);\n", " border: none;\n", " border-collapse: collapse;\n", "}\n", "\n", "table.dataframe th, td {\n", " padding: 6px;\n", " border: 1px solid transparent;\n", " text-align: left;\n", "}\n", "\n", "table.dataframe th {\n", " background-color: var(--background);\n", " color: var(--header-text-color);\n", "}\n", "\n", "table.dataframe td {\n", " vertical-align: top;\n", " white-space: nowrap;\n", "}\n", "\n", "table.dataframe th.bottomBorder {\n", " border-bottom-color: var(--bold-border-color);\n", "}\n", "\n", "table.dataframe tbody > tr:nth-child(odd) {\n", " background: var(--background-odd);\n", "}\n", "\n", "table.dataframe tbody > tr:nth-child(even) {\n", " background: var(--background);\n", "}\n", "\n", "table.dataframe tbody > tr:hover {\n", " background: var(--background-hover);\n", "}\n", "\n", "table.dataframe a {\n", " cursor: pointer;\n", " color: var(--link-color);\n", " text-decoration: none;\n", "}\n", "\n", "table.dataframe tr:hover > td a {\n", " color: var(--link-color-pale);\n", "}\n", "\n", "table.dataframe a:hover {\n", " color: var(--link-hover);\n", " text-decoration: underline;\n", "}\n", "\n", "table.dataframe img {\n", " max-width: fit-content;\n", "}\n", "\n", "table.dataframe th.complex {\n", " background-color: var(--background);\n", " border: 1px solid var(--background);\n", "}\n", "\n", "table.dataframe .leftBorder {\n", " border-left-color: var(--inner-border-color);\n", "}\n", "\n", "table.dataframe .rightBorder {\n", " border-right-color: var(--inner-border-color);\n", "}\n", "\n", "table.dataframe .rightAlign {\n", " text-align: right;\n", "}\n", "\n", "table.dataframe .expanderSvg {\n", " width: 8px;\n", " height: 8px;\n", " margin-right: 3px;\n", "}\n", "\n", "table.dataframe .expander {\n", " display: flex;\n", " align-items: center;\n", "}\n", "\n", "/* formatting */\n", "\n", "table.dataframe .null {\n", " color: var(--text-color-pale);\n", "}\n", "\n", "table.dataframe .structural {\n", " color: var(--text-color-medium);\n", " font-weight: bold;\n", "}\n", "\n", "table.dataframe .dataFrameCaption {\n", " font-weight: bold;\n", "}\n", "\n", "table.dataframe .numbers {\n", " color: var(--text-color-dark);\n", "}\n", "\n", "table.dataframe td:hover .formatted .structural, .null {\n", " color: var(--text-color-dark);\n", "}\n", "\n", "table.dataframe tr:hover .formatted .structural, .null {\n", " color: var(--text-color-dark);\n", "}\n", "\n", "\n", ":root {\n", " --scroll-bg: #f5f5f5;\n", " --scroll-fg: #b3b3b3;\n", "}\n", ":root[theme="dark"], :root [data-jp-theme-light="false"]{\n", " --scroll-bg: #3c3c3c;\n", " --scroll-fg: #97e1fb;\n", "}\n", "body {\n", " scrollbar-color: var(--scroll-fg) var(--scroll-bg);\n", "}\n", "body::-webkit-scrollbar {\n", " width: 10px; /* Mostly for vertical scrollbars */\n", " height: 10px; /* Mostly for horizontal scrollbars */\n", "}\n", "body::-webkit-scrollbar-thumb {\n", " background-color: var(--scroll-fg);\n", "}\n", "body::-webkit-scrollbar-track {\n", " background-color: var(--scroll-bg);\n", "}\n", " </style>\n", " </head>\n", " <body>\n", " <table class="dataframe" id="df_-536870910"></table>\n", "\n", "<p class="dataframe_description">DataFrame: rowsCount = 15, columnsCount = 3</p>\n", "\n", " </body>\n", " <script>\n", " (function () {\n", " window.DataFrame = window.DataFrame || new (function () {\n", " this.addTable = function (df) {\n", " let cols = df.cols;\n", " for (let i = 0; i < cols.length; i++) {\n", " for (let c of cols[i].children) {\n", " cols[c].parent = i;\n", " }\n", " }\n", " df.nrow = 0\n", " for (let i = 0; i < df.cols.length; i++) {\n", " if (df.cols[i].values.length > df.nrow) df.nrow = df.cols[i].values.length\n", " }\n", " if (df.id === df.rootId) {\n", " df.expandedFrames = new Set()\n", " df.childFrames = {}\n", " const table = this.getTableElement(df.id)\n", " table.df = df\n", " for (let i = 0; i < df.cols.length; i++) {\n", " let col = df.cols[i]\n", " if (col.parent === undefined && col.children.length > 0) col.expanded = true\n", " }\n", " } else {\n", " const rootDf = this.getTableData(df.rootId)\n", " rootDf.childFrames[df.id] = df\n", " }\n", " }\n", "\n", " this.computeRenderData = function (df) {\n", " let result = []\n", " let pos = 0\n", " for (let col = 0; col < df.cols.length; col++) {\n", " if (df.cols[col].parent === undefined)\n", " pos += this.computeRenderDataRec(df.cols, col, pos, 0, result, false, false)\n", " }\n", " for (let i = 0; i < result.length; i++) {\n", " let row = result[i]\n", " for (let j = 0; j < row.length; j++) {\n", " let cell = row[j]\n", " if (j === 0)\n", " cell.leftBd = false\n", " if (j < row.length - 1) {\n", " let nextData = row[j + 1]\n", " if (nextData.leftBd) cell.rightBd = true\n", " else if (cell.rightBd) nextData.leftBd = true\n", " } else cell.rightBd = false\n", " }\n", " }\n", " return result\n", " }\n", "\n", " this.computeRenderDataRec = function (cols, colId, pos, depth, result, leftBorder, rightBorder) {\n", " if (result.length === depth) {\n", " const array = [];\n", " if (pos > 0) {\n", " let j = 0\n", " for (let i = 0; j < pos; i++) {\n", " let c = result[depth - 1][i]\n", " j += c.span\n", " let copy = Object.assign({empty: true}, c)\n", " array.push(copy)\n", " }\n", " }\n", " result.push(array)\n", " }\n", " const col = cols[colId];\n", " let size = 0;\n", " if (col.expanded) {\n", " let childPos = pos\n", " for (let i = 0; i < col.children.length; i++) {\n", " let child = col.children[i]\n", " let childLeft = i === 0 && (col.children.length > 1 || leftBorder)\n", " let childRight = i === col.children.length - 1 && (col.children.length > 1 || rightBorder)\n", " let childSize = this.computeRenderDataRec(cols, child, childPos, depth + 1, result, childLeft, childRight)\n", " childPos += childSize\n", " size += childSize\n", " }\n", " } else {\n", " for (let i = depth + 1; i < result.length; i++)\n", " result[i].push({id: colId, span: 1, leftBd: leftBorder, rightBd: rightBorder, empty: true})\n", " size = 1\n", " }\n", " let left = leftBorder\n", " let right = rightBorder\n", " if (size > 1) {\n", " left = true\n", " right = true\n", " }\n", " result[depth].push({id: colId, span: size, leftBd: left, rightBd: right})\n", " return size\n", " }\n", "\n", " this.getTableElement = function (id) {\n", " return document.getElementById("df_" + id)\n", " }\n", "\n", " this.getTableData = function (id) {\n", " return this.getTableElement(id).df\n", " }\n", "\n", " this.createExpander = function (isExpanded) {\n", " const svgNs = "http://www.w3.org/2000/svg"\n", " let svg = document.createElementNS(svgNs, "svg")\n", " svg.classList.add("expanderSvg")\n", " let path = document.createElementNS(svgNs, "path")\n", " if (isExpanded) {\n", " svg.setAttribute("viewBox", "0 -2 8 8")\n", " path.setAttribute("d", "M1 0 l-1 1 4 4 4 -4 -1 -1 -3 3Z")\n", " } else {\n", " svg.setAttribute("viewBox", "-2 0 8 8")\n", " path.setAttribute("d", "M1 0 l-1 1 3 3 -3 3 1 1 4 -4Z")\n", " }\n", " path.setAttribute("fill", "currentColor")\n", " svg.appendChild(path)\n", " return svg\n", " }\n", "\n", " this.renderTable = function (id) {\n", "\n", " let table = this.getTableElement(id)\n", "\n", " if (table === null) return\n", "\n", " table.innerHTML = ""\n", "\n", " let df = table.df\n", " let rootDf = df.rootId === df.id ? df : this.getTableData(df.rootId)\n", "\n", " // header\n", " let header = document.createElement("thead")\n", " table.appendChild(header)\n", "\n", " let renderData = this.computeRenderData(df)\n", " for (let j = 0; j < renderData.length; j++) {\n", " let rowData = renderData[j]\n", " let tr = document.createElement("tr");\n", " let isLastRow = j === renderData.length - 1\n", " header.appendChild(tr);\n", " for (let i = 0; i < rowData.length; i++) {\n", " let cell = rowData[i]\n", " let th = document.createElement("th");\n", " th.setAttribute("colspan", cell.span)\n", " let colId = cell.id\n", " let col = df.cols[colId];\n", " if (!cell.empty) {\n", " if (col.children.length === 0) {\n", " th.innerHTML = col.name\n", " } else {\n", " let link = document.createElement("a")\n", " link.className = "expander"\n", " let that = this\n", " link.onclick = function () {\n", " col.expanded = !col.expanded\n", " that.renderTable(id)\n", " }\n", " link.appendChild(this.createExpander(col.expanded))\n", " link.innerHTML += col.name\n", " th.appendChild(link)\n", " }\n", " }\n", " let classes = (cell.leftBd ? " leftBorder" : "") + (cell.rightBd ? " rightBorder" : "")\n", " if (col.rightAlign)\n", " classes += " rightAlign"\n", " if (isLastRow)\n", " classes += " bottomBorder"\n", " if (classes.length > 0)\n", " th.setAttribute("class", classes)\n", " tr.appendChild(th)\n", " }\n", " }\n", "\n", " // body\n", " let body = document.createElement("tbody")\n", " table.appendChild(body)\n", "\n", " let columns = renderData.pop()\n", " for (let row = 0; row < df.nrow; row++) {\n", " let tr = document.createElement("tr");\n", " body.appendChild(tr)\n", " for (let i = 0; i < columns.length; i++) {\n", " let cell = columns[i]\n", " let td = document.createElement("td");\n", " let colId = cell.id\n", " let col = df.cols[colId]\n", " let classes = (cell.leftBd ? " leftBorder" : "") + (cell.rightBd ? " rightBorder" : "")\n", " if (col.rightAlign)\n", " classes += " rightAlign"\n", " if (classes.length > 0)\n", " td.setAttribute("class", classes)\n", " tr.appendChild(td)\n", " let value = col.values[row]\n", " if (value.frameId !== undefined) {\n", " let frameId = value.frameId\n", " let expanded = rootDf.expandedFrames.has(frameId)\n", " let link = document.createElement("a")\n", " link.className = "expander"\n", " let that = this\n", " link.onclick = function () {\n", " if (rootDf.expandedFrames.has(frameId))\n", " rootDf.expandedFrames.delete(frameId)\n", " else rootDf.expandedFrames.add(frameId)\n", " that.renderTable(id)\n", " }\n", " link.appendChild(this.createExpander(expanded))\n", " link.innerHTML += value.value\n", " if (expanded) {\n", " td.appendChild(link)\n", " td.appendChild(document.createElement("p"))\n", " const childTable = document.createElement("table")\n", " childTable.className = "dataframe"\n", " childTable.id = "df_" + frameId\n", " let childDf = rootDf.childFrames[frameId]\n", " childTable.df = childDf\n", " td.appendChild(childTable)\n", " this.renderTable(frameId)\n", " if (childDf.nrow !== childDf.totalRows) {\n", " const footer = document.createElement("p")\n", " footer.innerText = `... showing only top ${childDf.nrow} of ${childDf.totalRows} rows`\n", " td.appendChild(footer)\n", " }\n", " } else {\n", " td.appendChild(link)\n", " }\n", " } else if (value.style !== undefined) {\n", " td.innerHTML = value.value\n", " td.setAttribute("style", value.style)\n", " } else td.innerHTML = value\n", " this.nodeScriptReplace(td)\n", " }\n", " }\n", " }\n", "\n", " this.nodeScriptReplace = function (node) {\n", " if (this.nodeScriptIs(node) === true) {\n", " node.parentNode.replaceChild(this.nodeScriptClone(node), node);\n", " } else {\n", " let i = -1, children = node.childNodes;\n", " while (++i < children.length) {\n", " this.nodeScriptReplace(children[i]);\n", " }\n", " }\n", "\n", " return node;\n", " }\n", "\n", " this.nodeScriptClone = function (node) {\n", " let script = document.createElement("script");\n", " script.text = node.innerHTML;\n", "\n", " let i = -1, attrs = node.attributes, attr;\n", " while (++i < attrs.length) {\n", " script.setAttribute((attr = attrs[i]).name, attr.value);\n", " }\n", " return script;\n", " }\n", "\n", " this.nodeScriptIs = function (node) {\n", " return node.tagName === 'SCRIPT';\n", " }\n", " })()\n", "\n", " window.call_DataFrame = function (f) {\n", " return f();\n", " };\n", "\n", " let funQueue = window["kotlinQueues"] && window["kotlinQueues"]["DataFrame"];\n", " if (funQueue) {\n", " funQueue.forEach(function (f) {\n", " f();\n", " });\n", " funQueue = [];\n", " }\n", "})()\n", "\n", "/*<!--*/\n", "call_DataFrame(function() { DataFrame.addTable({ cols: [{ name: "<span title=\"fork: Int\">fork</span>", children: [], rightAlign: true, values: ["<span class=\"formatted\" title=\"\"><span class=\"numbers\">1</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">1</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">1</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">1</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">1</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">2</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">2</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">2</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">2</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">2</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">3</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">3</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">3</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">3</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">3</span></span>"] }, \n", "{ name: "<span title=\"iteration: String\">iteration</span>", children: [], rightAlign: false, values: ["1","2","3","4","5","1","2","3","4","5","1","2","3","4","5"] }, \n", "{ name: "<span title=\"score: Double\">score</span>", children: [], rightAlign: true, values: ["<span class=\"formatted\" title=\"\"><span class=\"numbers\">1158908.103798</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">1161431.155757</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">1157657.915890</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">1163379.539291</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">1158893.168350</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">1156089.801418</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">1159765.657691</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">1160904.857522</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">1160873.988534</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">1154220.230407</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">1159114.787443</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">1156306.669103</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">1151452.073143</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">1164727.257529</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">1162030.020141</span></span>"] }, \n", "], id: -536870910, rootId: -536870910, totalRows: 15 } ) });\n", "/*-->*/\n", "\n", "call_DataFrame(function() { DataFrame.renderTable(-536870910) });\n", "\n", "\n", " </script>\n", " </html>\"></iframe>\n", " <script>\n", " function o_resize_iframe_out_2() {\n", " let elem = document.getElementById(\"iframe_out_2\");\n", " resize_iframe_out_2(elem);\n", " setInterval(resize_iframe_out_2, 5000, elem);\n", " }\n", " function resize_iframe_out_2(el) {\n", " let h = el.contentWindow.document.body.scrollHeight;\n", " el.height = h === 0 ? 0 : h + 41;\n", " }\n", " </script> <html>\n", " <head>\n", " <style type=\"text/css\">\n", " :root {\n", " --background: #fff;\n", " --background-odd: #f5f5f5;\n", " --background-hover: #d9edfd;\n", " --header-text-color: #474747;\n", " --text-color: #848484;\n", " --text-color-dark: #000;\n", " --text-color-medium: #737373;\n", " --text-color-pale: #b3b3b3;\n", " --inner-border-color: #aaa;\n", " --bold-border-color: #000;\n", " --link-color: #296eaa;\n", " --link-color-pale: #296eaa;\n", " --link-hover: #1a466c;\n", "}\n", "\n", ":root[theme=\"dark\"], :root [data-jp-theme-light=\"false\"], .dataframe_dark{\n", " --background: #303030;\n", " --background-odd: #3c3c3c;\n", " --background-hover: #464646;\n", " --header-text-color: #dddddd;\n", " --text-color: #b3b3b3;\n", " --text-color-dark: #dddddd;\n", " --text-color-medium: #b2b2b2;\n", " --text-color-pale: #737373;\n", " --inner-border-color: #707070;\n", " --bold-border-color: #777777;\n", " --link-color: #008dc0;\n", " --link-color-pale: #97e1fb;\n", " --link-hover: #00688e;\n", "}\n", "\n", "p.dataframe_description {\n", " color: var(--text-color-dark);\n", "}\n", "\n", "table.dataframe {\n", " font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n", " font-size: 12px;\n", " background-color: var(--background);\n", " color: var(--text-color-dark);\n", " border: none;\n", " border-collapse: collapse;\n", "}\n", "\n", "table.dataframe th, td {\n", " padding: 6px;\n", " border: 1px solid transparent;\n", " text-align: left;\n", "}\n", "\n", "table.dataframe th {\n", " background-color: var(--background);\n", " color: var(--header-text-color);\n", "}\n", "\n", "table.dataframe td {\n", " vertical-align: top;\n", " white-space: nowrap;\n", "}\n", "\n", "table.dataframe th.bottomBorder {\n", " border-bottom-color: var(--bold-border-color);\n", "}\n", "\n", "table.dataframe tbody > tr:nth-child(odd) {\n", " background: var(--background-odd);\n", "}\n", "\n", "table.dataframe tbody > tr:nth-child(even) {\n", " background: var(--background);\n", "}\n", "\n", "table.dataframe tbody > tr:hover {\n", " background: var(--background-hover);\n", "}\n", "\n", "table.dataframe a {\n", " cursor: pointer;\n", " color: var(--link-color);\n", " text-decoration: none;\n", "}\n", "\n", "table.dataframe tr:hover > td a {\n", " color: var(--link-color-pale);\n", "}\n", "\n", "table.dataframe a:hover {\n", " color: var(--link-hover);\n", " text-decoration: underline;\n", "}\n", "\n", "table.dataframe img {\n", " max-width: fit-content;\n", "}\n", "\n", "table.dataframe th.complex {\n", " background-color: var(--background);\n", " border: 1px solid var(--background);\n", "}\n", "\n", "table.dataframe .leftBorder {\n", " border-left-color: var(--inner-border-color);\n", "}\n", "\n", "table.dataframe .rightBorder {\n", " border-right-color: var(--inner-border-color);\n", "}\n", "\n", "table.dataframe .rightAlign {\n", " text-align: right;\n", "}\n", "\n", "table.dataframe .expanderSvg {\n", " width: 8px;\n", " height: 8px;\n", " margin-right: 3px;\n", "}\n", "\n", "table.dataframe .expander {\n", " display: flex;\n", " align-items: center;\n", "}\n", "\n", "/* formatting */\n", "\n", "table.dataframe .null {\n", " color: var(--text-color-pale);\n", "}\n", "\n", "table.dataframe .structural {\n", " color: var(--text-color-medium);\n", " font-weight: bold;\n", "}\n", "\n", "table.dataframe .dataFrameCaption {\n", " font-weight: bold;\n", "}\n", "\n", "table.dataframe .numbers {\n", " color: var(--text-color-dark);\n", "}\n", "\n", "table.dataframe td:hover .formatted .structural, .null {\n", " color: var(--text-color-dark);\n", "}\n", "\n", "table.dataframe tr:hover .formatted .structural, .null {\n", " color: var(--text-color-dark);\n", "}\n", "\n", "\n", " </style>\n", " </head>\n", " <body>\n", " <table class=\"dataframe\" id=\"static_df_-536870909\"><thead><tr><th class=\"bottomBorder\" style=\"text-align:left\">fork</th><th class=\"bottomBorder\" style=\"text-align:left\">iteration</th><th class=\"bottomBorder\" style=\"text-align:left\">score</th></tr></thead><tbody><tr><td style=\"vertical-align:top\">1</td><td style=\"vertical-align:top\">1</td><td style=\"vertical-align:top\">1158908.103798</td></tr><tr><td style=\"vertical-align:top\">1</td><td style=\"vertical-align:top\">2</td><td style=\"vertical-align:top\">1161431.155757</td></tr><tr><td style=\"vertical-align:top\">1</td><td style=\"vertical-align:top\">3</td><td style=\"vertical-align:top\">1157657.915890</td></tr><tr><td style=\"vertical-align:top\">1</td><td style=\"vertical-align:top\">4</td><td style=\"vertical-align:top\">1163379.539291</td></tr><tr><td style=\"vertical-align:top\">1</td><td style=\"vertical-align:top\">5</td><td style=\"vertical-align:top\">1158893.168350</td></tr><tr><td style=\"vertical-align:top\">2</td><td style=\"vertical-align:top\">1</td><td style=\"vertical-align:top\">1156089.801418</td></tr><tr><td style=\"vertical-align:top\">2</td><td style=\"vertical-align:top\">2</td><td style=\"vertical-align:top\">1159765.657691</td></tr><tr><td style=\"vertical-align:top\">2</td><td style=\"vertical-align:top\">3</td><td style=\"vertical-align:top\">1160904.857522</td></tr><tr><td style=\"vertical-align:top\">2</td><td style=\"vertical-align:top\">4</td><td style=\"vertical-align:top\">1160873.988534</td></tr><tr><td style=\"vertical-align:top\">2</td><td style=\"vertical-align:top\">5</td><td style=\"vertical-align:top\">1154220.230407</td></tr><tr><td style=\"vertical-align:top\">3</td><td style=\"vertical-align:top\">1</td><td style=\"vertical-align:top\">1159114.787443</td></tr><tr><td style=\"vertical-align:top\">3</td><td style=\"vertical-align:top\">2</td><td style=\"vertical-align:top\">1156306.669103</td></tr><tr><td style=\"vertical-align:top\">3</td><td style=\"vertical-align:top\">3</td><td style=\"vertical-align:top\">1151452.073143</td></tr><tr><td style=\"vertical-align:top\">3</td><td style=\"vertical-align:top\">4</td><td style=\"vertical-align:top\">1164727.257529</td></tr><tr><td style=\"vertical-align:top\">3</td><td style=\"vertical-align:top\">5</td><td style=\"vertical-align:top\">1162030.020141</td></tr></tbody></table>\n", " </body>\n", " <script>\n", " document.getElementById(\"static_df_-536870909\").style.display = \"none\";\n", " </script>\n", " </html>" ], | |
| "application/kotlindataframe+json" : "{\"$version\":\"2.1.1\",\"metadata\":{\"columns\":[\"fork\",\"iteration\",\"score\"],\"types\":[{\"kind\":\"ValueColumn\",\"type\":\"kotlin.Int\"},{\"kind\":\"ValueColumn\",\"type\":\"kotlin.String\"},{\"kind\":\"ValueColumn\",\"type\":\"kotlin.Double\"}],\"nrow\":15,\"ncol\":3},\"kotlin_dataframe\":[{\"fork\":1,\"iteration\":\"1\",\"score\":1158908.1037975468},{\"fork\":1,\"iteration\":\"2\",\"score\":1161431.155757067},{\"fork\":1,\"iteration\":\"3\",\"score\":1157657.9158900976},{\"fork\":1,\"iteration\":\"4\",\"score\":1163379.5392909562},{\"fork\":1,\"iteration\":\"5\",\"score\":1158893.1683501906},{\"fork\":2,\"iteration\":\"1\",\"score\":1156089.8014178998},{\"fork\":2,\"iteration\":\"2\",\"score\":1159765.6576914047},{\"fork\":2,\"iteration\":\"3\",\"score\":1160904.8575220038},{\"fork\":2,\"iteration\":\"4\",\"score\":1160873.98853425},{\"fork\":2,\"iteration\":\"5\",\"score\":1154220.2304071567},{\"fork\":3,\"iteration\":\"1\",\"score\":1159114.7874430087},{\"fork\":3,\"iteration\":\"2\",\"score\":1156306.6691030415},{\"fork\":3,\"iteration\":\"3\",\"score\":1151452.073143193},{\"fork\":3,\"iteration\":\"4\",\"score\":1164727.2575287838},{\"fork\":3,\"iteration\":\"5\",\"score\":1162030.0201411375}]}" | |
| }, | |
| "execution_count" : 4, | |
| "metadata" : { }, | |
| "output_type" : "execute_result" | |
| } ], | |
| "execution_count" : 4 | |
| }, { | |
| "metadata" : { | |
| "ExecuteTime" : { | |
| "end_time" : "2025-09-24T15:39:59.614813Z", | |
| "start_time" : "2025-09-24T15:39:59.118397Z" | |
| } | |
| }, | |
| "cell_type" : "code", | |
| "source" : [ "// Create a grouped bar plot to that focuses on the differences of the measurements as plotting\n", "// the entire range just make them disapear.\n", "val col = df[\"score\"].cast<Double>().values()\n", "val min = col.minOrNull()!!\n", "val max = col.maxOrNull()!!\n", "val adjustedRange = (min * 0.999)..max\n", "\n", "df.groupBy(\"fork\").plot {\n", " bars {\n", " x(\"fork\")\n", " y(\"score\")\n", " fillColor(\"iteration\") {\n", " scale = categorical()\n", " }\n", " position = Position.dodge()\n", " width = 5.0\n", " }\n", " x.axis.name = \"Fork\"\n", " y.axis {\n", " name = \"Score (ops/s)\"\n", " limits = adjustedRange\n", " }\n", "}" ], | |
| "id" : "f16bd6a95ae2eb79", | |
| "outputs" : [ { | |
| "data" : { | |
| "text/html" : [ " <iframe src='about:blank' style='border:none !important;' width='600' height='400' srcdoc=\"<html lang="en">\n", " <head>\n", " <meta charset="UTF-8">\n", " <style> html, body { margin: 0; overflow: hidden; } </style>\n", " <script type="text/javascript" data-lets-plot-script="library" src="https://cdn.jsdelivr.net/gh/JetBrains/[email protected]/js-package/distr/lets-plot.min.js"></script>\n", " </head>\n", " <body>\n", " <div id="Zk1aRe"></div>\n", " <script type="text/javascript" data-lets-plot-script="plot">\n", " \n", " (function() {\n", " // ----------\n", " \n", " var plotSpec={\n", ""mapping":{\n", "},\n", ""coord":{\n", ""name":"cartesian",\n", ""flip":false,\n", ""ylim":[1150300.62107005,1164727.2575287838]\n", "},\n", ""data":{\n", ""score":[1158908.1037975468,1161431.155757067,1157657.9158900976,1163379.5392909562,1158893.1683501906,1156089.8014178998,1159765.6576914047,1160904.8575220038,1160873.98853425,1154220.2304071567,1159114.7874430087,1156306.6691030415,1151452.073143193,1164727.2575287838,1162030.0201411375],\n", ""fork":[1.0,1.0,1.0,1.0,1.0,2.0,2.0,2.0,2.0,2.0,3.0,3.0,3.0,3.0,3.0],\n", ""&merged_groups":["1","1","1","1","1","2","2","2","2","2","3","3","3","3","3"],\n", ""iteration":["1","2","3","4","5","1","2","3","4","5","1","2","3","4","5"]\n", "},\n", ""kind":"plot",\n", ""scales":[{\n", ""aesthetic":"x",\n", ""discrete":true\n", "},{\n", ""aesthetic":"y",\n", ""limits":[null,null]\n", "},{\n", ""aesthetic":"fill",\n", ""discrete":true\n", "},{\n", ""aesthetic":"x",\n", ""name":"Fork",\n", ""limits":[null,null]\n", "},{\n", ""aesthetic":"y",\n", ""name":"Score (ops/s)",\n", ""limits":[null,null]\n", "}],\n", ""layers":[{\n", ""mapping":{\n", ""x":"fork",\n", ""y":"score",\n", ""fill":"iteration",\n", ""group":"&merged_groups"\n", "},\n", ""stat":"identity",\n", ""sampling":"none",\n", ""width":5.0,\n", ""inherit_aes":false,\n", ""position":"dodge",\n", ""geom":"bar",\n", ""data":{\n", "}\n", "}],\n", ""data_meta":{\n", ""series_annotations":[{\n", ""type":"int",\n", ""column":"fork"\n", "},{\n", ""type":"float",\n", ""column":"score"\n", "},{\n", ""type":"str",\n", ""column":"iteration"\n", "},{\n", ""type":"str",\n", ""column":"&merged_groups"\n", "}]\n", "},\n", ""spec_id":"2"\n", "};\n", " var containerDiv = document.getElementById("Zk1aRe");\n", " \n", " var toolbar = null;\n", " var plotContainer = containerDiv; \n", " \n", " var options = {\n", " sizing: {\n", " width_mode: "fixed",\n", " height_mode: "fixed",\n", " width: 600.0,\n", " height: 400.0\n", " }\n", " };\n", " var fig = LetsPlot.buildPlotFromProcessedSpecs(plotSpec, -1, -1, plotContainer, options);\n", " if (toolbar) {\n", " toolbar.bind(fig);\n", " }\n", " \n", " // ----------\n", " })();\n", " \n", " </script>\n", " </body>\n", "</html>\"></iframe> <svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" display=\"block\" class=\"plt-container\" id=c2e4fa46-e862-4d87-ac2c-9a5d709a893f width=\"100%\" height=\"100%\" style=\"max-width: 600.0px; max-height: 400.0px;\" viewBox=\"0 0 600.0 400.0\" preserveAspectRatio=\"xMinYMin meet\">\n", " <style type=\"text/css\">\n", " .plt-container {\n", " font-family: Lucida Grande, sans-serif;\n", " user-select: none;\n", " -webkit-user-select: none;\n", " -moz-user-select: none;\n", " -ms-user-select: none;\n", "}\n", "text {\n", " text-rendering: optimizeLegibility;\n", "}\n", "#pVb1LGG .plot-title {\n", "fill: #474747;\n", "font-weight: normal;\n", " font-style: normal;font-family: Lucida Grande, sans-serif;\n", "font-size: 16.0px;\n", "\n", "}\n", "#pVb1LGG .plot-subtitle {\n", "fill: #474747;\n", "font-weight: normal;\n", " font-style: normal;font-family: Lucida Grande, sans-serif;\n", "font-size: 15.0px;\n", "\n", "}\n", "#pVb1LGG .plot-caption {\n", "fill: #474747;\n", "font-weight: normal;\n", " font-style: normal;font-family: Lucida Grande, sans-serif;\n", "font-size: 13.0px;\n", "\n", "}\n", "#pVb1LGG .hyperlink-element {\n", "fill: #118ed8;\n", "font-weight: normal;\n", " font-style: normal;\n", "}\n", "#pVb1LGG .legend-title {\n", "fill: #474747;\n", "font-weight: normal;\n", " font-style: normal;font-family: Lucida Grande, sans-serif;\n", "font-size: 15.0px;\n", "\n", "}\n", "#pVb1LGG .legend-item {\n", "fill: #474747;\n", "font-weight: normal;\n", " font-style: normal;font-family: Lucida Grande, sans-serif;\n", "font-size: 13.0px;\n", "\n", "}\n", "#pVb1LGG .axis-title-x {\n", "fill: #474747;\n", "font-weight: normal;\n", " font-style: normal;font-family: Lucida Grande, sans-serif;\n", "font-size: 15.0px;\n", "\n", "}\n", "#pVb1LGG .axis-text-x {\n", "fill: #474747;\n", "font-weight: normal;\n", " font-style: normal;font-family: Lucida Grande, sans-serif;\n", "font-size: 13.0px;\n", "\n", "}\n", "#djbRjpF .axis-tooltip-text-x {\n", "fill: #ffffff;\n", "font-weight: normal;\n", " font-style: normal;font-family: Lucida Grande, sans-serif;\n", "font-size: 13.0px;\n", "\n", "}\n", "#pVb1LGG .axis-title-y {\n", "fill: #474747;\n", "font-weight: normal;\n", " font-style: normal;font-family: Lucida Grande, sans-serif;\n", "font-size: 15.0px;\n", "\n", "}\n", "#pVb1LGG .axis-text-y {\n", "fill: #474747;\n", "font-weight: normal;\n", " font-style: normal;font-family: Lucida Grande, sans-serif;\n", "font-size: 13.0px;\n", "\n", "}\n", "#djbRjpF .axis-tooltip-text-y {\n", "fill: #ffffff;\n", "font-weight: normal;\n", " font-style: normal;font-family: Lucida Grande, sans-serif;\n", "font-size: 13.0px;\n", "\n", "}\n", "#pVb1LGG .facet-strip-text-x {\n", "fill: #474747;\n", "font-weight: normal;\n", " font-style: normal;font-family: Lucida Grande, sans-serif;\n", "font-size: 13.0px;\n", "\n", "}\n", "#pVb1LGG .facet-strip-text-y {\n", "fill: #474747;\n", "font-weight: normal;\n", " font-style: normal;font-family: Lucida Grande, sans-serif;\n", "font-size: 13.0px;\n", "\n", "}\n", "#djbRjpF .tooltip-text {\n", "fill: #474747;\n", "font-weight: normal;\n", " font-style: normal;font-family: Lucida Grande, sans-serif;\n", "font-size: 13.0px;\n", "\n", "}\n", "#djbRjpF .tooltip-title {\n", "fill: #474747;\n", "font-weight: bold;\n", " font-style: normal;font-family: Lucida Grande, sans-serif;\n", "font-size: 13.0px;\n", "\n", "}\n", "#djbRjpF .tooltip-label {\n", "fill: #474747;\n", "font-weight: bold;\n", " font-style: normal;font-family: Lucida Grande, sans-serif;\n", "font-size: 13.0px;\n", "\n", "}\n", "\n", " </style>\n", " <g id=\"pVb1LGG\">\n", " <path fill-rule=\"evenodd\" fill=\"rgb(255,255,255)\" fill-opacity=\"1.0\" d=\"M0.0 0.0 L0.0 400.0 L600.0 400.0 L600.0 0.0 Z\">\n", " </path>\n", " <g transform=\"translate(29.5 6.5 ) \">\n", " <g>\n", " <g transform=\"translate(72.01121880696743 0.0 ) \">\n", " <g>\n", " <line x1=\"149.9175296096386\" y1=\"0.0\" x2=\"149.9175296096386\" y2=\"341.0\" stroke=\"rgb(233,233,233)\" stroke-opacity=\"1.0\" stroke-width=\"1.0\" fill=\"none\">\n", " </line>\n", " <line x1=\"205.44254057617138\" y1=\"0.0\" x2=\"205.44254057617138\" y2=\"341.0\" stroke=\"rgb(233,233,233)\" stroke-opacity=\"1.0\" stroke-width=\"1.0\" fill=\"none\">\n", " </line>\n", " <line x1=\"260.9675515427042\" y1=\"0.0\" x2=\"260.9675515427042\" y2=\"341.0\" stroke=\"rgb(233,233,233)\" stroke-opacity=\"1.0\" stroke-width=\"1.0\" fill=\"none\">\n", " </line>\n", " </g>\n", " </g>\n", " <g transform=\"translate(72.01121880696743 0.0 ) \">\n", " <g>\n", " <line x1=\"0.0\" y1=\"300.83206364348734\" x2=\"410.88508115234276\" y2=\"300.83206364348734\" stroke=\"rgb(233,233,233)\" stroke-opacity=\"1.0\" stroke-width=\"1.0\" fill=\"none\">\n", " </line>\n", " <line x1=\"0.0\" y1=\"253.55839718971401\" x2=\"410.88508115234276\" y2=\"253.55839718971401\" stroke=\"rgb(233,233,233)\" stroke-opacity=\"1.0\" stroke-width=\"1.0\" fill=\"none\">\n", " </line>\n", " <line x1=\"0.0\" y1=\"206.28473073594432\" x2=\"410.88508115234276\" y2=\"206.28473073594432\" stroke=\"rgb(233,233,233)\" stroke-opacity=\"1.0\" stroke-width=\"1.0\" fill=\"none\">\n", " </line>\n", " <line x1=\"0.0\" y1=\"159.011064282171\" x2=\"410.88508115234276\" y2=\"159.011064282171\" stroke=\"rgb(233,233,233)\" stroke-opacity=\"1.0\" stroke-width=\"1.0\" fill=\"none\">\n", " </line>\n", " <line x1=\"0.0\" y1=\"111.7373978284013\" x2=\"410.88508115234276\" y2=\"111.7373978284013\" stroke=\"rgb(233,233,233)\" stroke-opacity=\"1.0\" stroke-width=\"1.0\" fill=\"none\">\n", " </line>\n", " <line x1=\"0.0\" y1=\"64.46373137462797\" x2=\"410.88508115234276\" y2=\"64.46373137462797\" stroke=\"rgb(233,233,233)\" stroke-opacity=\"1.0\" stroke-width=\"1.0\" fill=\"none\">\n", " </line>\n", " <line x1=\"0.0\" y1=\"17.190064920858276\" x2=\"410.88508115234276\" y2=\"17.190064920858276\" stroke=\"rgb(233,233,233)\" stroke-opacity=\"1.0\" stroke-width=\"1.0\" fill=\"none\">\n", " </line>\n", " </g>\n", " </g>\n", " </g>\n", " <g clip-path=\"url(#cUnTt5e)\" clip-bounds-jfx=\"[rect (72.01121880696743, 0.0), (410.88508115234276, 341.0)]\">\n", " <g transform=\"translate(72.01121880696743 0.0 ) \">\n", " <g>\n", " <g>\n", " <rect x=\"381.2717419701919\" y=\"63.75415030511431\" height=\"27466.709790710687\" width=\"18.50833698884435\" stroke=\"rgb(255,255,255)\" stroke-opacity=\"1.0\" fill=\"rgb(255,127,0)\" fill-opacity=\"1.0\" stroke-width=\"1.6500000000000001\">\n", " </rect>\n", " <rect x=\"362.76340498134766\" y=\"0.0\" height=\"27530.4639410158\" width=\"18.508336988844235\" stroke=\"rgb(255,255,255)\" stroke-opacity=\"1.0\" fill=\"rgb(152,78,163)\" fill-opacity=\"1.0\" stroke-width=\"1.6500000000000001\">\n", " </rect>\n", " <rect x=\"344.2550679925034\" y=\"313.78331937836265\" height=\"27216.68062163744\" width=\"18.508336988844235\" stroke=\"rgb(255,255,255)\" stroke-opacity=\"1.0\" fill=\"rgb(77,175,74)\" fill-opacity=\"1.0\" stroke-width=\"1.6500000000000001\">\n", " </rect>\n", " <rect x=\"325.7467310036592\" y=\"199.03604429151164\" height=\"27331.42789672429\" width=\"18.508336988844235\" stroke=\"rgb(255,255,255)\" stroke-opacity=\"1.0\" fill=\"rgb(55,126,184)\" fill-opacity=\"1.0\" stroke-width=\"1.6500000000000001\">\n", " </rect>\n", " <rect x=\"307.23839401481484\" y=\"132.66101940834778\" height=\"27397.802921607454\" width=\"18.50833698884435\" stroke=\"rgb(255,255,255)\" stroke-opacity=\"1.0\" fill=\"rgb(228,26,28)\" fill-opacity=\"1.0\" stroke-width=\"1.6500000000000001\">\n", " </rect>\n", " <rect x=\"233.2050460594378\" y=\"248.35284778426285\" height=\"27282.11109323154\" width=\"18.50833698884429\" stroke=\"rgb(255,255,255)\" stroke-opacity=\"1.0\" fill=\"rgb(255,127,0)\" fill-opacity=\"1.0\" stroke-width=\"1.6500000000000001\">\n", " </rect>\n", " <rect x=\"214.69670907059353\" y=\"91.07907660212004\" height=\"27439.38486441368\" width=\"18.508336988844263\" stroke=\"rgb(255,255,255)\" stroke-opacity=\"1.0\" fill=\"rgb(152,78,163)\" fill-opacity=\"1.0\" stroke-width=\"1.6500000000000001\">\n", " </rect>\n", " <rect x=\"196.18837208174926\" y=\"90.34943148670209\" height=\"27440.1145095291\" width=\"18.508336988844263\" stroke=\"rgb(255,255,255)\" stroke-opacity=\"1.0\" fill=\"rgb(77,175,74)\" fill-opacity=\"1.0\" stroke-width=\"1.6500000000000001\">\n", " </rect>\n", " <rect x=\"177.680035092905\" y=\"117.27650789467225\" height=\"27413.18743312113\" width=\"18.508336988844263\" stroke=\"rgb(255,255,255)\" stroke-opacity=\"1.0\" fill=\"rgb(55,126,184)\" fill-opacity=\"1.0\" stroke-width=\"1.6500000000000001\">\n", " </rect>\n", " <rect x=\"159.17169810406074\" y=\"204.1621095975097\" height=\"27326.301831418292\" width=\"18.508336988844263\" stroke=\"rgb(255,255,255)\" stroke-opacity=\"1.0\" fill=\"rgb(228,26,28)\" fill-opacity=\"1.0\" stroke-width=\"1.6500000000000001\">\n", " </rect>\n", " <rect x=\"85.13835014868366\" y=\"137.89939294518263\" height=\"27392.56454807062\" width=\"18.508336988844263\" stroke=\"rgb(255,255,255)\" stroke-opacity=\"1.0\" fill=\"rgb(255,127,0)\" fill-opacity=\"1.0\" stroke-width=\"1.6500000000000001\">\n", " </rect>\n", " <rect x=\"66.6300131598394\" y=\"31.855791224359564\" height=\"27498.608149791442\" width=\"18.508336988844263\" stroke=\"rgb(255,255,255)\" stroke-opacity=\"1.0\" fill=\"rgb(152,78,163)\" fill-opacity=\"1.0\" stroke-width=\"1.6500000000000001\">\n", " </rect>\n", " <rect x=\"48.121676170995116\" y=\"167.09684933750395\" height=\"27363.367091678298\" width=\"18.508336988844277\" stroke=\"rgb(255,255,255)\" stroke-opacity=\"1.0\" fill=\"rgb(77,175,74)\" fill-opacity=\"1.0\" stroke-width=\"1.6500000000000001\">\n", " </rect>\n", " <rect x=\"29.613339182150852\" y=\"77.90940787690852\" height=\"27452.554533138893\" width=\"18.508336988844263\" stroke=\"rgb(255,255,255)\" stroke-opacity=\"1.0\" fill=\"rgb(55,126,184)\" fill-opacity=\"1.0\" stroke-width=\"1.6500000000000001\">\n", " </rect>\n", " <rect x=\"11.105002193306575\" y=\"137.54636626685533\" height=\"27392.917574748946\" width=\"18.508336988844277\" stroke=\"rgb(255,255,255)\" stroke-opacity=\"1.0\" fill=\"rgb(228,26,28)\" fill-opacity=\"1.0\" stroke-width=\"1.6500000000000001\">\n", " </rect>\n", " </g>\n", " </g>\n", " </g>\n", " <defs>\n", " <clipPath id=\"cUnTt5e\">\n", " <rect x=\"72.01121880696743\" y=\"0.0\" width=\"410.88508115234276\" height=\"341.0\">\n", " </rect>\n", " </clipPath>\n", " </defs>\n", " </g>\n", " <g>\n", " <g transform=\"translate(72.01121880696743 341.0 ) \">\n", " <g transform=\"translate(149.9175296096386 0.0 ) \">\n", " <line stroke-width=\"1.0\" stroke=\"rgb(71,71,71)\" stroke-opacity=\"1.0\" x2=\"0.0\" y2=\"4.0\">\n", " </line>\n", " <g transform=\"translate(0.0 7.0 ) \">\n", " <text class=\"axis-text-x\" text-anchor=\"middle\" dy=\"0.7em\">\n", " <tspan>1.0</tspan>\n", " </text>\n", " </g>\n", " </g>\n", " <g transform=\"translate(205.44254057617138 0.0 ) \">\n", " <line stroke-width=\"1.0\" stroke=\"rgb(71,71,71)\" stroke-opacity=\"1.0\" x2=\"0.0\" y2=\"4.0\">\n", " </line>\n", " <g transform=\"translate(0.0 7.0 ) \">\n", " <text class=\"axis-text-x\" text-anchor=\"middle\" dy=\"0.7em\">\n", " <tspan>2.0</tspan>\n", " </text>\n", " </g>\n", " </g>\n", " <g transform=\"translate(260.9675515427042 0.0 ) \">\n", " <line stroke-width=\"1.0\" stroke=\"rgb(71,71,71)\" stroke-opacity=\"1.0\" x2=\"0.0\" y2=\"4.0\">\n", " </line>\n", " <g transform=\"translate(0.0 7.0 ) \">\n", " <text class=\"axis-text-x\" text-anchor=\"middle\" dy=\"0.7em\">\n", " <tspan>3.0</tspan>\n", " </text>\n", " </g>\n", " </g>\n", " <line x1=\"0.0\" y1=\"0.0\" x2=\"410.88508115234276\" y2=\"0.0\" stroke-width=\"1.0\" stroke=\"rgb(71,71,71)\" stroke-opacity=\"1.0\">\n", " </line>\n", " </g>\n", " <g transform=\"translate(72.01121880696743 0.0 ) \">\n", " <g transform=\"translate(0.0 300.83206364348734 ) \">\n", " <g transform=\"translate(-3.0 0.0 ) \">\n", " <text class=\"axis-text-y\" text-anchor=\"end\" dy=\"0.35em\">\n", " <tspan>1,152,000</tspan>\n", " </text>\n", " </g>\n", " </g>\n", " <g transform=\"translate(0.0 253.55839718971401 ) \">\n", " <g transform=\"translate(-3.0 0.0 ) \">\n", " <text class=\"axis-text-y\" text-anchor=\"end\" dy=\"0.35em\">\n", " <tspan>1,154,000</tspan>\n", " </text>\n", " </g>\n", " </g>\n", " <g transform=\"translate(0.0 206.28473073594432 ) \">\n", " <g transform=\"translate(-3.0 0.0 ) \">\n", " <text class=\"axis-text-y\" text-anchor=\"end\" dy=\"0.35em\">\n", " <tspan>1,156,000</tspan>\n", " </text>\n", " </g>\n", " </g>\n", " <g transform=\"translate(0.0 159.011064282171 ) \">\n", " <g transform=\"translate(-3.0 0.0 ) \">\n", " <text class=\"axis-text-y\" text-anchor=\"end\" dy=\"0.35em\">\n", " <tspan>1,158,000</tspan>\n", " </text>\n", " </g>\n", " </g>\n", " <g transform=\"translate(0.0 111.7373978284013 ) \">\n", " <g transform=\"translate(-3.0 0.0 ) \">\n", " <text class=\"axis-text-y\" text-anchor=\"end\" dy=\"0.35em\">\n", " <tspan>1,160,000</tspan>\n", " </text>\n", " </g>\n", " </g>\n", " <g transform=\"translate(0.0 64.46373137462797 ) \">\n", " <g transform=\"translate(-3.0 0.0 ) \">\n", " <text class=\"axis-text-y\" text-anchor=\"end\" dy=\"0.35em\">\n", " <tspan>1,162,000</tspan>\n", " </text>\n", " </g>\n", " </g>\n", " <g transform=\"translate(0.0 17.190064920858276 ) \">\n", " <g transform=\"translate(-3.0 0.0 ) \">\n", " <text class=\"axis-text-y\" text-anchor=\"end\" dy=\"0.35em\">\n", " <tspan>1,164,000</tspan>\n", " </text>\n", " </g>\n", " </g>\n", " </g>\n", " </g>\n", " </g>\n", " <g transform=\"translate(16.0 177.0 ) rotate(-90.0 ) \">\n", " <text class=\"axis-title-y\" y=\"0.0\" text-anchor=\"middle\">\n", " <tspan>Score (ops/s)</tspan>\n", " </text>\n", " </g>\n", " <g transform=\"translate(306.95375938313884 393.0 ) \">\n", " <text class=\"axis-title-x\" y=\"0.0\" text-anchor=\"middle\">\n", " <tspan>Fork</tspan>\n", " </text>\n", " </g>\n", " <g transform=\"translate(523.8962999593102 103.25 ) \">\n", " <rect x=\"0.0\" y=\"0.0\" height=\"147.5\" width=\"76.1037000406898\" stroke=\"rgb(71,71,71)\" stroke-opacity=\"1.0\" stroke-width=\"0.0\" fill=\"rgb(255,255,255)\" fill-opacity=\"1.0\">\n", " </rect>\n", " <g transform=\"translate(5.0 5.0 ) \">\n", " <g transform=\"translate(0.0 12.0 ) \">\n", " <text class=\"legend-title\" y=\"0.0\">\n", " <tspan>iteration</tspan>\n", " </text>\n", " </g>\n", " <g transform=\"translate(0.0 22.5 ) \">\n", " <g transform=\"\">\n", " <g>\n", " <g transform=\"translate(1.0 1.0 ) \">\n", " <g>\n", " <rect x=\"0.0\" y=\"0.0\" height=\"21.0\" width=\"21.0\" stroke=\"rgb(255,255,255)\" stroke-opacity=\"1.0\" fill=\"rgb(228,26,28)\" fill-opacity=\"1.0\" stroke-width=\"1.5\">\n", " </rect>\n", " </g>\n", " </g>\n", " </g>\n", " <g transform=\"translate(26.9903027277341 16.05 ) \">\n", " <text class=\"legend-item\" y=\"0.0\">\n", " <tspan>1</tspan>\n", " </text>\n", " </g>\n", " </g>\n", " <g transform=\"translate(0.0 23.0 ) \">\n", " <g>\n", " <g transform=\"translate(1.0 1.0 ) \">\n", " <g>\n", " <rect x=\"0.0\" y=\"0.0\" height=\"21.0\" width=\"21.0\" stroke=\"rgb(255,255,255)\" stroke-opacity=\"1.0\" fill=\"rgb(55,126,184)\" fill-opacity=\"1.0\" stroke-width=\"1.5\">\n", " </rect>\n", " </g>\n", " </g>\n", " </g>\n", " <g transform=\"translate(26.9903027277341 16.05 ) \">\n", " <text class=\"legend-item\" y=\"0.0\">\n", " <tspan>2</tspan>\n", " </text>\n", " </g>\n", " </g>\n", " <g transform=\"translate(0.0 46.0 ) \">\n", " <g>\n", " <g transform=\"translate(1.0 1.0 ) \">\n", " <g>\n", " <rect x=\"0.0\" y=\"0.0\" height=\"21.0\" width=\"21.0\" stroke=\"rgb(255,255,255)\" stroke-opacity=\"1.0\" fill=\"rgb(77,175,74)\" fill-opacity=\"1.0\" stroke-width=\"1.5\">\n", " </rect>\n", " </g>\n", " </g>\n", " </g>\n", " <g transform=\"translate(26.9903027277341 16.05 ) \">\n", " <text class=\"legend-item\" y=\"0.0\">\n", " <tspan>3</tspan>\n", " </text>\n", " </g>\n", " </g>\n", " <g transform=\"translate(0.0 69.0 ) \">\n", " <g>\n", " <g transform=\"translate(1.0 1.0 ) \">\n", " <g>\n", " <rect x=\"0.0\" y=\"0.0\" height=\"21.0\" width=\"21.0\" stroke=\"rgb(255,255,255)\" stroke-opacity=\"1.0\" fill=\"rgb(152,78,163)\" fill-opacity=\"1.0\" stroke-width=\"1.5\">\n", " </rect>\n", " </g>\n", " </g>\n", " </g>\n", " <g transform=\"translate(26.9903027277341 16.05 ) \">\n", " <text class=\"legend-item\" y=\"0.0\">\n", " <tspan>4</tspan>\n", " </text>\n", " </g>\n", " </g>\n", " <g transform=\"translate(0.0 92.0 ) \">\n", " <g>\n", " <g transform=\"translate(1.0 1.0 ) \">\n", " <g>\n", " <rect x=\"0.0\" y=\"0.0\" height=\"21.0\" width=\"21.0\" stroke=\"rgb(255,255,255)\" stroke-opacity=\"1.0\" fill=\"rgb(255,127,0)\" fill-opacity=\"1.0\" stroke-width=\"1.5\">\n", " </rect>\n", " </g>\n", " </g>\n", " </g>\n", " <g transform=\"translate(26.9903027277341 16.05 ) \">\n", " <text class=\"legend-item\" y=\"0.0\">\n", " <tspan>5</tspan>\n", " </text>\n", " </g>\n", " </g>\n", " </g>\n", " </g>\n", " </g>\n", " <path fill=\"rgb(0,0,0)\" fill-opacity=\"0.0\" stroke=\"rgb(71,71,71)\" stroke-opacity=\"1.0\" stroke-width=\"0.0\" d=\"M0.0 0.0 L0.0 400.0 L600.0 400.0 L600.0 0.0 Z\" pointer-events=\"none\">\n", " </path>\n", " </g>\n", " <g id=\"djbRjpF\">\n", " </g>\n", "</svg>\n", " <script>document.getElementById(\"c2e4fa46-e862-4d87-ac2c-9a5d709a893f\").style.display = \"none\";</script>" ], | |
| "application/plot+json" : { | |
| "output_type" : "lets_plot_spec", | |
| "output" : { | |
| "mapping" : { }, | |
| "coord" : { | |
| "name" : "cartesian", | |
| "flip" : false, | |
| "ylim" : [ 1150300.62107005, 1164727.2575287838 ] | |
| }, | |
| "data" : { | |
| "score" : [ 1158908.1037975468, 1161431.155757067, 1157657.9158900976, 1163379.5392909562, 1158893.1683501906, 1156089.8014178998, 1159765.6576914047, 1160904.8575220038, 1160873.98853425, 1154220.2304071567, 1159114.7874430087, 1156306.6691030415, 1151452.073143193, 1164727.2575287838, 1162030.0201411375 ], | |
| "fork" : [ 1.0, 1.0, 1.0, 1.0, 1.0, 2.0, 2.0, 2.0, 2.0, 2.0, 3.0, 3.0, 3.0, 3.0, 3.0 ], | |
| "&merged_groups" : [ "1", "1", "1", "1", "1", "2", "2", "2", "2", "2", "3", "3", "3", "3", "3" ], | |
| "iteration" : [ "1", "2", "3", "4", "5", "1", "2", "3", "4", "5", "1", "2", "3", "4", "5" ] | |
| }, | |
| "kind" : "plot", | |
| "scales" : [ { | |
| "aesthetic" : "x", | |
| "discrete" : true | |
| }, { | |
| "aesthetic" : "y", | |
| "limits" : [ null, null ] | |
| }, { | |
| "aesthetic" : "fill", | |
| "discrete" : true | |
| }, { | |
| "aesthetic" : "x", | |
| "name" : "Fork", | |
| "limits" : [ null, null ] | |
| }, { | |
| "aesthetic" : "y", | |
| "name" : "Score (ops/s)", | |
| "limits" : [ null, null ] | |
| } ], | |
| "layers" : [ { | |
| "mapping" : { | |
| "x" : "fork", | |
| "y" : "score", | |
| "fill" : "iteration", | |
| "group" : "&merged_groups" | |
| }, | |
| "stat" : "identity", | |
| "sampling" : "none", | |
| "width" : 5.0, | |
| "inherit_aes" : false, | |
| "position" : "dodge", | |
| "geom" : "bar" | |
| } ], | |
| "data_meta" : { | |
| "series_annotations" : [ { | |
| "type" : "int", | |
| "column" : "fork" | |
| }, { | |
| "type" : "float", | |
| "column" : "score" | |
| }, { | |
| "type" : "str", | |
| "column" : "iteration" | |
| }, { | |
| "type" : "str", | |
| "column" : "&merged_groups" | |
| } ] | |
| } | |
| }, | |
| "apply_color_scheme" : true, | |
| "swing_enabled" : true | |
| } | |
| }, | |
| "execution_count" : 5, | |
| "metadata" : { }, | |
| "output_type" : "execute_result" | |
| } ], | |
| "execution_count" : 5 | |
| }, { | |
| "metadata" : { | |
| "ExecuteTime" : { | |
| "end_time" : "2025-09-24T15:39:59.827276Z", | |
| "start_time" : "2025-09-24T15:39:59.616862Z" | |
| } | |
| }, | |
| "cell_type" : "code", | |
| "source" : [ "// Plot the differences in the benchmark using @Params\n", "// Here we just focus one the actual score and error values\n", "data class MathBenchmark(\n", " val name: String,\n", " val score: Double,\n", " val error: Double,\n", " val unit: String\n", ")\n", "\n", "val mathBenchmark = benchmarkData.filter {\n", " it.benchmark == \"test.ParamBenchmark.mathBenchmark\"\n", "}.map {\n", " MathBenchmark(\n", " name = \"[${it.params?.data.toString()},${it.params?.value.toString()}]\",\n", " score = it.primaryMetric.score,\n", " error = it.primaryMetric.scoreError,\n", " unit = it.primaryMetric.scoreUnit,\n", " )\n", "}.toDataFrame()\n", "mathBenchmark" ], | |
| "id" : "2a2e8750d4b73720", | |
| "outputs" : [ { | |
| "data" : { | |
| "text/html" : [ " <iframe onload=\"o_resize_iframe_out_5()\" style=\"width:100%;\" class=\"result_container\" id=\"iframe_out_5\" frameBorder=\"0\" srcdoc=\" <html>\n", " <head>\n", " <style type="text/css">\n", " :root {\n", " --background: #fff;\n", " --background-odd: #f5f5f5;\n", " --background-hover: #d9edfd;\n", " --header-text-color: #474747;\n", " --text-color: #848484;\n", " --text-color-dark: #000;\n", " --text-color-medium: #737373;\n", " --text-color-pale: #b3b3b3;\n", " --inner-border-color: #aaa;\n", " --bold-border-color: #000;\n", " --link-color: #296eaa;\n", " --link-color-pale: #296eaa;\n", " --link-hover: #1a466c;\n", "}\n", "\n", ":root[theme="dark"], :root [data-jp-theme-light="false"], .dataframe_dark{\n", " --background: #303030;\n", " --background-odd: #3c3c3c;\n", " --background-hover: #464646;\n", " --header-text-color: #dddddd;\n", " --text-color: #b3b3b3;\n", " --text-color-dark: #dddddd;\n", " --text-color-medium: #b2b2b2;\n", " --text-color-pale: #737373;\n", " --inner-border-color: #707070;\n", " --bold-border-color: #777777;\n", " --link-color: #008dc0;\n", " --link-color-pale: #97e1fb;\n", " --link-hover: #00688e;\n", "}\n", "\n", "p.dataframe_description {\n", " color: var(--text-color-dark);\n", "}\n", "\n", "table.dataframe {\n", " font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;\n", " font-size: 12px;\n", " background-color: var(--background);\n", " color: var(--text-color-dark);\n", " border: none;\n", " border-collapse: collapse;\n", "}\n", "\n", "table.dataframe th, td {\n", " padding: 6px;\n", " border: 1px solid transparent;\n", " text-align: left;\n", "}\n", "\n", "table.dataframe th {\n", " background-color: var(--background);\n", " color: var(--header-text-color);\n", "}\n", "\n", "table.dataframe td {\n", " vertical-align: top;\n", " white-space: nowrap;\n", "}\n", "\n", "table.dataframe th.bottomBorder {\n", " border-bottom-color: var(--bold-border-color);\n", "}\n", "\n", "table.dataframe tbody > tr:nth-child(odd) {\n", " background: var(--background-odd);\n", "}\n", "\n", "table.dataframe tbody > tr:nth-child(even) {\n", " background: var(--background);\n", "}\n", "\n", "table.dataframe tbody > tr:hover {\n", " background: var(--background-hover);\n", "}\n", "\n", "table.dataframe a {\n", " cursor: pointer;\n", " color: var(--link-color);\n", " text-decoration: none;\n", "}\n", "\n", "table.dataframe tr:hover > td a {\n", " color: var(--link-color-pale);\n", "}\n", "\n", "table.dataframe a:hover {\n", " color: var(--link-hover);\n", " text-decoration: underline;\n", "}\n", "\n", "table.dataframe img {\n", " max-width: fit-content;\n", "}\n", "\n", "table.dataframe th.complex {\n", " background-color: var(--background);\n", " border: 1px solid var(--background);\n", "}\n", "\n", "table.dataframe .leftBorder {\n", " border-left-color: var(--inner-border-color);\n", "}\n", "\n", "table.dataframe .rightBorder {\n", " border-right-color: var(--inner-border-color);\n", "}\n", "\n", "table.dataframe .rightAlign {\n", " text-align: right;\n", "}\n", "\n", "table.dataframe .expanderSvg {\n", " width: 8px;\n", " height: 8px;\n", " margin-right: 3px;\n", "}\n", "\n", "table.dataframe .expander {\n", " display: flex;\n", " align-items: center;\n", "}\n", "\n", "/* formatting */\n", "\n", "table.dataframe .null {\n", " color: var(--text-color-pale);\n", "}\n", "\n", "table.dataframe .structural {\n", " color: var(--text-color-medium);\n", " font-weight: bold;\n", "}\n", "\n", "table.dataframe .dataFrameCaption {\n", " font-weight: bold;\n", "}\n", "\n", "table.dataframe .numbers {\n", " color: var(--text-color-dark);\n", "}\n", "\n", "table.dataframe td:hover .formatted .structural, .null {\n", " color: var(--text-color-dark);\n", "}\n", "\n", "table.dataframe tr:hover .formatted .structural, .null {\n", " color: var(--text-color-dark);\n", "}\n", "\n", "\n", ":root {\n", " --scroll-bg: #f5f5f5;\n", " --scroll-fg: #b3b3b3;\n", "}\n", ":root[theme="dark"], :root [data-jp-theme-light="false"]{\n", " --scroll-bg: #3c3c3c;\n", " --scroll-fg: #97e1fb;\n", "}\n", "body {\n", " scrollbar-color: var(--scroll-fg) var(--scroll-bg);\n", "}\n", "body::-webkit-scrollbar {\n", " width: 10px; /* Mostly for vertical scrollbars */\n", " height: 10px; /* Mostly for horizontal scrollbars */\n", "}\n", "body::-webkit-scrollbar-thumb {\n", " background-color: var(--scroll-fg);\n", "}\n", "body::-webkit-scrollbar-track {\n", " background-color: var(--scroll-bg);\n", "}\n", " </style>\n", " </head>\n", " <body>\n", " <table class="dataframe" id="df_-536870904"></table>\n", "\n", "<p class="dataframe_description">DataFrame: rowsCount = 4, columnsCount = 4</p>\n", "\n", " </body>\n", " <script>\n", " (function () {\n", " window.DataFrame = window.DataFrame || new (function () {\n", " this.addTable = function (df) {\n", " let cols = df.cols;\n", " for (let i = 0; i < cols.length; i++) {\n", " for (let c of cols[i].children) {\n", " cols[c].parent = i;\n", " }\n", " }\n", " df.nrow = 0\n", " for (let i = 0; i < df.cols.length; i++) {\n", " if (df.cols[i].values.length > df.nrow) df.nrow = df.cols[i].values.length\n", " }\n", " if (df.id === df.rootId) {\n", " df.expandedFrames = new Set()\n", " df.childFrames = {}\n", " const table = this.getTableElement(df.id)\n", " table.df = df\n", " for (let i = 0; i < df.cols.length; i++) {\n", " let col = df.cols[i]\n", " if (col.parent === undefined && col.children.length > 0) col.expanded = true\n", " }\n", " } else {\n", " const rootDf = this.getTableData(df.rootId)\n", " rootDf.childFrames[df.id] = df\n", " }\n", " }\n", "\n", " this.computeRenderData = function (df) {\n", " let result = []\n", " let pos = 0\n", " for (let col = 0; col < df.cols.length; col++) {\n", " if (df.cols[col].parent === undefined)\n", " pos += this.computeRenderDataRec(df.cols, col, pos, 0, result, false, false)\n", " }\n", " for (let i = 0; i < result.length; i++) {\n", " let row = result[i]\n", " for (let j = 0; j < row.length; j++) {\n", " let cell = row[j]\n", " if (j === 0)\n", " cell.leftBd = false\n", " if (j < row.length - 1) {\n", " let nextData = row[j + 1]\n", " if (nextData.leftBd) cell.rightBd = true\n", " else if (cell.rightBd) nextData.leftBd = true\n", " } else cell.rightBd = false\n", " }\n", " }\n", " return result\n", " }\n", "\n", " this.computeRenderDataRec = function (cols, colId, pos, depth, result, leftBorder, rightBorder) {\n", " if (result.length === depth) {\n", " const array = [];\n", " if (pos > 0) {\n", " let j = 0\n", " for (let i = 0; j < pos; i++) {\n", " let c = result[depth - 1][i]\n", " j += c.span\n", " let copy = Object.assign({empty: true}, c)\n", " array.push(copy)\n", " }\n", " }\n", " result.push(array)\n", " }\n", " const col = cols[colId];\n", " let size = 0;\n", " if (col.expanded) {\n", " let childPos = pos\n", " for (let i = 0; i < col.children.length; i++) {\n", " let child = col.children[i]\n", " let childLeft = i === 0 && (col.children.length > 1 || leftBorder)\n", " let childRight = i === col.children.length - 1 && (col.children.length > 1 || rightBorder)\n", " let childSize = this.computeRenderDataRec(cols, child, childPos, depth + 1, result, childLeft, childRight)\n", " childPos += childSize\n", " size += childSize\n", " }\n", " } else {\n", " for (let i = depth + 1; i < result.length; i++)\n", " result[i].push({id: colId, span: 1, leftBd: leftBorder, rightBd: rightBorder, empty: true})\n", " size = 1\n", " }\n", " let left = leftBorder\n", " let right = rightBorder\n", " if (size > 1) {\n", " left = true\n", " right = true\n", " }\n", " result[depth].push({id: colId, span: size, leftBd: left, rightBd: right})\n", " return size\n", " }\n", "\n", " this.getTableElement = function (id) {\n", " return document.getElementById("df_" + id)\n", " }\n", "\n", " this.getTableData = function (id) {\n", " return this.getTableElement(id).df\n", " }\n", "\n", " this.createExpander = function (isExpanded) {\n", " const svgNs = "http://www.w3.org/2000/svg"\n", " let svg = document.createElementNS(svgNs, "svg")\n", " svg.classList.add("expanderSvg")\n", " let path = document.createElementNS(svgNs, "path")\n", " if (isExpanded) {\n", " svg.setAttribute("viewBox", "0 -2 8 8")\n", " path.setAttribute("d", "M1 0 l-1 1 4 4 4 -4 -1 -1 -3 3Z")\n", " } else {\n", " svg.setAttribute("viewBox", "-2 0 8 8")\n", " path.setAttribute("d", "M1 0 l-1 1 3 3 -3 3 1 1 4 -4Z")\n", " }\n", " path.setAttribute("fill", "currentColor")\n", " svg.appendChild(path)\n", " return svg\n", " }\n", "\n", " this.renderTable = function (id) {\n", "\n", " let table = this.getTableElement(id)\n", "\n", " if (table === null) return\n", "\n", " table.innerHTML = ""\n", "\n", " let df = table.df\n", " let rootDf = df.rootId === df.id ? df : this.getTableData(df.rootId)\n", "\n", " // header\n", " let header = document.createElement("thead")\n", " table.appendChild(header)\n", "\n", " let renderData = this.computeRenderData(df)\n", " for (let j = 0; j < renderData.length; j++) {\n", " let rowData = renderData[j]\n", " let tr = document.createElement("tr");\n", " let isLastRow = j === renderData.length - 1\n", " header.appendChild(tr);\n", " for (let i = 0; i < rowData.length; i++) {\n", " let cell = rowData[i]\n", " let th = document.createElement("th");\n", " th.setAttribute("colspan", cell.span)\n", " let colId = cell.id\n", " let col = df.cols[colId];\n", " if (!cell.empty) {\n", " if (col.children.length === 0) {\n", " th.innerHTML = col.name\n", " } else {\n", " let link = document.createElement("a")\n", " link.className = "expander"\n", " let that = this\n", " link.onclick = function () {\n", " col.expanded = !col.expanded\n", " that.renderTable(id)\n", " }\n", " link.appendChild(this.createExpander(col.expanded))\n", " link.innerHTML += col.name\n", " th.appendChild(link)\n", " }\n", " }\n", " let classes = (cell.leftBd ? " leftBorder" : "") + (cell.rightBd ? " rightBorder" : "")\n", " if (col.rightAlign)\n", " classes += " rightAlign"\n", " if (isLastRow)\n", " classes += " bottomBorder"\n", " if (classes.length > 0)\n", " th.setAttribute("class", classes)\n", " tr.appendChild(th)\n", " }\n", " }\n", "\n", " // body\n", " let body = document.createElement("tbody")\n", " table.appendChild(body)\n", "\n", " let columns = renderData.pop()\n", " for (let row = 0; row < df.nrow; row++) {\n", " let tr = document.createElement("tr");\n", " body.appendChild(tr)\n", " for (let i = 0; i < columns.length; i++) {\n", " let cell = columns[i]\n", " let td = document.createElement("td");\n", " let colId = cell.id\n", " let col = df.cols[colId]\n", " let classes = (cell.leftBd ? " leftBorder" : "") + (cell.rightBd ? " rightBorder" : "")\n", " if (col.rightAlign)\n", " classes += " rightAlign"\n", " if (classes.length > 0)\n", " td.setAttribute("class", classes)\n", " tr.appendChild(td)\n", " let value = col.values[row]\n", " if (value.frameId !== undefined) {\n", " let frameId = value.frameId\n", " let expanded = rootDf.expandedFrames.has(frameId)\n", " let link = document.createElement("a")\n", " link.className = "expander"\n", " let that = this\n", " link.onclick = function () {\n", " if (rootDf.expandedFrames.has(frameId))\n", " rootDf.expandedFrames.delete(frameId)\n", " else rootDf.expandedFrames.add(frameId)\n", " that.renderTable(id)\n", " }\n", " link.appendChild(this.createExpander(expanded))\n", " link.innerHTML += value.value\n", " if (expanded) {\n", " td.appendChild(link)\n", " td.appendChild(document.createElement("p"))\n", " const childTable = document.createElement("table")\n", " childTable.className = "dataframe"\n", " childTable.id = "df_" + frameId\n", " let childDf = rootDf.childFrames[frameId]\n", " childTable.df = childDf\n", " td.appendChild(childTable)\n", " this.renderTable(frameId)\n", " if (childDf.nrow !== childDf.totalRows) {\n", " const footer = document.createElement("p")\n", " footer.innerText = `... showing only top ${childDf.nrow} of ${childDf.totalRows} rows`\n", " td.appendChild(footer)\n", " }\n", " } else {\n", " td.appendChild(link)\n", " }\n", " } else if (value.style !== undefined) {\n", " td.innerHTML = value.value\n", " td.setAttribute("style", value.style)\n", " } else td.innerHTML = value\n", " this.nodeScriptReplace(td)\n", " }\n", " }\n", " }\n", "\n", " this.nodeScriptReplace = function (node) {\n", " if (this.nodeScriptIs(node) === true) {\n", " node.parentNode.replaceChild(this.nodeScriptClone(node), node);\n", " } else {\n", " let i = -1, children = node.childNodes;\n", " while (++i < children.length) {\n", " this.nodeScriptReplace(children[i]);\n", " }\n", " }\n", "\n", " return node;\n", " }\n", "\n", " this.nodeScriptClone = function (node) {\n", " let script = document.createElement("script");\n", " script.text = node.innerHTML;\n", "\n", " let i = -1, attrs = node.attributes, attr;\n", " while (++i < attrs.length) {\n", " script.setAttribute((attr = attrs[i]).name, attr.value);\n", " }\n", " return script;\n", " }\n", "\n", " this.nodeScriptIs = function (node) {\n", " return node.tagName === 'SCRIPT';\n", " }\n", " })()\n", "\n", " window.call_DataFrame = function (f) {\n", " return f();\n", " };\n", "\n", " let funQueue = window["kotlinQueues"] && window["kotlinQueues"]["DataFrame"];\n", " if (funQueue) {\n", " funQueue.forEach(function (f) {\n", " f();\n", " });\n", " funQueue = [];\n", " }\n", "})()\n", "\n", "/*<!--*/\n", "call_DataFrame(function() { DataFrame.addTable({ cols: [{ name: "<span title=\"name: String\">name</span>", children: [], rightAlign: false, values: ["<span class=\"formatted\" title=\"{\n &#34;data&#34;: {\n &#34;application/json&#34;: [\n 1,\n 1\n ],\n &#34;text/plain&#34;: &#34;[&#92;n 1,&#92;n 1&#92;n]&#34;,\n &#34;text/markdown&#34;: &#34;```json&#92;n[&#92;n 1,&#92;n 1&#92;n]&#92;n```&#34;\n },\n &#34;metadata&#34;: {\n &#34;application/json&#34;: {\n &#34;expanded&#34;: true\n }\n }\n}\">{\n &#34;data&#34;: {\n &#34;application/<span class=\"structural\">...</span></span>","<span class=\"formatted\" title=\"{\n &#34;data&#34;: {\n &#34;application/json&#34;: [\n 1,\n 2\n ],\n &#34;text/plain&#34;: &#34;[&#92;n 1,&#92;n 2&#92;n]&#34;,\n &#34;text/markdown&#34;: &#34;```json&#92;n[&#92;n 1,&#92;n 2&#92;n]&#92;n```&#34;\n },\n &#34;metadata&#34;: {\n &#34;application/json&#34;: {\n &#34;expanded&#34;: true\n }\n }\n}\">{\n &#34;data&#34;: {\n &#34;application/<span class=\"structural\">...</span></span>","<span class=\"formatted\" title=\"{\n &#34;data&#34;: {\n &#34;application/json&#34;: [\n 2,\n 1\n ],\n &#34;text/plain&#34;: &#34;[&#92;n 2,&#92;n 1&#92;n]&#34;,\n &#34;text/markdown&#34;: &#34;```json&#92;n[&#92;n 2,&#92;n 1&#92;n]&#92;n```&#34;\n },\n &#34;metadata&#34;: {\n &#34;application/json&#34;: {\n &#34;expanded&#34;: true\n }\n }\n}\">{\n &#34;data&#34;: {\n &#34;application/<span class=\"structural\">...</span></span>","<span class=\"formatted\" title=\"{\n &#34;data&#34;: {\n &#34;application/json&#34;: [\n 2,\n 2\n ],\n &#34;text/plain&#34;: &#34;[&#92;n 2,&#92;n 2&#92;n]&#34;,\n &#34;text/markdown&#34;: &#34;```json&#92;n[&#92;n 2,&#92;n 2&#92;n]&#92;n```&#34;\n },\n &#34;metadata&#34;: {\n &#34;application/json&#34;: {\n &#34;expanded&#34;: true\n }\n }\n}\">{\n &#34;data&#34;: {\n &#34;application/<span class=\"structural\">...</span></span>"] }, \n", "{ name: "<span title=\"score: Double\">score</span>", children: [], rightAlign: true, values: ["<span class=\"formatted\" title=\"\"><span class=\"numbers\">209712.172221</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">217745.267345</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">103881.763059</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">103368.085738</span></span>"] }, \n", "{ name: "<span title=\"error: Double\">error</span>", children: [], rightAlign: true, values: ["<span class=\"formatted\" title=\"\"><span class=\"numbers\">6204.765083</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">567.128662</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">845.091655</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">1124.203555</span></span>"] }, \n", "{ name: "<span title=\"unit: String\">unit</span>", children: [], rightAlign: false, values: ["ops/ms","ops/ms","ops/ms","ops/ms"] }, \n", "], id: -536870904, rootId: -536870904, totalRows: 4 } ) });\n", "/*-->*/\n", "\n", "call_DataFrame(function() { DataFrame.renderTable(-536870904) });\n", "\n", "\n", " </script>\n", " </html>\"></iframe>\n", " <script>\n", " function o_resize_iframe_out_5() {\n", " let elem = document.getElementById(\"iframe_out_5\");\n", " resize_iframe_out_5(elem);\n", " setInterval(resize_iframe_out_5, 5000, elem);\n", " }\n", " function resize_iframe_out_5(el) {\n", " let h = el.contentWindow.document.body.scrollHeight;\n", " el.height = h === 0 ? 0 : h + 41;\n", " }\n", " </script> <html>\n", " <head>\n", " <style type=\"text/css\">\n", " :root {\n", " --background: #fff;\n", " --background-odd: #f5f5f5;\n", " --background-hover: #d9edfd;\n", " --header-text-color: #474747;\n", " --text-color: #848484;\n", " --text-color-dark: #000;\n", " --text-color-medium: #737373;\n", " --text-color-pale: #b3b3b3;\n", " --inner-border-color: #aaa;\n", " --bold-border-color: #000;\n", " --link-color: #296eaa;\n", " --link-color-pale: #296eaa;\n", " --link-hover: #1a466c;\n", "}\n", "\n", ":root[theme=\"dark\"], :root [data-jp-theme-light=\"false\"], .dataframe_dark{\n", " --background: #303030;\n", " --background-odd: #3c3c3c;\n", " --background-hover: #464646;\n", " --header-text-color: #dddddd;\n", " --text-color: #b3b3b3;\n", " --text-color-dark: #dddddd;\n", " --text-color-medium: #b2b2b2;\n", " --text-color-pale: #737373;\n", " --inner-border-color: #707070;\n", " --bold-border-color: #777777;\n", " --link-color: #008dc0;\n", " --link-color-pale: #97e1fb;\n", " --link-hover: #00688e;\n", "}\n", "\n", "p.dataframe_description {\n", " color: var(--text-color-dark);\n", "}\n", "\n", "table.dataframe {\n", " font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n", " font-size: 12px;\n", " background-color: var(--background);\n", " color: var(--text-color-dark);\n", " border: none;\n", " border-collapse: collapse;\n", "}\n", "\n", "table.dataframe th, td {\n", " padding: 6px;\n", " border: 1px solid transparent;\n", " text-align: left;\n", "}\n", "\n", "table.dataframe th {\n", " background-color: var(--background);\n", " color: var(--header-text-color);\n", "}\n", "\n", "table.dataframe td {\n", " vertical-align: top;\n", " white-space: nowrap;\n", "}\n", "\n", "table.dataframe th.bottomBorder {\n", " border-bottom-color: var(--bold-border-color);\n", "}\n", "\n", "table.dataframe tbody > tr:nth-child(odd) {\n", " background: var(--background-odd);\n", "}\n", "\n", "table.dataframe tbody > tr:nth-child(even) {\n", " background: var(--background);\n", "}\n", "\n", "table.dataframe tbody > tr:hover {\n", " background: var(--background-hover);\n", "}\n", "\n", "table.dataframe a {\n", " cursor: pointer;\n", " color: var(--link-color);\n", " text-decoration: none;\n", "}\n", "\n", "table.dataframe tr:hover > td a {\n", " color: var(--link-color-pale);\n", "}\n", "\n", "table.dataframe a:hover {\n", " color: var(--link-hover);\n", " text-decoration: underline;\n", "}\n", "\n", "table.dataframe img {\n", " max-width: fit-content;\n", "}\n", "\n", "table.dataframe th.complex {\n", " background-color: var(--background);\n", " border: 1px solid var(--background);\n", "}\n", "\n", "table.dataframe .leftBorder {\n", " border-left-color: var(--inner-border-color);\n", "}\n", "\n", "table.dataframe .rightBorder {\n", " border-right-color: var(--inner-border-color);\n", "}\n", "\n", "table.dataframe .rightAlign {\n", " text-align: right;\n", "}\n", "\n", "table.dataframe .expanderSvg {\n", " width: 8px;\n", " height: 8px;\n", " margin-right: 3px;\n", "}\n", "\n", "table.dataframe .expander {\n", " display: flex;\n", " align-items: center;\n", "}\n", "\n", "/* formatting */\n", "\n", "table.dataframe .null {\n", " color: var(--text-color-pale);\n", "}\n", "\n", "table.dataframe .structural {\n", " color: var(--text-color-medium);\n", " font-weight: bold;\n", "}\n", "\n", "table.dataframe .dataFrameCaption {\n", " font-weight: bold;\n", "}\n", "\n", "table.dataframe .numbers {\n", " color: var(--text-color-dark);\n", "}\n", "\n", "table.dataframe td:hover .formatted .structural, .null {\n", " color: var(--text-color-dark);\n", "}\n", "\n", "table.dataframe tr:hover .formatted .structural, .null {\n", " color: var(--text-color-dark);\n", "}\n", "\n", "\n", " </style>\n", " </head>\n", " <body>\n", " <table class=\"dataframe\" id=\"static_df_-536870903\"><thead><tr><th class=\"bottomBorder\" style=\"text-align:left\">name</th><th class=\"bottomBorder\" style=\"text-align:left\">score</th><th class=\"bottomBorder\" style=\"text-align:left\">error</th><th class=\"bottomBorder\" style=\"text-align:left\">unit</th></tr></thead><tbody><tr><td style=\"vertical-align:top\">[1,1]</td><td style=\"vertical-align:top\">209712.172221</td><td style=\"vertical-align:top\">6204.765083</td><td style=\"vertical-align:top\">ops/ms</td></tr><tr><td style=\"vertical-align:top\">[1,2]</td><td style=\"vertical-align:top\">217745.267345</td><td style=\"vertical-align:top\">567.128662</td><td style=\"vertical-align:top\">ops/ms</td></tr><tr><td style=\"vertical-align:top\">[2,1]</td><td style=\"vertical-align:top\">103881.763059</td><td style=\"vertical-align:top\">845.091655</td><td style=\"vertical-align:top\">ops/ms</td></tr><tr><td style=\"vertical-align:top\">[2,2]</td><td style=\"vertical-align:top\">103368.085738</td><td style=\"vertical-align:top\">1124.203555</td><td style=\"vertical-align:top\">ops/ms</td></tr></tbody></table>\n", " </body>\n", " <script>\n", " document.getElementById(\"static_df_-536870903\").style.display = \"none\";\n", " </script>\n", " </html>" ], | |
| "application/kotlindataframe+json" : "{\"$version\":\"2.1.1\",\"metadata\":{\"columns\":[\"name\",\"score\",\"error\",\"unit\"],\"types\":[{\"kind\":\"ValueColumn\",\"type\":\"kotlin.String\"},{\"kind\":\"ValueColumn\",\"type\":\"kotlin.Double\"},{\"kind\":\"ValueColumn\",\"type\":\"kotlin.Double\"},{\"kind\":\"ValueColumn\",\"type\":\"kotlin.String\"}],\"nrow\":4,\"ncol\":4},\"kotlin_dataframe\":[{\"name\":\"[1,1]\",\"score\":209712.17222125144,\"error\":6204.7650826986865,\"unit\":\"ops/ms\"},{\"name\":\"[1,2]\",\"score\":217745.26734478574,\"error\":567.1286622763312,\"unit\":\"ops/ms\"},{\"name\":\"[2,1]\",\"score\":103881.76305918726,\"error\":845.091654613496,\"unit\":\"ops/ms\"},{\"name\":\"[2,2]\",\"score\":103368.08573800913,\"error\":1124.2035547028786,\"unit\":\"ops/ms\"}]}" | |
| }, | |
| "execution_count" : 6, | |
| "metadata" : { }, | |
| "output_type" : "execute_result" | |
| } ], | |
| "execution_count" : 6 | |
| }, { | |
| "metadata" : { | |
| "ExecuteTime" : { | |
| "end_time" : "2025-09-24T15:40:00.284031Z", | |
| "start_time" : "2025-09-24T15:39:59.889318Z" | |
| } | |
| }, | |
| "cell_type" : "code", | |
| "source" : [ "// Add calculated columns so we can easier plot them in Kandy\n", "val mathBenchmarkWithErrorRange = mathBenchmark\n", " .add(\"errorMax\") { it.score + it.error }\n", " .add(\"errorMin\") { it.score - it.error }\n", "mathBenchmarkWithErrorRange" ], | |
| "id" : "e3d45b12bec3f96a", | |
| "outputs" : [ { | |
| "data" : { | |
| "text/html" : [ " <iframe onload=\"o_resize_iframe_out_7()\" style=\"width:100%;\" class=\"result_container\" id=\"iframe_out_7\" frameBorder=\"0\" srcdoc=\" <html>\n", " <head>\n", " <style type="text/css">\n", " :root {\n", " --background: #fff;\n", " --background-odd: #f5f5f5;\n", " --background-hover: #d9edfd;\n", " --header-text-color: #474747;\n", " --text-color: #848484;\n", " --text-color-dark: #000;\n", " --text-color-medium: #737373;\n", " --text-color-pale: #b3b3b3;\n", " --inner-border-color: #aaa;\n", " --bold-border-color: #000;\n", " --link-color: #296eaa;\n", " --link-color-pale: #296eaa;\n", " --link-hover: #1a466c;\n", "}\n", "\n", ":root[theme="dark"], :root [data-jp-theme-light="false"], .dataframe_dark{\n", " --background: #303030;\n", " --background-odd: #3c3c3c;\n", " --background-hover: #464646;\n", " --header-text-color: #dddddd;\n", " --text-color: #b3b3b3;\n", " --text-color-dark: #dddddd;\n", " --text-color-medium: #b2b2b2;\n", " --text-color-pale: #737373;\n", " --inner-border-color: #707070;\n", " --bold-border-color: #777777;\n", " --link-color: #008dc0;\n", " --link-color-pale: #97e1fb;\n", " --link-hover: #00688e;\n", "}\n", "\n", "p.dataframe_description {\n", " color: var(--text-color-dark);\n", "}\n", "\n", "table.dataframe {\n", " font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;\n", " font-size: 12px;\n", " background-color: var(--background);\n", " color: var(--text-color-dark);\n", " border: none;\n", " border-collapse: collapse;\n", "}\n", "\n", "table.dataframe th, td {\n", " padding: 6px;\n", " border: 1px solid transparent;\n", " text-align: left;\n", "}\n", "\n", "table.dataframe th {\n", " background-color: var(--background);\n", " color: var(--header-text-color);\n", "}\n", "\n", "table.dataframe td {\n", " vertical-align: top;\n", " white-space: nowrap;\n", "}\n", "\n", "table.dataframe th.bottomBorder {\n", " border-bottom-color: var(--bold-border-color);\n", "}\n", "\n", "table.dataframe tbody > tr:nth-child(odd) {\n", " background: var(--background-odd);\n", "}\n", "\n", "table.dataframe tbody > tr:nth-child(even) {\n", " background: var(--background);\n", "}\n", "\n", "table.dataframe tbody > tr:hover {\n", " background: var(--background-hover);\n", "}\n", "\n", "table.dataframe a {\n", " cursor: pointer;\n", " color: var(--link-color);\n", " text-decoration: none;\n", "}\n", "\n", "table.dataframe tr:hover > td a {\n", " color: var(--link-color-pale);\n", "}\n", "\n", "table.dataframe a:hover {\n", " color: var(--link-hover);\n", " text-decoration: underline;\n", "}\n", "\n", "table.dataframe img {\n", " max-width: fit-content;\n", "}\n", "\n", "table.dataframe th.complex {\n", " background-color: var(--background);\n", " border: 1px solid var(--background);\n", "}\n", "\n", "table.dataframe .leftBorder {\n", " border-left-color: var(--inner-border-color);\n", "}\n", "\n", "table.dataframe .rightBorder {\n", " border-right-color: var(--inner-border-color);\n", "}\n", "\n", "table.dataframe .rightAlign {\n", " text-align: right;\n", "}\n", "\n", "table.dataframe .expanderSvg {\n", " width: 8px;\n", " height: 8px;\n", " margin-right: 3px;\n", "}\n", "\n", "table.dataframe .expander {\n", " display: flex;\n", " align-items: center;\n", "}\n", "\n", "/* formatting */\n", "\n", "table.dataframe .null {\n", " color: var(--text-color-pale);\n", "}\n", "\n", "table.dataframe .structural {\n", " color: var(--text-color-medium);\n", " font-weight: bold;\n", "}\n", "\n", "table.dataframe .dataFrameCaption {\n", " font-weight: bold;\n", "}\n", "\n", "table.dataframe .numbers {\n", " color: var(--text-color-dark);\n", "}\n", "\n", "table.dataframe td:hover .formatted .structural, .null {\n", " color: var(--text-color-dark);\n", "}\n", "\n", "table.dataframe tr:hover .formatted .structural, .null {\n", " color: var(--text-color-dark);\n", "}\n", "\n", "\n", ":root {\n", " --scroll-bg: #f5f5f5;\n", " --scroll-fg: #b3b3b3;\n", "}\n", ":root[theme="dark"], :root [data-jp-theme-light="false"]{\n", " --scroll-bg: #3c3c3c;\n", " --scroll-fg: #97e1fb;\n", "}\n", "body {\n", " scrollbar-color: var(--scroll-fg) var(--scroll-bg);\n", "}\n", "body::-webkit-scrollbar {\n", " width: 10px; /* Mostly for vertical scrollbars */\n", " height: 10px; /* Mostly for horizontal scrollbars */\n", "}\n", "body::-webkit-scrollbar-thumb {\n", " background-color: var(--scroll-fg);\n", "}\n", "body::-webkit-scrollbar-track {\n", " background-color: var(--scroll-bg);\n", "}\n", " </style>\n", " </head>\n", " <body>\n", " <table class="dataframe" id="df_-536870900"></table>\n", "\n", "<p class="dataframe_description">DataFrame: rowsCount = 4, columnsCount = 6</p>\n", "\n", " </body>\n", " <script>\n", " (function () {\n", " window.DataFrame = window.DataFrame || new (function () {\n", " this.addTable = function (df) {\n", " let cols = df.cols;\n", " for (let i = 0; i < cols.length; i++) {\n", " for (let c of cols[i].children) {\n", " cols[c].parent = i;\n", " }\n", " }\n", " df.nrow = 0\n", " for (let i = 0; i < df.cols.length; i++) {\n", " if (df.cols[i].values.length > df.nrow) df.nrow = df.cols[i].values.length\n", " }\n", " if (df.id === df.rootId) {\n", " df.expandedFrames = new Set()\n", " df.childFrames = {}\n", " const table = this.getTableElement(df.id)\n", " table.df = df\n", " for (let i = 0; i < df.cols.length; i++) {\n", " let col = df.cols[i]\n", " if (col.parent === undefined && col.children.length > 0) col.expanded = true\n", " }\n", " } else {\n", " const rootDf = this.getTableData(df.rootId)\n", " rootDf.childFrames[df.id] = df\n", " }\n", " }\n", "\n", " this.computeRenderData = function (df) {\n", " let result = []\n", " let pos = 0\n", " for (let col = 0; col < df.cols.length; col++) {\n", " if (df.cols[col].parent === undefined)\n", " pos += this.computeRenderDataRec(df.cols, col, pos, 0, result, false, false)\n", " }\n", " for (let i = 0; i < result.length; i++) {\n", " let row = result[i]\n", " for (let j = 0; j < row.length; j++) {\n", " let cell = row[j]\n", " if (j === 0)\n", " cell.leftBd = false\n", " if (j < row.length - 1) {\n", " let nextData = row[j + 1]\n", " if (nextData.leftBd) cell.rightBd = true\n", " else if (cell.rightBd) nextData.leftBd = true\n", " } else cell.rightBd = false\n", " }\n", " }\n", " return result\n", " }\n", "\n", " this.computeRenderDataRec = function (cols, colId, pos, depth, result, leftBorder, rightBorder) {\n", " if (result.length === depth) {\n", " const array = [];\n", " if (pos > 0) {\n", " let j = 0\n", " for (let i = 0; j < pos; i++) {\n", " let c = result[depth - 1][i]\n", " j += c.span\n", " let copy = Object.assign({empty: true}, c)\n", " array.push(copy)\n", " }\n", " }\n", " result.push(array)\n", " }\n", " const col = cols[colId];\n", " let size = 0;\n", " if (col.expanded) {\n", " let childPos = pos\n", " for (let i = 0; i < col.children.length; i++) {\n", " let child = col.children[i]\n", " let childLeft = i === 0 && (col.children.length > 1 || leftBorder)\n", " let childRight = i === col.children.length - 1 && (col.children.length > 1 || rightBorder)\n", " let childSize = this.computeRenderDataRec(cols, child, childPos, depth + 1, result, childLeft, childRight)\n", " childPos += childSize\n", " size += childSize\n", " }\n", " } else {\n", " for (let i = depth + 1; i < result.length; i++)\n", " result[i].push({id: colId, span: 1, leftBd: leftBorder, rightBd: rightBorder, empty: true})\n", " size = 1\n", " }\n", " let left = leftBorder\n", " let right = rightBorder\n", " if (size > 1) {\n", " left = true\n", " right = true\n", " }\n", " result[depth].push({id: colId, span: size, leftBd: left, rightBd: right})\n", " return size\n", " }\n", "\n", " this.getTableElement = function (id) {\n", " return document.getElementById("df_" + id)\n", " }\n", "\n", " this.getTableData = function (id) {\n", " return this.getTableElement(id).df\n", " }\n", "\n", " this.createExpander = function (isExpanded) {\n", " const svgNs = "http://www.w3.org/2000/svg"\n", " let svg = document.createElementNS(svgNs, "svg")\n", " svg.classList.add("expanderSvg")\n", " let path = document.createElementNS(svgNs, "path")\n", " if (isExpanded) {\n", " svg.setAttribute("viewBox", "0 -2 8 8")\n", " path.setAttribute("d", "M1 0 l-1 1 4 4 4 -4 -1 -1 -3 3Z")\n", " } else {\n", " svg.setAttribute("viewBox", "-2 0 8 8")\n", " path.setAttribute("d", "M1 0 l-1 1 3 3 -3 3 1 1 4 -4Z")\n", " }\n", " path.setAttribute("fill", "currentColor")\n", " svg.appendChild(path)\n", " return svg\n", " }\n", "\n", " this.renderTable = function (id) {\n", "\n", " let table = this.getTableElement(id)\n", "\n", " if (table === null) return\n", "\n", " table.innerHTML = ""\n", "\n", " let df = table.df\n", " let rootDf = df.rootId === df.id ? df : this.getTableData(df.rootId)\n", "\n", " // header\n", " let header = document.createElement("thead")\n", " table.appendChild(header)\n", "\n", " let renderData = this.computeRenderData(df)\n", " for (let j = 0; j < renderData.length; j++) {\n", " let rowData = renderData[j]\n", " let tr = document.createElement("tr");\n", " let isLastRow = j === renderData.length - 1\n", " header.appendChild(tr);\n", " for (let i = 0; i < rowData.length; i++) {\n", " let cell = rowData[i]\n", " let th = document.createElement("th");\n", " th.setAttribute("colspan", cell.span)\n", " let colId = cell.id\n", " let col = df.cols[colId];\n", " if (!cell.empty) {\n", " if (col.children.length === 0) {\n", " th.innerHTML = col.name\n", " } else {\n", " let link = document.createElement("a")\n", " link.className = "expander"\n", " let that = this\n", " link.onclick = function () {\n", " col.expanded = !col.expanded\n", " that.renderTable(id)\n", " }\n", " link.appendChild(this.createExpander(col.expanded))\n", " link.innerHTML += col.name\n", " th.appendChild(link)\n", " }\n", " }\n", " let classes = (cell.leftBd ? " leftBorder" : "") + (cell.rightBd ? " rightBorder" : "")\n", " if (col.rightAlign)\n", " classes += " rightAlign"\n", " if (isLastRow)\n", " classes += " bottomBorder"\n", " if (classes.length > 0)\n", " th.setAttribute("class", classes)\n", " tr.appendChild(th)\n", " }\n", " }\n", "\n", " // body\n", " let body = document.createElement("tbody")\n", " table.appendChild(body)\n", "\n", " let columns = renderData.pop()\n", " for (let row = 0; row < df.nrow; row++) {\n", " let tr = document.createElement("tr");\n", " body.appendChild(tr)\n", " for (let i = 0; i < columns.length; i++) {\n", " let cell = columns[i]\n", " let td = document.createElement("td");\n", " let colId = cell.id\n", " let col = df.cols[colId]\n", " let classes = (cell.leftBd ? " leftBorder" : "") + (cell.rightBd ? " rightBorder" : "")\n", " if (col.rightAlign)\n", " classes += " rightAlign"\n", " if (classes.length > 0)\n", " td.setAttribute("class", classes)\n", " tr.appendChild(td)\n", " let value = col.values[row]\n", " if (value.frameId !== undefined) {\n", " let frameId = value.frameId\n", " let expanded = rootDf.expandedFrames.has(frameId)\n", " let link = document.createElement("a")\n", " link.className = "expander"\n", " let that = this\n", " link.onclick = function () {\n", " if (rootDf.expandedFrames.has(frameId))\n", " rootDf.expandedFrames.delete(frameId)\n", " else rootDf.expandedFrames.add(frameId)\n", " that.renderTable(id)\n", " }\n", " link.appendChild(this.createExpander(expanded))\n", " link.innerHTML += value.value\n", " if (expanded) {\n", " td.appendChild(link)\n", " td.appendChild(document.createElement("p"))\n", " const childTable = document.createElement("table")\n", " childTable.className = "dataframe"\n", " childTable.id = "df_" + frameId\n", " let childDf = rootDf.childFrames[frameId]\n", " childTable.df = childDf\n", " td.appendChild(childTable)\n", " this.renderTable(frameId)\n", " if (childDf.nrow !== childDf.totalRows) {\n", " const footer = document.createElement("p")\n", " footer.innerText = `... showing only top ${childDf.nrow} of ${childDf.totalRows} rows`\n", " td.appendChild(footer)\n", " }\n", " } else {\n", " td.appendChild(link)\n", " }\n", " } else if (value.style !== undefined) {\n", " td.innerHTML = value.value\n", " td.setAttribute("style", value.style)\n", " } else td.innerHTML = value\n", " this.nodeScriptReplace(td)\n", " }\n", " }\n", " }\n", "\n", " this.nodeScriptReplace = function (node) {\n", " if (this.nodeScriptIs(node) === true) {\n", " node.parentNode.replaceChild(this.nodeScriptClone(node), node);\n", " } else {\n", " let i = -1, children = node.childNodes;\n", " while (++i < children.length) {\n", " this.nodeScriptReplace(children[i]);\n", " }\n", " }\n", "\n", " return node;\n", " }\n", "\n", " this.nodeScriptClone = function (node) {\n", " let script = document.createElement("script");\n", " script.text = node.innerHTML;\n", "\n", " let i = -1, attrs = node.attributes, attr;\n", " while (++i < attrs.length) {\n", " script.setAttribute((attr = attrs[i]).name, attr.value);\n", " }\n", " return script;\n", " }\n", "\n", " this.nodeScriptIs = function (node) {\n", " return node.tagName === 'SCRIPT';\n", " }\n", " })()\n", "\n", " window.call_DataFrame = function (f) {\n", " return f();\n", " };\n", "\n", " let funQueue = window["kotlinQueues"] && window["kotlinQueues"]["DataFrame"];\n", " if (funQueue) {\n", " funQueue.forEach(function (f) {\n", " f();\n", " });\n", " funQueue = [];\n", " }\n", "})()\n", "\n", "/*<!--*/\n", "call_DataFrame(function() { DataFrame.addTable({ cols: [{ name: "<span title=\"name: String\">name</span>", children: [], rightAlign: false, values: ["<span class=\"formatted\" title=\"{\n &#34;data&#34;: {\n &#34;application/json&#34;: [\n 1,\n 1\n ],\n &#34;text/plain&#34;: &#34;[&#92;n 1,&#92;n 1&#92;n]&#34;,\n &#34;text/markdown&#34;: &#34;```json&#92;n[&#92;n 1,&#92;n 1&#92;n]&#92;n```&#34;\n },\n &#34;metadata&#34;: {\n &#34;application/json&#34;: {\n &#34;expanded&#34;: true\n }\n }\n}\">{\n &#34;data&#34;: {\n &#34;application/<span class=\"structural\">...</span></span>","<span class=\"formatted\" title=\"{\n &#34;data&#34;: {\n &#34;application/json&#34;: [\n 1,\n 2\n ],\n &#34;text/plain&#34;: &#34;[&#92;n 1,&#92;n 2&#92;n]&#34;,\n &#34;text/markdown&#34;: &#34;```json&#92;n[&#92;n 1,&#92;n 2&#92;n]&#92;n```&#34;\n },\n &#34;metadata&#34;: {\n &#34;application/json&#34;: {\n &#34;expanded&#34;: true\n }\n }\n}\">{\n &#34;data&#34;: {\n &#34;application/<span class=\"structural\">...</span></span>","<span class=\"formatted\" title=\"{\n &#34;data&#34;: {\n &#34;application/json&#34;: [\n 2,\n 1\n ],\n &#34;text/plain&#34;: &#34;[&#92;n 2,&#92;n 1&#92;n]&#34;,\n &#34;text/markdown&#34;: &#34;```json&#92;n[&#92;n 2,&#92;n 1&#92;n]&#92;n```&#34;\n },\n &#34;metadata&#34;: {\n &#34;application/json&#34;: {\n &#34;expanded&#34;: true\n }\n }\n}\">{\n &#34;data&#34;: {\n &#34;application/<span class=\"structural\">...</span></span>","<span class=\"formatted\" title=\"{\n &#34;data&#34;: {\n &#34;application/json&#34;: [\n 2,\n 2\n ],\n &#34;text/plain&#34;: &#34;[&#92;n 2,&#92;n 2&#92;n]&#34;,\n &#34;text/markdown&#34;: &#34;```json&#92;n[&#92;n 2,&#92;n 2&#92;n]&#92;n```&#34;\n },\n &#34;metadata&#34;: {\n &#34;application/json&#34;: {\n &#34;expanded&#34;: true\n }\n }\n}\">{\n &#34;data&#34;: {\n &#34;application/<span class=\"structural\">...</span></span>"] }, \n", "{ name: "<span title=\"score: Double\">score</span>", children: [], rightAlign: true, values: ["<span class=\"formatted\" title=\"\"><span class=\"numbers\">209712.172221</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">217745.267345</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">103881.763059</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">103368.085738</span></span>"] }, \n", "{ name: "<span title=\"error: Double\">error</span>", children: [], rightAlign: true, values: ["<span class=\"formatted\" title=\"\"><span class=\"numbers\">6204.765083</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">567.128662</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">845.091655</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">1124.203555</span></span>"] }, \n", "{ name: "<span title=\"unit: String\">unit</span>", children: [], rightAlign: false, values: ["ops/ms","ops/ms","ops/ms","ops/ms"] }, \n", "{ name: "<span title=\"errorMax: Double\">errorMax</span>", children: [], rightAlign: true, values: ["<span class=\"formatted\" title=\"\"><span class=\"numbers\">215916.937304</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">218312.396007</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">104726.854714</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">104492.289293</span></span>"] }, \n", "{ name: "<span title=\"errorMin: Double\">errorMin</span>", children: [], rightAlign: true, values: ["<span class=\"formatted\" title=\"\"><span class=\"numbers\">203507.407139</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">217178.138683</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">103036.671405</span></span>","<span class=\"formatted\" title=\"\"><span class=\"numbers\">102243.882183</span></span>"] }, \n", "], id: -536870900, rootId: -536870900, totalRows: 4 } ) });\n", "/*-->*/\n", "\n", "call_DataFrame(function() { DataFrame.renderTable(-536870900) });\n", "\n", "\n", " </script>\n", " </html>\"></iframe>\n", " <script>\n", " function o_resize_iframe_out_7() {\n", " let elem = document.getElementById(\"iframe_out_7\");\n", " resize_iframe_out_7(elem);\n", " setInterval(resize_iframe_out_7, 5000, elem);\n", " }\n", " function resize_iframe_out_7(el) {\n", " let h = el.contentWindow.document.body.scrollHeight;\n", " el.height = h === 0 ? 0 : h + 41;\n", " }\n", " </script> <html>\n", " <head>\n", " <style type=\"text/css\">\n", " :root {\n", " --background: #fff;\n", " --background-odd: #f5f5f5;\n", " --background-hover: #d9edfd;\n", " --header-text-color: #474747;\n", " --text-color: #848484;\n", " --text-color-dark: #000;\n", " --text-color-medium: #737373;\n", " --text-color-pale: #b3b3b3;\n", " --inner-border-color: #aaa;\n", " --bold-border-color: #000;\n", " --link-color: #296eaa;\n", " --link-color-pale: #296eaa;\n", " --link-hover: #1a466c;\n", "}\n", "\n", ":root[theme=\"dark\"], :root [data-jp-theme-light=\"false\"], .dataframe_dark{\n", " --background: #303030;\n", " --background-odd: #3c3c3c;\n", " --background-hover: #464646;\n", " --header-text-color: #dddddd;\n", " --text-color: #b3b3b3;\n", " --text-color-dark: #dddddd;\n", " --text-color-medium: #b2b2b2;\n", " --text-color-pale: #737373;\n", " --inner-border-color: #707070;\n", " --bold-border-color: #777777;\n", " --link-color: #008dc0;\n", " --link-color-pale: #97e1fb;\n", " --link-hover: #00688e;\n", "}\n", "\n", "p.dataframe_description {\n", " color: var(--text-color-dark);\n", "}\n", "\n", "table.dataframe {\n", " font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n", " font-size: 12px;\n", " background-color: var(--background);\n", " color: var(--text-color-dark);\n", " border: none;\n", " border-collapse: collapse;\n", "}\n", "\n", "table.dataframe th, td {\n", " padding: 6px;\n", " border: 1px solid transparent;\n", " text-align: left;\n", "}\n", "\n", "table.dataframe th {\n", " background-color: var(--background);\n", " color: var(--header-text-color);\n", "}\n", "\n", "table.dataframe td {\n", " vertical-align: top;\n", " white-space: nowrap;\n", "}\n", "\n", "table.dataframe th.bottomBorder {\n", " border-bottom-color: var(--bold-border-color);\n", "}\n", "\n", "table.dataframe tbody > tr:nth-child(odd) {\n", " background: var(--background-odd);\n", "}\n", "\n", "table.dataframe tbody > tr:nth-child(even) {\n", " background: var(--background);\n", "}\n", "\n", "table.dataframe tbody > tr:hover {\n", " background: var(--background-hover);\n", "}\n", "\n", "table.dataframe a {\n", " cursor: pointer;\n", " color: var(--link-color);\n", " text-decoration: none;\n", "}\n", "\n", "table.dataframe tr:hover > td a {\n", " color: var(--link-color-pale);\n", "}\n", "\n", "table.dataframe a:hover {\n", " color: var(--link-hover);\n", " text-decoration: underline;\n", "}\n", "\n", "table.dataframe img {\n", " max-width: fit-content;\n", "}\n", "\n", "table.dataframe th.complex {\n", " background-color: var(--background);\n", " border: 1px solid var(--background);\n", "}\n", "\n", "table.dataframe .leftBorder {\n", " border-left-color: var(--inner-border-color);\n", "}\n", "\n", "table.dataframe .rightBorder {\n", " border-right-color: var(--inner-border-color);\n", "}\n", "\n", "table.dataframe .rightAlign {\n", " text-align: right;\n", "}\n", "\n", "table.dataframe .expanderSvg {\n", " width: 8px;\n", " height: 8px;\n", " margin-right: 3px;\n", "}\n", "\n", "table.dataframe .expander {\n", " display: flex;\n", " align-items: center;\n", "}\n", "\n", "/* formatting */\n", "\n", "table.dataframe .null {\n", " color: var(--text-color-pale);\n", "}\n", "\n", "table.dataframe .structural {\n", " color: var(--text-color-medium);\n", " font-weight: bold;\n", "}\n", "\n", "table.dataframe .dataFrameCaption {\n", " font-weight: bold;\n", "}\n", "\n", "table.dataframe .numbers {\n", " color: var(--text-color-dark);\n", "}\n", "\n", "table.dataframe td:hover .formatted .structural, .null {\n", " color: var(--text-color-dark);\n", "}\n", "\n", "table.dataframe tr:hover .formatted .structural, .null {\n", " color: var(--text-color-dark);\n", "}\n", "\n", "\n", " </style>\n", " </head>\n", " <body>\n", " <table class=\"dataframe\" id=\"static_df_-536870899\"><thead><tr><th class=\"bottomBorder\" style=\"text-align:left\">name</th><th class=\"bottomBorder\" style=\"text-align:left\">score</th><th class=\"bottomBorder\" style=\"text-align:left\">error</th><th class=\"bottomBorder\" style=\"text-align:left\">unit</th><th class=\"bottomBorder\" style=\"text-align:left\">errorMax</th><th class=\"bottomBorder\" style=\"text-align:left\">errorMin</th></tr></thead><tbody><tr><td style=\"vertical-align:top\">[1,1]</td><td style=\"vertical-align:top\">209712.172221</td><td style=\"vertical-align:top\">6204.765083</td><td style=\"vertical-align:top\">ops/ms</td><td style=\"vertical-align:top\">215916.937304</td><td style=\"vertical-align:top\">203507.407139</td></tr><tr><td style=\"vertical-align:top\">[1,2]</td><td style=\"vertical-align:top\">217745.267345</td><td style=\"vertical-align:top\">567.128662</td><td style=\"vertical-align:top\">ops/ms</td><td style=\"vertical-align:top\">218312.396007</td><td style=\"vertical-align:top\">217178.138683</td></tr><tr><td style=\"vertical-align:top\">[2,1]</td><td style=\"vertical-align:top\">103881.763059</td><td style=\"vertical-align:top\">845.091655</td><td style=\"vertical-align:top\">ops/ms</td><td style=\"vertical-align:top\">104726.854714</td><td style=\"vertical-align:top\">103036.671405</td></tr><tr><td style=\"vertical-align:top\">[2,2]</td><td style=\"vertical-align:top\">103368.085738</td><td style=\"vertical-align:top\">1124.203555</td><td style=\"vertical-align:top\">ops/ms</td><td style=\"vertical-align:top\">104492.289293</td><td style=\"vertical-align:top\">102243.882183</td></tr></tbody></table>\n", " </body>\n", " <script>\n", " document.getElementById(\"static_df_-536870899\").style.display = \"none\";\n", " </script>\n", " </html>" ], | |
| "application/kotlindataframe+json" : "{\"$version\":\"2.1.1\",\"metadata\":{\"columns\":[\"name\",\"score\",\"error\",\"unit\",\"errorMax\",\"errorMin\"],\"types\":[{\"kind\":\"ValueColumn\",\"type\":\"kotlin.String\"},{\"kind\":\"ValueColumn\",\"type\":\"kotlin.Double\"},{\"kind\":\"ValueColumn\",\"type\":\"kotlin.Double\"},{\"kind\":\"ValueColumn\",\"type\":\"kotlin.String\"},{\"kind\":\"ValueColumn\",\"type\":\"kotlin.Double\"},{\"kind\":\"ValueColumn\",\"type\":\"kotlin.Double\"}],\"nrow\":4,\"ncol\":6},\"kotlin_dataframe\":[{\"name\":\"[1,1]\",\"score\":209712.17222125144,\"error\":6204.7650826986865,\"unit\":\"ops/ms\",\"errorMax\":215916.93730395014,\"errorMin\":203507.40713855275},{\"name\":\"[1,2]\",\"score\":217745.26734478574,\"error\":567.1286622763312,\"unit\":\"ops/ms\",\"errorMax\":218312.39600706208,\"errorMin\":217178.1386825094},{\"name\":\"[2,1]\",\"score\":103881.76305918726,\"error\":845.091654613496,\"unit\":\"ops/ms\",\"errorMax\":104726.85471380076,\"errorMin\":103036.67140457376},{\"name\":\"[2,2]\",\"score\":103368.08573800913,\"error\":1124.2035547028786,\"unit\":\"ops/ms\",\"errorMax\":104492.28929271201,\"errorMin\":102243.88218330625}]}" | |
| }, | |
| "execution_count" : 7, | |
| "metadata" : { }, | |
| "output_type" : "execute_result" | |
| } ], | |
| "execution_count" : 7 | |
| }, { | |
| "metadata" : { | |
| "ExecuteTime" : { | |
| "end_time" : "2025-09-24T15:40:00.550802Z", | |
| "start_time" : "2025-09-24T15:40:00.344226Z" | |
| } | |
| }, | |
| "cell_type" : "code", | |
| "source" : [ "// Plot the same test with its different @Params\n", "mathBenchmarkWithErrorRange.plot {\n", " bars {\n", " x(name)\n", " y(score)\n", " }\n", " errorBars {\n", " x(name)\n", " y(score)\n", " yMin(errorMin)\n", " yMax(errorMax)\n", " }\n", "}" ], | |
| "id" : "c263a596b0f96021", | |
| "outputs" : [ { | |
| "data" : { | |
| "text/html" : [ " <iframe src='about:blank' style='border:none !important;' width='600' height='400' srcdoc=\"<html lang="en">\n", " <head>\n", " <meta charset="UTF-8">\n", " <style> html, body { margin: 0; overflow: hidden; } </style>\n", " <script type="text/javascript" data-lets-plot-script="library" src="https://cdn.jsdelivr.net/gh/JetBrains/[email protected]/js-package/distr/lets-plot.min.js"></script>\n", " </head>\n", " <body>\n", " <div id="rHjNdq"></div>\n", " <script type="text/javascript" data-lets-plot-script="plot">\n", " \n", " (function() {\n", " // ----------\n", " \n", " var plotSpec={\n", ""mapping":{\n", "},\n", ""data":{\n", ""score":[209712.17222125144,217745.26734478574,103881.76305918726,103368.08573800913],\n", ""name":["[1,1]","[1,2]","[2,1]","[2,2]"],\n", ""errorMax":[215916.93730395014,218312.39600706208,104726.85471380076,104492.28929271201],\n", ""errorMin":[203507.40713855275,217178.1386825094,103036.67140457376,102243.88218330625]\n", "},\n", ""kind":"plot",\n", ""scales":[{\n", ""aesthetic":"y",\n", ""limits":[null,null]\n", "},{\n", ""aesthetic":"x",\n", ""discrete":true\n", "},{\n", ""aesthetic":"y",\n", ""limits":[null,null]\n", "},{\n", ""aesthetic":"x",\n", ""discrete":true\n", "}],\n", ""layers":[{\n", ""mapping":{\n", ""y":"score",\n", ""x":"name"\n", "},\n", ""stat":"identity",\n", ""sampling":"none",\n", ""inherit_aes":false,\n", ""position":"dodge",\n", ""geom":"bar",\n", ""data":{\n", "}\n", "},{\n", ""mapping":{\n", ""y":"score",\n", ""x":"name",\n", ""ymin":"errorMin",\n", ""ymax":"errorMax"\n", "},\n", ""stat":"identity",\n", ""sampling":"none",\n", ""inherit_aes":false,\n", ""position":"dodge",\n", ""geom":"errorbar",\n", ""data":{\n", "}\n", "}],\n", ""data_meta":{\n", ""series_annotations":[{\n", ""type":"str",\n", ""column":"name"\n", "},{\n", ""type":"float",\n", ""column":"score"\n", "},{\n", ""type":"float",\n", ""column":"errorMin"\n", "},{\n", ""type":"float",\n", ""column":"errorMax"\n", "}]\n", "},\n", ""spec_id":"5"\n", "};\n", " var containerDiv = document.getElementById("rHjNdq");\n", " \n", " var toolbar = null;\n", " var plotContainer = containerDiv; \n", " \n", " var options = {\n", " sizing: {\n", " width_mode: "fixed",\n", " height_mode: "fixed",\n", " width: 600.0,\n", " height: 400.0\n", " }\n", " };\n", " var fig = LetsPlot.buildPlotFromProcessedSpecs(plotSpec, -1, -1, plotContainer, options);\n", " if (toolbar) {\n", " toolbar.bind(fig);\n", " }\n", " \n", " // ----------\n", " })();\n", " \n", " </script>\n", " </body>\n", "</html>\"></iframe> <svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" display=\"block\" class=\"plt-container\" id=4b9253bf-3907-4cb4-a724-21d6b0513094 width=\"100%\" height=\"100%\" style=\"max-width: 600.0px; max-height: 400.0px;\" viewBox=\"0 0 600.0 400.0\" preserveAspectRatio=\"xMinYMin meet\">\n", " <style type=\"text/css\">\n", " .plt-container {\n", " font-family: Lucida Grande, sans-serif;\n", " user-select: none;\n", " -webkit-user-select: none;\n", " -moz-user-select: none;\n", " -ms-user-select: none;\n", "}\n", "text {\n", " text-rendering: optimizeLegibility;\n", "}\n", "#pf2O3tc .plot-title {\n", "fill: #474747;\n", "font-weight: normal;\n", " font-style: normal;font-family: Lucida Grande, sans-serif;\n", "font-size: 16.0px;\n", "\n", "}\n", "#pf2O3tc .plot-subtitle {\n", "fill: #474747;\n", "font-weight: normal;\n", " font-style: normal;font-family: Lucida Grande, sans-serif;\n", "font-size: 15.0px;\n", "\n", "}\n", "#pf2O3tc .plot-caption {\n", "fill: #474747;\n", "font-weight: normal;\n", " font-style: normal;font-family: Lucida Grande, sans-serif;\n", "font-size: 13.0px;\n", "\n", "}\n", "#pf2O3tc .hyperlink-element {\n", "fill: #118ed8;\n", "font-weight: normal;\n", " font-style: normal;\n", "}\n", "#pf2O3tc .legend-title {\n", "fill: #474747;\n", "font-weight: normal;\n", " font-style: normal;font-family: Lucida Grande, sans-serif;\n", "font-size: 15.0px;\n", "\n", "}\n", "#pf2O3tc .legend-item {\n", "fill: #474747;\n", "font-weight: normal;\n", " font-style: normal;font-family: Lucida Grande, sans-serif;\n", "font-size: 13.0px;\n", "\n", "}\n", "#pf2O3tc .axis-title-x {\n", "fill: #474747;\n", "font-weight: normal;\n", " font-style: normal;font-family: Lucida Grande, sans-serif;\n", "font-size: 15.0px;\n", "\n", "}\n", "#pf2O3tc .axis-text-x {\n", "fill: #474747;\n", "font-weight: normal;\n", " font-style: normal;font-family: Lucida Grande, sans-serif;\n", "font-size: 13.0px;\n", "\n", "}\n", "#dNTwSRX .axis-tooltip-text-x {\n", "fill: #ffffff;\n", "font-weight: normal;\n", " font-style: normal;font-family: Lucida Grande, sans-serif;\n", "font-size: 13.0px;\n", "\n", "}\n", "#pf2O3tc .axis-title-y {\n", "fill: #474747;\n", "font-weight: normal;\n", " font-style: normal;font-family: Lucida Grande, sans-serif;\n", "font-size: 15.0px;\n", "\n", "}\n", "#pf2O3tc .axis-text-y {\n", "fill: #474747;\n", "font-weight: normal;\n", " font-style: normal;font-family: Lucida Grande, sans-serif;\n", "font-size: 13.0px;\n", "\n", "}\n", "#dNTwSRX .axis-tooltip-text-y {\n", "fill: #ffffff;\n", "font-weight: normal;\n", " font-style: normal;font-family: Lucida Grande, sans-serif;\n", "font-size: 13.0px;\n", "\n", "}\n", "#pf2O3tc .facet-strip-text-x {\n", "fill: #474747;\n", "font-weight: normal;\n", " font-style: normal;font-family: Lucida Grande, sans-serif;\n", "font-size: 13.0px;\n", "\n", "}\n", "#pf2O3tc .facet-strip-text-y {\n", "fill: #474747;\n", "font-weight: normal;\n", " font-style: normal;font-family: Lucida Grande, sans-serif;\n", "font-size: 13.0px;\n", "\n", "}\n", "#dNTwSRX .tooltip-text {\n", "fill: #474747;\n", "font-weight: normal;\n", " font-style: normal;font-family: Lucida Grande, sans-serif;\n", "font-size: 13.0px;\n", "\n", "}\n", "#dNTwSRX .tooltip-title {\n", "fill: #474747;\n", "font-weight: bold;\n", " font-style: normal;font-family: Lucida Grande, sans-serif;\n", "font-size: 13.0px;\n", "\n", "}\n", "#dNTwSRX .tooltip-label {\n", "fill: #474747;\n", "font-weight: bold;\n", " font-style: normal;font-family: Lucida Grande, sans-serif;\n", "font-size: 13.0px;\n", "\n", "}\n", "\n", " </style>\n", " <g id=\"pf2O3tc\">\n", " <path fill-rule=\"evenodd\" fill=\"rgb(255,255,255)\" fill-opacity=\"1.0\" d=\"M0.0 0.0 L0.0 400.0 L600.0 400.0 L600.0 0.0 Z\">\n", " </path>\n", " <g transform=\"translate(29.5 6.5 ) \">\n", " <g>\n", " <g transform=\"translate(58.95712304215423 0.0 ) \">\n", " <g>\n", " <line x1=\"76.34369070293016\" y1=\"0.0\" x2=\"76.34369070293016\" y2=\"341.0\" stroke=\"rgb(233,233,233)\" stroke-opacity=\"1.0\" stroke-width=\"1.0\" fill=\"none\">\n", " </line>\n", " <line x1=\"193.79552255359192\" y1=\"0.0\" x2=\"193.79552255359192\" y2=\"341.0\" stroke=\"rgb(233,233,233)\" stroke-opacity=\"1.0\" stroke-width=\"1.0\" fill=\"none\">\n", " </line>\n", " <line x1=\"311.2473544042537\" y1=\"0.0\" x2=\"311.2473544042537\" y2=\"341.0\" stroke=\"rgb(233,233,233)\" stroke-opacity=\"1.0\" stroke-width=\"1.0\" fill=\"none\">\n", " </line>\n", " <line x1=\"428.6991862549155\" y1=\"0.0\" x2=\"428.6991862549155\" y2=\"341.0\" stroke=\"rgb(233,233,233)\" stroke-opacity=\"1.0\" stroke-width=\"1.0\" fill=\"none\">\n", " </line>\n", " </g>\n", " </g>\n", " <g transform=\"translate(58.95712304215423 0.0 ) \">\n", " <g>\n", " <line x1=\"0.0\" y1=\"341.0\" x2=\"505.04287695784575\" y2=\"341.0\" stroke=\"rgb(233,233,233)\" stroke-opacity=\"1.0\" stroke-width=\"1.0\" fill=\"none\">\n", " </line>\n", " <line x1=\"0.0\" y1=\"266.6199119468692\" x2=\"505.04287695784575\" y2=\"266.6199119468692\" stroke=\"rgb(233,233,233)\" stroke-opacity=\"1.0\" stroke-width=\"1.0\" fill=\"none\">\n", " </line>\n", " <line x1=\"0.0\" y1=\"192.2398238937384\" x2=\"505.04287695784575\" y2=\"192.2398238937384\" stroke=\"rgb(233,233,233)\" stroke-opacity=\"1.0\" stroke-width=\"1.0\" fill=\"none\">\n", " </line>\n", " <line x1=\"0.0\" y1=\"117.85973584060761\" x2=\"505.04287695784575\" y2=\"117.85973584060761\" stroke=\"rgb(233,233,233)\" stroke-opacity=\"1.0\" stroke-width=\"1.0\" fill=\"none\">\n", " </line>\n", " <line x1=\"0.0\" y1=\"43.47964778747678\" x2=\"505.04287695784575\" y2=\"43.47964778747678\" stroke=\"rgb(233,233,233)\" stroke-opacity=\"1.0\" stroke-width=\"1.0\" fill=\"none\">\n", " </line>\n", " </g>\n", " </g>\n", " </g>\n", " <g clip-path=\"url(#c66tVWx)\" clip-bounds-jfx=\"[rect (58.95712304215423, 0.0), (505.04287695784575, 341.0)]\">\n", " <g transform=\"translate(58.95712304215423 0.0 ) \">\n", " <g>\n", " <g>\n", " <rect x=\"375.8458619221177\" y=\"187.22945361846612\" height=\"153.77054638153388\" width=\"105.7066486655956\" stroke=\"rgb(255,255,255)\" stroke-opacity=\"1.0\" fill=\"rgb(17,142,216)\" fill-opacity=\"1.0\" stroke-width=\"1.6500000000000001\">\n", " </rect>\n", " <rect x=\"258.3940300714559\" y=\"186.46530633086363\" height=\"154.53469366913637\" width=\"105.70664866559565\" stroke=\"rgb(255,255,255)\" stroke-opacity=\"1.0\" fill=\"rgb(17,142,216)\" fill-opacity=\"1.0\" stroke-width=\"1.6500000000000001\">\n", " </rect>\n", " <rect x=\"140.94219822079413\" y=\"17.0817568348466\" height=\"323.9182431651534\" width=\"105.70664866559562\" stroke=\"rgb(255,255,255)\" stroke-opacity=\"1.0\" fill=\"rgb(17,142,216)\" fill-opacity=\"1.0\" stroke-width=\"1.6500000000000001\">\n", " </rect>\n", " <rect x=\"23.490366370132364\" y=\"29.031803287399725\" height=\"311.9681967126003\" width=\"105.7066486655956\" stroke=\"rgb(255,255,255)\" stroke-opacity=\"1.0\" fill=\"rgb(17,142,216)\" fill-opacity=\"1.0\" stroke-width=\"1.6500000000000001\">\n", " </rect>\n", " </g>\n", " <g>\n", " <g>\n", " <line x1=\"49.91702853653126\" y1=\"38.26202275140213\" x2=\"102.77035286932906\" y2=\"38.26202275140213\" stroke=\"rgb(71,71,71)\" stroke-opacity=\"1.0\" fill=\"none\" stroke-width=\"1.6500000000000001\">\n", " </line>\n", " <line x1=\"49.91702853653126\" y1=\"19.801583823397323\" x2=\"102.77035286932906\" y2=\"19.801583823397323\" stroke=\"rgb(71,71,71)\" stroke-opacity=\"1.0\" fill=\"none\" stroke-width=\"1.6500000000000001\">\n", " </line>\n", " <line x1=\"76.34369070293016\" y1=\"38.26202275140213\" x2=\"76.34369070293016\" y2=\"19.801583823397323\" stroke=\"rgb(71,71,71)\" stroke-opacity=\"1.0\" fill=\"none\" stroke-width=\"1.6500000000000001\">\n", " </line>\n", " </g>\n", " <g>\n", " <line x1=\"167.36886038719302\" y1=\"17.92541843159796\" x2=\"220.22218471999085\" y2=\"17.92541843159796\" stroke=\"rgb(71,71,71)\" stroke-opacity=\"1.0\" fill=\"none\" stroke-width=\"1.6500000000000001\">\n", " </line>\n", " <line x1=\"167.36886038719302\" y1=\"16.23809523809524\" x2=\"220.22218471999085\" y2=\"16.23809523809524\" stroke=\"rgb(71,71,71)\" stroke-opacity=\"1.0\" fill=\"none\" stroke-width=\"1.6500000000000001\">\n", " </line>\n", " <line x1=\"193.79552255359192\" y1=\"17.92541843159796\" x2=\"193.79552255359192\" y2=\"16.23809523809524\" stroke=\"rgb(71,71,71)\" stroke-opacity=\"1.0\" fill=\"none\" stroke-width=\"1.6500000000000001\">\n", " </line>\n", " </g>\n", " <g>\n", " <line x1=\"284.8206922378548\" y1=\"187.722466164526\" x2=\"337.6740165706526\" y2=\"187.722466164526\" stroke=\"rgb(71,71,71)\" stroke-opacity=\"1.0\" fill=\"none\" stroke-width=\"1.6500000000000001\">\n", " </line>\n", " <line x1=\"284.8206922378548\" y1=\"185.20814649720126\" x2=\"337.6740165706526\" y2=\"185.20814649720126\" stroke=\"rgb(71,71,71)\" stroke-opacity=\"1.0\" fill=\"none\" stroke-width=\"1.6500000000000001\">\n", " </line>\n", " <line x1=\"311.2473544042537\" y1=\"187.722466164526\" x2=\"311.2473544042537\" y2=\"185.20814649720126\" stroke=\"rgb(71,71,71)\" stroke-opacity=\"1.0\" fill=\"none\" stroke-width=\"1.6500000000000001\">\n", " </line>\n", " </g>\n", " <g>\n", " <line x1=\"402.27252408851655\" y1=\"188.90182080623498\" x2=\"455.12584842131434\" y2=\"188.90182080623498\" stroke=\"rgb(71,71,71)\" stroke-opacity=\"1.0\" fill=\"none\" stroke-width=\"1.6500000000000001\">\n", " </line>\n", " <line x1=\"402.27252408851655\" y1=\"185.55708643069727\" x2=\"455.12584842131434\" y2=\"185.55708643069727\" stroke=\"rgb(71,71,71)\" stroke-opacity=\"1.0\" fill=\"none\" stroke-width=\"1.6500000000000001\">\n", " </line>\n", " <line x1=\"428.6991862549155\" y1=\"188.90182080623498\" x2=\"428.6991862549155\" y2=\"185.55708643069727\" stroke=\"rgb(71,71,71)\" stroke-opacity=\"1.0\" fill=\"none\" stroke-width=\"1.6500000000000001\">\n", " </line>\n", " </g>\n", " </g>\n", " </g>\n", " </g>\n", " <defs>\n", " <clipPath id=\"cwYxOV8\">\n", " <rect x=\"58.95712304215423\" y=\"0.0\" width=\"505.04287695784575\" height=\"341.0\">\n", " </rect>\n", " </clipPath>\n", " </defs>\n", " <defs>\n", " <clipPath id=\"c66tVWx\">\n", " <rect x=\"58.95712304215423\" y=\"0.0\" width=\"505.04287695784575\" height=\"341.0\">\n", " </rect>\n", " </clipPath>\n", " </defs>\n", " </g>\n", " <g>\n", " <g transform=\"translate(58.95712304215423 341.0 ) \">\n", " <g transform=\"translate(76.34369070293016 0.0 ) \">\n", " <line stroke-width=\"1.0\" stroke=\"rgb(71,71,71)\" stroke-opacity=\"1.0\" x2=\"0.0\" y2=\"4.0\">\n", " </line>\n", " <g transform=\"translate(0.0 7.0 ) \">\n", " <text class=\"axis-text-x\" text-anchor=\"middle\" dy=\"0.7em\">\n", " <tspan>[1,1]</tspan>\n", " </text>\n", " </g>\n", " </g>\n", " <g transform=\"translate(193.79552255359192 0.0 ) \">\n", " <line stroke-width=\"1.0\" stroke=\"rgb(71,71,71)\" stroke-opacity=\"1.0\" x2=\"0.0\" y2=\"4.0\">\n", " </line>\n", " <g transform=\"translate(0.0 7.0 ) \">\n", " <text class=\"axis-text-x\" text-anchor=\"middle\" dy=\"0.7em\">\n", " <tspan>[1,2]</tspan>\n", " </text>\n", " </g>\n", " </g>\n", " <g transform=\"translate(311.2473544042537 0.0 ) \">\n", " <line stroke-width=\"1.0\" stroke=\"rgb(71,71,71)\" stroke-opacity=\"1.0\" x2=\"0.0\" y2=\"4.0\">\n", " </line>\n", " <g transform=\"translate(0.0 7.0 ) \">\n", " <text class=\"axis-text-x\" text-anchor=\"middle\" dy=\"0.7em\">\n", " <tspan>[2,1]</tspan>\n", " </text>\n", " </g>\n", " </g>\n", " <g transform=\"translate(428.6991862549155 0.0 ) \">\n", " <line stroke-width=\"1.0\" stroke=\"rgb(71,71,71)\" stroke-opacity=\"1.0\" x2=\"0.0\" y2=\"4.0\">\n", " </line>\n", " <g transform=\"translate(0.0 7.0 ) \">\n", " <text class=\"axis-text-x\" text-anchor=\"middle\" dy=\"0.7em\">\n", " <tspan>[2,2]</tspan>\n", " </text>\n", " </g>\n", " </g>\n", " <line x1=\"0.0\" y1=\"0.0\" x2=\"505.04287695784575\" y2=\"0.0\" stroke-width=\"1.0\" stroke=\"rgb(71,71,71)\" stroke-opacity=\"1.0\">\n", " </line>\n", " </g>\n", " <g transform=\"translate(58.95712304215423 0.0 ) \">\n", " <g transform=\"translate(0.0 341.0 ) \">\n", " <g transform=\"translate(-3.0 0.0 ) \">\n", " <text class=\"axis-text-y\" text-anchor=\"end\" dy=\"0.35em\">\n", " <tspan>0</tspan>\n", " </text>\n", " </g>\n", " </g>\n", " <g transform=\"translate(0.0 266.6199119468692 ) \">\n", " <g transform=\"translate(-3.0 0.0 ) \">\n", " <text class=\"axis-text-y\" text-anchor=\"end\" dy=\"0.35em\">\n", " <tspan>50,000</tspan>\n", " </text>\n", " </g>\n", " </g>\n", " <g transform=\"translate(0.0 192.2398238937384 ) \">\n", " <g transform=\"translate(-3.0 0.0 ) \">\n", " <text class=\"axis-text-y\" text-anchor=\"end\" dy=\"0.35em\">\n", " <tspan>100,000</tspan>\n", " </text>\n", " </g>\n", " </g>\n", " <g transform=\"translate(0.0 117.85973584060761 ) \">\n", " <g transform=\"translate(-3.0 0.0 ) \">\n", " <text class=\"axis-text-y\" text-anchor=\"end\" dy=\"0.35em\">\n", " <tspan>150,000</tspan>\n", " </text>\n", " </g>\n", " </g>\n", " <g transform=\"translate(0.0 43.47964778747678 ) \">\n", " <g transform=\"translate(-3.0 0.0 ) \">\n", " <text class=\"axis-text-y\" text-anchor=\"end\" dy=\"0.35em\">\n", " <tspan>200,000</tspan>\n", " </text>\n", " </g>\n", " </g>\n", " </g>\n", " </g>\n", " </g>\n", " <g transform=\"translate(16.0 177.0 ) rotate(-90.0 ) \">\n", " <text class=\"axis-title-y\" y=\"0.0\" text-anchor=\"middle\">\n", " <tspan>score</tspan>\n", " </text>\n", " </g>\n", " <g transform=\"translate(340.9785615210771 393.0 ) \">\n", " <text class=\"axis-title-x\" y=\"0.0\" text-anchor=\"middle\">\n", " <tspan>name</tspan>\n", " </text>\n", " </g>\n", " <path fill=\"rgb(0,0,0)\" fill-opacity=\"0.0\" stroke=\"rgb(71,71,71)\" stroke-opacity=\"1.0\" stroke-width=\"0.0\" d=\"M0.0 0.0 L0.0 400.0 L600.0 400.0 L600.0 0.0 Z\" pointer-events=\"none\">\n", " </path>\n", " </g>\n", " <g id=\"dNTwSRX\">\n", " </g>\n", "</svg>\n", " <script>document.getElementById(\"4b9253bf-3907-4cb4-a724-21d6b0513094\").style.display = \"none\";</script>" ], | |
| "application/plot+json" : { | |
| "output_type" : "lets_plot_spec", | |
| "output" : { | |
| "mapping" : { }, | |
| "data" : { | |
| "score" : [ 209712.17222125144, 217745.26734478574, 103881.76305918726, 103368.08573800913 ], | |
| "name" : [ "[1,1]", "[1,2]", "[2,1]", "[2,2]" ], | |
| "errorMax" : [ 215916.93730395014, 218312.39600706208, 104726.85471380076, 104492.28929271201 ], | |
| "errorMin" : [ 203507.40713855275, 217178.1386825094, 103036.67140457376, 102243.88218330625 ] | |
| }, | |
| "kind" : "plot", | |
| "scales" : [ { | |
| "aesthetic" : "y", | |
| "limits" : [ null, null ] | |
| }, { | |
| "aesthetic" : "x", | |
| "discrete" : true | |
| }, { | |
| "aesthetic" : "y", | |
| "limits" : [ null, null ] | |
| }, { | |
| "aesthetic" : "x", | |
| "discrete" : true | |
| } ], | |
| "layers" : [ { | |
| "mapping" : { | |
| "y" : "score", | |
| "x" : "name" | |
| }, | |
| "stat" : "identity", | |
| "sampling" : "none", | |
| "inherit_aes" : false, | |
| "position" : "dodge", | |
| "geom" : "bar" | |
| }, { | |
| "mapping" : { | |
| "y" : "score", | |
| "x" : "name", | |
| "ymin" : "errorMin", | |
| "ymax" : "errorMax" | |
| }, | |
| "stat" : "identity", | |
| "sampling" : "none", | |
| "inherit_aes" : false, | |
| "position" : "dodge", | |
| "geom" : "errorbar" | |
| } ], | |
| "data_meta" : { | |
| "series_annotations" : [ { | |
| "type" : "str", | |
| "column" : "name" | |
| }, { | |
| "type" : "float", | |
| "column" : "score" | |
| }, { | |
| "type" : "float", | |
| "column" : "errorMin" | |
| }, { | |
| "type" : "float", | |
| "column" : "errorMax" | |
| } ] | |
| } | |
| }, | |
| "apply_color_scheme" : true, | |
| "swing_enabled" : true | |
| } | |
| }, | |
| "execution_count" : 8, | |
| "metadata" : { }, | |
| "output_type" : "execute_result" | |
| } ], | |
| "execution_count" : 8 | |
| } ], | |
| "metadata" : { | |
| "kernelspec" : { | |
| "display_name" : "Kotlin", | |
| "language" : "kotlin", | |
| "name" : "kotlin" | |
| }, | |
| "language_info" : { | |
| "name" : "kotlin", | |
| "version" : "2.2.20", | |
| "mimetype" : "text/x-kotlin", | |
| "file_extension" : ".kt", | |
| "pygments_lexer" : "kotlin", | |
| "codemirror_mode" : "text/x-kotlin", | |
| "nbconvert_exporter" : "" | |
| } | |
| }, | |
| "nbformat" : 4, | |
| "nbformat_minor" : 0 | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment