Skip to content

Instantly share code, notes, and snippets.

@alexarchambault
Last active April 21, 2020 13:37
Show Gist options
  • Save alexarchambault/d8f2fe2314feef65a57325cbd5009c0b to your computer and use it in GitHub Desktop.
Save alexarchambault/d8f2fe2314feef65a57325cbd5009c0b to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## How to run the benchmark\n",
"\n",
"Get data for the latest release (\"before\"):\n",
"```bash\n",
"$ cs launch coursier -- resolve --checksum none org.apache.spark:spark-repl_2.12:2.4.4 -B -100 2>&1 | tee before\n",
"```\n",
"\n",
"Get data for the PR (\"after\")\n",
"```bash\n",
"$ sbt cli/pack # ensure #1677 is checked-out before that\n",
"$ modules/cli/target/pack/bin/coursier resolve --checksum none org.apache.spark:spark-repl_2.12:2.4.4 -B -100 2>&1 | tee after\n",
"```"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"\u001b[32mimport \u001b[39m\u001b[36mjava.nio.file._\n",
"\u001b[39m\n",
"\u001b[32mimport \u001b[39m\u001b[36mjava.nio.charset.StandardCharsets\n",
"\n",
"\u001b[39m\n",
"defined \u001b[32mfunction\u001b[39m \u001b[36mbefore\u001b[39m\n",
"defined \u001b[32mfunction\u001b[39m \u001b[36mafter\u001b[39m"
]
},
"execution_count": 1,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import java.nio.file._\n",
"import java.nio.charset.StandardCharsets\n",
"\n",
"private val drop = 20\n",
"\n",
"private def load(file: Path): Seq[Int] = {\n",
" val input = new String(Files.readAllBytes(file), StandardCharsets.UTF_8)\n",
" input\n",
" .linesIterator\n",
" .map(_.trim)\n",
" .filter(_.endsWith(\" ms\"))\n",
" .map(_.stripSuffix(\" ms\"))\n",
" .drop(drop)\n",
" .map(_.toInt)\n",
" .toVector\n",
"}\n",
"\n",
"private val dir = Paths.get(\"/Users/alexandre/projects/coursier\")\n",
"def before = load(dir.resolve(\"before\"))\n",
"def after = load(dir.resolve(\"after\"))"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
" <script type=\"text/javascript\">\n",
" require.config({\n",
" paths: {\n",
" d3: 'https://cdnjs.cloudflare.com/ajax/libs/d3/3.5.17/d3.min',\n",
" plotly: 'https://cdn.plot.ly/plotly-1.41.3.min',\n",
" jquery: 'https://code.jquery.com/jquery-3.3.1.min'\n",
" },\n",
"\n",
" shim: {\n",
" plotly: {\n",
" deps: ['d3', 'jquery'],\n",
" exports: 'plotly'\n",
" }\n",
" }\n",
"});\n",
" \n",
"\n",
" require(['plotly'], function(Plotly) {\n",
" window.Plotly = Plotly;\n",
" });\n",
" </script>\n",
" "
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"application/vnd.plotly.v1+json": {
"data": [
{
"name": "after",
"type": "box",
"x": [
468,
416,
438,
376,
460,
381,
373,
394,
429,
382,
401,
445,
365,
368,
354,
368,
387,
345,
379,
369,
361,
374,
371,
427,
347,
321,
322,
323,
324,
320,
321,
319,
342,
319,
319,
333,
401,
353,
366,
368,
365,
393,
353,
370,
374,
363,
349,
371,
356,
373,
362,
369,
381,
361,
371,
367,
359,
371,
347,
356,
385,
373,
351,
379,
344,
354,
371,
365,
357,
364,
373,
372,
359,
369,
368,
353,
365,
355,
364,
363,
350
]
},
{
"name": "before",
"type": "box",
"x": [
420,
414,
461,
399,
545,
393,
403,
331,
391,
399,
402,
374,
453,
379,
356,
327,
355,
362,
341,
348,
386,
339,
333,
353,
335,
367,
326,
339,
335,
338,
397,
380,
335,
336,
337,
347,
336,
341,
334,
336,
336,
392,
351,
353,
326,
340,
355,
323,
313,
305,
295,
299,
295,
301,
302,
306,
299,
287,
304,
305,
292,
301,
299,
335,
334,
310,
320,
353,
333,
333,
391,
325,
329,
354,
341,
328,
340,
344,
339,
332,
332
]
}
],
"layout": {
"autosize": true,
"xaxis": {
"autorange": true,
"range": [
272.6666666666667,
559.3333333333334
],
"type": "linear"
},
"yaxis": {
"autorange": true,
"range": [
-0.5,
1.5
],
"type": "category"
}
}
},
"image/png": "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",
"text/html": [
"<div class=\"chart\" id=\"plot-03663eb9-d354-4655-8438-e9097dbb32ef\"></div>\n",
"<script>require(['plotly'], function(Plotly) {\n",
" (function () {\n",
" var data0 = {\"x\":[468.0,416.0,438.0,376.0,460.0,381.0,373.0,394.0,429.0,382.0,401.0,445.0,365.0,368.0,354.0,368.0,387.0,345.0,379.0,369.0,361.0,374.0,371.0,427.0,347.0,321.0,322.0,323.0,324.0,320.0,321.0,319.0,342.0,319.0,319.0,333.0,401.0,353.0,366.0,368.0,365.0,393.0,353.0,370.0,374.0,363.0,349.0,371.0,356.0,373.0,362.0,369.0,381.0,361.0,371.0,367.0,359.0,371.0,347.0,356.0,385.0,373.0,351.0,379.0,344.0,354.0,371.0,365.0,357.0,364.0,373.0,372.0,359.0,369.0,368.0,353.0,365.0,355.0,364.0,363.0,350.0],\"name\":\"after\",\"type\":\"box\"};\n",
" var data1 = {\"x\":[420.0,414.0,461.0,399.0,545.0,393.0,403.0,331.0,391.0,399.0,402.0,374.0,453.0,379.0,356.0,327.0,355.0,362.0,341.0,348.0,386.0,339.0,333.0,353.0,335.0,367.0,326.0,339.0,335.0,338.0,397.0,380.0,335.0,336.0,337.0,347.0,336.0,341.0,334.0,336.0,336.0,392.0,351.0,353.0,326.0,340.0,355.0,323.0,313.0,305.0,295.0,299.0,295.0,301.0,302.0,306.0,299.0,287.0,304.0,305.0,292.0,301.0,299.0,335.0,334.0,310.0,320.0,353.0,333.0,333.0,391.0,325.0,329.0,354.0,341.0,328.0,340.0,344.0,339.0,332.0,332.0],\"name\":\"before\",\"type\":\"box\"};\n",
"\n",
" var data = [data0, data1];\n",
" var layout = {};\n",
"\n",
" Plotly.plot('plot-03663eb9-d354-4655-8438-e9097dbb32ef', data, layout);\n",
"})();\n",
"});\n",
" </script>\n",
" "
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"\u001b[32mimport \u001b[39m\u001b[36m$ivy.$ \n",
"\n",
"\u001b[39m\n",
"\u001b[32mimport \u001b[39m\u001b[36mplotly._\n",
"\u001b[39m\n",
"\u001b[32mimport \u001b[39m\u001b[36mplotly.element._\n",
"\u001b[39m\n",
"\u001b[32mimport \u001b[39m\u001b[36mplotly.layout._\n",
"\u001b[39m\n",
"\u001b[32mimport \u001b[39m\u001b[36mplotly.Almond._\n",
"\n",
"\u001b[39m"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import $ivy.`org.plotly-scala::plotly-almond:0.7.4`\n",
"\n",
"import plotly._\n",
"import plotly.element._\n",
"import plotly.layout._\n",
"import plotly.Almond._\n",
"\n",
"private def data = Seq(\n",
" Box(x = before, name = \"before\"),\n",
" Box(x = after, name = \"after\")\n",
")\n",
"\n",
"{ data.reverse.plot(); () }"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Scala",
"language": "scala",
"name": "scala"
},
"language_info": {
"codemirror_mode": "text/x-scala",
"file_extension": ".scala",
"mimetype": "text/x-scala",
"name": "scala",
"nbconvert_exporter": "script",
"version": "2.13.1"
}
},
"nbformat": 4,
"nbformat_minor": 4
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment