{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"id": "4730bc83-62e5-4223-bd19-ea615d6993b6",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
" \n",
" \n",
" "
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"import contextlib\n",
"import ctypes\n",
"import io\n",
"import numpy as np\n",
"import os\n",
"import pandas as pd\n",
"import re\n",
"import sys\n",
"import tempfile\n",
"from IPython.display import Image\n",
"from lets_plot import *\n",
"\n",
"LetsPlot.setup_html()\n",
"\n",
"variant = \"release\"\n",
"\n",
"MVG_EXPORT_DATA = []\n",
"\n",
"\n",
"# best-effort: flush all C stdio buffers\n",
"try:\n",
" _libc = ctypes.CDLL(None)\n",
" _fflush_all = lambda: _libc.fflush(None)\n",
"except Exception:\n",
" _fflush_all = lambda: None\n",
"\n",
"\n",
"def capture_c_output(fn, *args, **kwargs) -> str:\n",
" \"\"\"\n",
" Run fn(*args, **kwargs) and capture anything written to C stdout/stderr.\n",
" Returns a single string with stdout followed by stderr.\n",
" \"\"\"\n",
" # Flush Python and C buffers before swapping FDs\n",
" sys.stdout.flush(); sys.stderr.flush(); _fflush_all()\n",
"\n",
" # Duplicate current stdout/stderr FDs\n",
" old_out_fd = os.dup(1)\n",
" old_err_fd = os.dup(2)\n",
"\n",
" with tempfile.TemporaryFile() as tmp_out, tempfile.TemporaryFile() as tmp_err:\n",
" try:\n",
" # Redirect FD 1 and 2 to our temp files\n",
" os.dup2(tmp_out.fileno(), 1)\n",
" os.dup2(tmp_err.fileno(), 2)\n",
"\n",
" # Run the function (which may call into C)\n",
" fn(*args, **kwargs)\n",
"\n",
" # Flush again before restoring\n",
" sys.stdout.flush(); sys.stderr.flush(); _fflush_all()\n",
" finally:\n",
" # Restore original FDs\n",
" os.dup2(old_out_fd, 1)\n",
" os.dup2(old_err_fd, 2)\n",
" os.close(old_out_fd)\n",
" os.close(old_err_fd)\n",
"\n",
" # Read captured data\n",
" tmp_out.seek(0); tmp_err.seek(0)\n",
" out = tmp_out.read().decode(\"utf-8\", errors=\"replace\")\n",
" err = tmp_err.read().decode(\"utf-8\", errors=\"replace\")\n",
"\n",
" return out + err\n",
" \n",
"\n",
"def _parse_and_store_output(output_text, file_name, n, solid, scale, void):\n",
" \"\"\"\n",
" Helper function to parse output, including timestamps with minutes,\n",
" and append to the global data list.\n",
" \"\"\"\n",
" \n",
" \n",
" def to_seconds(time_str):\n",
" \"\"\"\n",
" Converts a complex time string (including minutes) into total seconds.\n",
" This version correctly prioritizes specific units like 'ms' over 'm'.\n",
" \"\"\"\n",
" if not time_str:\n",
" return None\n",
" time_str = time_str.strip()\n",
" \n",
" # --- Check for the most specific units FIRST ---\n",
" if 'ms' in time_str:\n",
" return float(time_str.replace('ms', '').strip()) / 1000\n",
" if 'us' in time_str:\n",
" return float(time_str.replace('us', '').strip()) / 1_000_000\n",
" if 'ns' in time_str:\n",
" return float(time_str.replace('ns', '').strip()) / 1_000_000_000\n",
" \n",
" # --- Now, check for the composite minute/second format ---\n",
" if 'm' in time_str:\n",
" total_seconds = 0\n",
" parts = time_str.split('m')\n",
" minutes = float(parts[0].strip())\n",
" total_seconds += minutes * 60\n",
" \n",
" # If there's a seconds part after 'm', add it\n",
" if len(parts) > 1 and parts[1].strip():\n",
" seconds_str = parts[1].replace('s', '').strip()\n",
" if seconds_str:\n",
" total_seconds += float(seconds_str)\n",
" return total_seconds\n",
" \n",
" # --- Finally, check for standalone seconds ---\n",
" if 's' in time_str:\n",
" return float(time_str.replace('s', '').strip())\n",
" \n",
" # Fallback for unitless numbers (should not happen with this log format)\n",
" try:\n",
" return float(time_str)\n",
" except ValueError:\n",
" return None\n",
" \n",
" \n",
" if 'ms' in time_str: return float(time_str.replace('ms', '')) / 1000\n",
" if 'us' in time_str: return float(time_str.replace('us', '')) / 1_000_000\n",
" if 'ns' in time_str: return float(time_str.replace('ns', '')) / 1_000_000_000\n",
" if 's' in time_str: return float(time_str.replace('s', ''))\n",
" \n",
" try:\n",
" return float(time_str)\n",
" except ValueError:\n",
" return None\n",
"\n",
" \n",
" map_pattern = re.compile(r\"(.+?): exportMvg\\(\\)\\: plot mapped to canvas\")\n",
" paint_pattern = re.compile(r\"(.+?): exportMvg\\(\\)\\: plot painted\")\n",
" snapshot_pattern = re.compile(r\"(.+?): exportMvg\\(\\)\\: snapshot taken\")\n",
" \n",
" map_match = map_pattern.search(output_text)\n",
" paint_match = paint_pattern.search(output_text)\n",
" snapshot_match = snapshot_pattern.search(output_text)\n",
"\n",
" mapping_time = to_seconds(map_match.group(1) if map_match else None)\n",
" paint_time = to_seconds(paint_match.group(1) if paint_match else None)\n",
" snapshot_time = to_seconds(snapshot_match.group(1) if snapshot_match else None)\n",
" \n",
" MVG_EXPORT_DATA.append({\n",
" \"file_name\": file_name,\n",
" \"n\": n,\n",
" \"solid\": solid,\n",
" \"scale\": scale,\n",
" \"void\": void,\n",
" \"mapping_time\": mapping_time,\n",
" \"paint_time\": paint_time - mapping_time,\n",
" \"snapshot_time\": snapshot_time - paint_time,\n",
" \"total_time\": snapshot_time\n",
" })\n",
" \n",
"\n",
"def save_mvg(ns, solid, scale, void=False):\n",
" \"\"\"\n",
" Saves plots and automatically captures and parses the ggsave output\n",
" by capturing both stdout and stderr.\n",
" \"\"\"\n",
"\n",
" # show demo plot\n",
" p_n(100, solid, void).show()\n",
" \n",
" i = 1\n",
" \n",
" for n in ns:\n",
" if solid:\n",
" name = \"solid_\" + str(n)\n",
" else:\n",
" name = \"stroked_\" + str(n)\n",
"\n",
" p = p_n(n, solid, void)\n",
"\n",
" file_name = f\"{name}@{scale}x.mvg\" if scale != 1 else f\"{name}.mvg\"\n",
"\n",
" captured_output = capture_c_output(ggsave, p, file_name, scale=scale)\n",
" \n",
" print(str(i) + \" of \" + str(len(ns)) + \" (n=\" + str(n) + \", solid=\" + str(solid) + \", void=\" + str(void) + \", scale=\" + str(scale) + \")\\n\" + captured_output)\n",
" \n",
" _parse_and_store_output(captured_output, file_name, n, solid, scale, void)\n",
" i = i + 1\n",
"\n",
"def p_n(n, solid, void):\n",
" np.random.seed(42)\n",
" \n",
" x = np.random.uniform(size=n)\n",
" y = np.random.uniform(size=n)\n",
" v = np.random.normal(size=n)\n",
" \n",
" p = ggplot({'x': x, 'y': y, 'v': v}, aes('x', 'y', fill='x'))\n",
" \n",
" if void:\n",
" theme = theme_void()\n",
" show_legend = False\n",
" else:\n",
" theme = geom_blank()\n",
" show_legend = True\n",
"\n",
" if solid:\n",
" l = geom_point(show_legend=show_legend)\n",
" else:\n",
" l = geom_point(shape=1, show_legend=show_legend)\n",
"\n",
" return p + l + theme\n",
"\n"
]
},
{
"cell_type": "markdown",
"id": "5ce5c772-ddb8-4011-9b2b-a9e887520d64",
"metadata": {},
"source": [
"# Solid"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "f3497a12-bb65-4b22-ad34-823369bd7636",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
" "
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"1 of 5 (n=1000, solid=True, void=False, scale=1)\n",
"0s: exportMvg(): plotSpec parsed\n",
"521.833us: exportMvg(): exportParameters(dpi=96.0, scaleFactor=1.0, sizingPolicy=SizingPolicy(widthMode=FIXED, heightMode=FIXED, width=null, height=null))\n",
"13.296250ms: exportMvg(): plotCanvasFigure built, size=(600, 400)\n",
"151.704875ms: exportMvg(): plot mapped to canvas\n",
"152.365042ms: exportMvg(): canvas size: (600, 400), pixelDensity=1.0\n",
"156.480833ms: exportMvg(): plot painted\n",
"290.737542ms: exportMvg(): snapshot taken\n",
"294.542167ms: exportMvg(): bitmap extracted\n",
"295.902083ms: exportMvg(): MVG extracted, length=123494\n",
"296.227333ms: exportMvg(): resources disposed\n",
"\n",
"2 of 5 (n=5000, solid=True, void=False, scale=1)\n",
"208ns: exportMvg(): plotSpec parsed\n",
"60.875us: exportMvg(): exportParameters(dpi=96.0, scaleFactor=1.0, sizingPolicy=SizingPolicy(widthMode=FIXED, heightMode=FIXED, width=null, height=null))\n",
"22.710958ms: exportMvg(): plotCanvasFigure built, size=(600, 400)\n",
"339.750458ms: exportMvg(): plot mapped to canvas\n",
"340.359250ms: exportMvg(): canvas size: (600, 400), pixelDensity=1.0\n",
"360.405291ms: exportMvg(): plot painted\n",
"573.116958ms: exportMvg(): snapshot taken\n",
"576.791666ms: exportMvg(): bitmap extracted\n",
"581.003041ms: exportMvg(): MVG extracted, length=562493\n",
"581.226500ms: exportMvg(): resources disposed\n",
"\n",
"3 of 5 (n=10000, solid=True, void=False, scale=1)\n",
"250ns: exportMvg(): plotSpec parsed\n",
"49.875us: exportMvg(): exportParameters(dpi=96.0, scaleFactor=1.0, sizingPolicy=SizingPolicy(widthMode=FIXED, heightMode=FIXED, width=null, height=null))\n",
"43.872875ms: exportMvg(): plotCanvasFigure built, size=(600, 400)\n",
"610.093625ms: exportMvg(): plot mapped to canvas\n",
"610.728333ms: exportMvg(): canvas size: (600, 400), pixelDensity=1.0\n",
"662.805916ms: exportMvg(): plot painted\n",
"984.507125ms: exportMvg(): snapshot taken\n",
"988.148ms: exportMvg(): bitmap extracted\n",
"996.173541ms: exportMvg(): MVG extracted, length=1110822\n",
"996.544958ms: exportMvg(): resources disposed\n",
"\n",
"4 of 5 (n=20000, solid=True, void=False, scale=1)\n",
"41ns: exportMvg(): plotSpec parsed\n",
"77.625us: exportMvg(): exportParameters(dpi=96.0, scaleFactor=1.0, sizingPolicy=SizingPolicy(widthMode=FIXED, heightMode=FIXED, width=null, height=null))\n",
"93.194541ms: exportMvg(): plotCanvasFigure built, size=(600, 400)\n",
"1.281383708s: exportMvg(): plot mapped to canvas\n",
"1.281957166s: exportMvg(): canvas size: (600, 400), pixelDensity=1.0\n",
"1.361364375s: exportMvg(): plot painted\n",
"1.938448250s: exportMvg(): snapshot taken\n",
"1.942208250s: exportMvg(): bitmap extracted\n",
"1.958994041s: exportMvg(): MVG extracted, length=2206404\n",
"1.961260458s: exportMvg(): resources disposed\n",
"\n",
"5 of 5 (n=50000, solid=True, void=False, scale=1)\n",
"333ns: exportMvg(): plotSpec parsed\n",
"67.833us: exportMvg(): exportParameters(dpi=96.0, scaleFactor=1.0, sizingPolicy=SizingPolicy(widthMode=FIXED, heightMode=FIXED, width=null, height=null))\n",
"802.818083ms: exportMvg(): plotCanvasFigure built, size=(600, 400)\n",
"5.310952208s: exportMvg(): plot mapped to canvas\n",
"5.313709625s: exportMvg(): canvas size: (600, 400), pixelDensity=1.0\n",
"5.526666250s: exportMvg(): plot painted\n",
"7.047491208s: exportMvg(): snapshot taken\n",
"7.051464s: exportMvg(): bitmap extracted\n",
"7.095691125s: exportMvg(): MVG extracted, length=5495800\n",
"7.097929250s: exportMvg(): resources disposed\n",
"\n"
]
}
],
"source": [
"save_mvg([1000, 5000, 10_000, 20_000, 50_000], solid=True, scale=1)"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "dd9bf1af-0638-4048-b1fe-3a7776c720e4",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
" "
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"1 of 5 (n=1000, solid=True, void=False, scale=2)\n",
"125ns: exportMvg(): plotSpec parsed\n",
"53.458us: exportMvg(): exportParameters(dpi=96.0, scaleFactor=2.0, sizingPolicy=SizingPolicy(widthMode=FIXED, heightMode=FIXED, width=null, height=null))\n",
"13.230625ms: exportMvg(): plotCanvasFigure built, size=(600, 400)\n",
"204.641167ms: exportMvg(): plot mapped to canvas\n",
"206.909292ms: exportMvg(): canvas size: (600, 400), pixelDensity=2.0\n",
"211.248667ms: exportMvg(): plot painted\n",
"524.073583ms: exportMvg(): snapshot taken\n",
"558.849333ms: exportMvg(): bitmap extracted\n",
"564.902333ms: exportMvg(): MVG extracted, length=123494\n",
"565.559333ms: exportMvg(): resources disposed\n",
"\n",
"2 of 5 (n=5000, solid=True, void=False, scale=2)\n",
"167ns: exportMvg(): plotSpec parsed\n",
"81.042us: exportMvg(): exportParameters(dpi=96.0, scaleFactor=2.0, sizingPolicy=SizingPolicy(widthMode=FIXED, heightMode=FIXED, width=null, height=null))\n",
"22.629ms: exportMvg(): plotCanvasFigure built, size=(600, 400)\n",
"348.808417ms: exportMvg(): plot mapped to canvas\n",
"350.838125ms: exportMvg(): canvas size: (600, 400), pixelDensity=2.0\n",
"373.865959ms: exportMvg(): plot painted\n",
"871.862167ms: exportMvg(): snapshot taken\n",
"887.376500ms: exportMvg(): bitmap extracted\n",
"892.400750ms: exportMvg(): MVG extracted, length=562495\n",
"892.695334ms: exportMvg(): resources disposed\n",
"\n",
"3 of 5 (n=10000, solid=True, void=False, scale=2)\n",
"209ns: exportMvg(): plotSpec parsed\n",
"73.125us: exportMvg(): exportParameters(dpi=96.0, scaleFactor=2.0, sizingPolicy=SizingPolicy(widthMode=FIXED, heightMode=FIXED, width=null, height=null))\n",
"45.167334ms: exportMvg(): plotCanvasFigure built, size=(600, 400)\n",
"692.640042ms: exportMvg(): plot mapped to canvas\n",
"696.254459ms: exportMvg(): canvas size: (600, 400), pixelDensity=2.0\n",
"760.028167ms: exportMvg(): plot painted\n",
"1.479292417s: exportMvg(): snapshot taken\n",
"1.495355459s: exportMvg(): bitmap extracted\n",
"1.503527792s: exportMvg(): MVG extracted, length=1110820\n",
"1.504090500s: exportMvg(): resources disposed\n",
"\n",
"4 of 5 (n=20000, solid=True, void=False, scale=2)\n",
"41ns: exportMvg(): plotSpec parsed\n",
"67.541us: exportMvg(): exportParameters(dpi=96.0, scaleFactor=2.0, sizingPolicy=SizingPolicy(widthMode=FIXED, heightMode=FIXED, width=null, height=null))\n",
"93.382291ms: exportMvg(): plotCanvasFigure built, size=(600, 400)\n",
"1.259610416s: exportMvg(): plot mapped to canvas\n",
"1.262181666s: exportMvg(): canvas size: (600, 400), pixelDensity=2.0\n",
"1.349311500s: exportMvg(): plot painted\n",
"2.599702541s: exportMvg(): snapshot taken\n",
"2.614853500s: exportMvg(): bitmap extracted\n",
"2.631417458s: exportMvg(): MVG extracted, length=2206406\n",
"2.632439083s: exportMvg(): resources disposed\n",
"\n",
"5 of 5 (n=50000, solid=True, void=False, scale=2)\n",
"250ns: exportMvg(): plotSpec parsed\n",
"111.292us: exportMvg(): exportParameters(dpi=96.0, scaleFactor=2.0, sizingPolicy=SizingPolicy(widthMode=FIXED, heightMode=FIXED, width=null, height=null))\n",
"230.238584ms: exportMvg(): plotCanvasFigure built, size=(600, 400)\n",
"3.235150792s: exportMvg(): plot mapped to canvas\n",
"3.237281375s: exportMvg(): canvas size: (600, 400), pixelDensity=2.0\n",
"3.443972167s: exportMvg(): plot painted\n",
"6.773627542s: exportMvg(): snapshot taken\n",
"6.790757709s: exportMvg(): bitmap extracted\n",
"6.840090834s: exportMvg(): MVG extracted, length=5495800\n",
"6.842326167s: exportMvg(): resources disposed\n",
"\n"
]
}
],
"source": [
"save_mvg([1000, 5000, 10_000, 20_000, 50_000], solid=True, scale=2)"
]
},
{
"cell_type": "markdown",
"id": "ff0ffd6b-4f2b-4f87-bd43-1e914a5744aa",
"metadata": {},
"source": [
"# Stroked"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "50718e4c-5335-4c94-9008-ca7f10713065",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
" "
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"1 of 5 (n=1000, solid=False, void=False, scale=1)\n",
"250ns: exportMvg(): plotSpec parsed\n",
"89.083us: exportMvg(): exportParameters(dpi=96.0, scaleFactor=1.0, sizingPolicy=SizingPolicy(widthMode=FIXED, heightMode=FIXED, width=null, height=null))\n",
"30.318791ms: exportMvg(): plotCanvasFigure built, size=(600, 400)\n",
"489.949750ms: exportMvg(): plot mapped to canvas\n",
"490.565ms: exportMvg(): canvas size: (600, 400), pixelDensity=1.0\n",
"518.203375ms: exportMvg(): plot painted\n",
"657.718416ms: exportMvg(): snapshot taken\n",
"666.083208ms: exportMvg(): bitmap extracted\n",
"672.138541ms: exportMvg(): MVG extracted, length=201285\n",
"672.435166ms: exportMvg(): resources disposed\n",
"\n",
"2 of 5 (n=5000, solid=False, void=False, scale=1)\n",
"83ns: exportMvg(): plotSpec parsed\n",
"74.5us: exportMvg(): exportParameters(dpi=96.0, scaleFactor=1.0, sizingPolicy=SizingPolicy(widthMode=FIXED, heightMode=FIXED, width=null, height=null))\n",
"33.366458ms: exportMvg(): plotCanvasFigure built, size=(600, 400)\n",
"401.640208ms: exportMvg(): plot mapped to canvas\n",
"402.380375ms: exportMvg(): canvas size: (600, 400), pixelDensity=1.0\n",
"435.786833ms: exportMvg(): plot painted\n",
"753.048542ms: exportMvg(): snapshot taken\n",
"757.01ms: exportMvg(): bitmap extracted\n",
"764.667875ms: exportMvg(): MVG extracted, length=951649\n",
"765.469292ms: exportMvg(): resources disposed\n",
"\n",
"3 of 5 (n=10000, solid=False, void=False, scale=1)\n",
"250ns: exportMvg(): plotSpec parsed\n",
"87.875us: exportMvg(): exportParameters(dpi=96.0, scaleFactor=1.0, sizingPolicy=SizingPolicy(widthMode=FIXED, heightMode=FIXED, width=null, height=null))\n",
"44.163708ms: exportMvg(): plotCanvasFigure built, size=(600, 400)\n",
"709.910583ms: exportMvg(): plot mapped to canvas\n",
"710.514ms: exportMvg(): canvas size: (600, 400), pixelDensity=1.0\n",
"809.035541ms: exportMvg(): plot painted\n",
"1.435448500s: exportMvg(): snapshot taken\n",
"1.439370375s: exportMvg(): bitmap extracted\n",
"1.454707416s: exportMvg(): MVG extracted, length=1889111\n",
"1.455353416s: exportMvg(): resources disposed\n",
"\n",
"4 of 5 (n=20000, solid=False, void=False, scale=1)\n",
"84ns: exportMvg(): plotSpec parsed\n",
"73.417us: exportMvg(): exportParameters(dpi=96.0, scaleFactor=1.0, sizingPolicy=SizingPolicy(widthMode=FIXED, heightMode=FIXED, width=null, height=null))\n",
"110.986375ms: exportMvg(): plotCanvasFigure built, size=(600, 400)\n",
"1.334035167s: exportMvg(): plot mapped to canvas\n",
"1.334754834s: exportMvg(): canvas size: (600, 400), pixelDensity=1.0\n",
"1.498602750s: exportMvg(): plot painted\n",
"2.481634584s: exportMvg(): snapshot taken\n",
"2.485502584s: exportMvg(): bitmap extracted\n",
"2.514975167s: exportMvg(): MVG extracted, length=3762798\n",
"2.516456459s: exportMvg(): resources disposed\n",
"\n",
"5 of 5 (n=50000, solid=False, void=False, scale=1)\n",
"42ns: exportMvg(): plotSpec parsed\n",
"71.417us: exportMvg(): exportParameters(dpi=96.0, scaleFactor=1.0, sizingPolicy=SizingPolicy(widthMode=FIXED, heightMode=FIXED, width=null, height=null))\n",
"1.197814500s: exportMvg(): plotCanvasFigure built, size=(600, 400)\n",
"4.460475084s: exportMvg(): plot mapped to canvas\n",
"4.461300s: exportMvg(): canvas size: (600, 400), pixelDensity=1.0\n",
"4.814341542s: exportMvg(): plot painted\n",
"7.199791250s: exportMvg(): snapshot taken\n",
"7.204037584s: exportMvg(): bitmap extracted\n",
"7.292499084s: exportMvg(): MVG extracted, length=9387029\n",
"7.293668209s: exportMvg(): resources disposed\n",
"\n"
]
}
],
"source": [
"save_mvg([1000, 5000, 10_000, 20_000, 50_000], solid=False, scale=1)"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "a66a566c-5cee-4695-a34e-270c4317ec9e",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
" "
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"1 of 10 (n=1000, solid=False, void=False, scale=2)\n",
"334ns: exportMvg(): plotSpec parsed\n",
"204.459us: exportMvg(): exportParameters(dpi=96.0, scaleFactor=2.0, sizingPolicy=SizingPolicy(widthMode=FIXED, heightMode=FIXED, width=null, height=null))\n",
"31.818167ms: exportMvg(): plotCanvasFigure built, size=(600, 400)\n",
"229.399167ms: exportMvg(): plot mapped to canvas\n",
"232.651084ms: exportMvg(): canvas size: (600, 400), pixelDensity=2.0\n",
"240.953834ms: exportMvg(): plot painted\n",
"604.786292ms: exportMvg(): snapshot taken\n",
"620.824542ms: exportMvg(): bitmap extracted\n",
"622.594542ms: exportMvg(): MVG extracted, length=201285\n",
"622.928625ms: exportMvg(): resources disposed\n",
"\n",
"2 of 10 (n=2000, solid=False, void=False, scale=2)\n",
"83ns: exportMvg(): plotSpec parsed\n",
"67.458us: exportMvg(): exportParameters(dpi=96.0, scaleFactor=2.0, sizingPolicy=SizingPolicy(widthMode=FIXED, heightMode=FIXED, width=null, height=null))\n",
"26.105333ms: exportMvg(): plotCanvasFigure built, size=(600, 400)\n",
"277.926250ms: exportMvg(): plot mapped to canvas\n",
"279.960875ms: exportMvg(): canvas size: (600, 400), pixelDensity=2.0\n",
"291.815208ms: exportMvg(): plot painted\n",
"772.110208ms: exportMvg(): snapshot taken\n",
"806.130750ms: exportMvg(): bitmap extracted\n",
"817.168750ms: exportMvg(): MVG extracted, length=389161\n",
"817.583458ms: exportMvg(): resources disposed\n",
"\n",
"3 of 10 (n=3000, solid=False, void=False, scale=2)\n",
"42ns: exportMvg(): plotSpec parsed\n",
"50.334us: exportMvg(): exportParameters(dpi=96.0, scaleFactor=2.0, sizingPolicy=SizingPolicy(widthMode=FIXED, heightMode=FIXED, width=null, height=null))\n",
"13.221334ms: exportMvg(): plotCanvasFigure built, size=(600, 400)\n",
"217.000042ms: exportMvg(): plot mapped to canvas\n",
"218.933167ms: exportMvg(): canvas size: (600, 400), pixelDensity=2.0\n",
"236.411209ms: exportMvg(): plot painted\n",
"849.730042ms: exportMvg(): snapshot taken\n",
"864.533292ms: exportMvg(): bitmap extracted\n",
"868.869834ms: exportMvg(): MVG extracted, length=576927\n",
"869.196417ms: exportMvg(): resources disposed\n",
"\n",
"4 of 10 (n=4000, solid=False, void=False, scale=2)\n",
"84ns: exportMvg(): plotSpec parsed\n",
"46.834us: exportMvg(): exportParameters(dpi=96.0, scaleFactor=2.0, sizingPolicy=SizingPolicy(widthMode=FIXED, heightMode=FIXED, width=null, height=null))\n",
"17.854875ms: exportMvg(): plotCanvasFigure built, size=(600, 400)\n",
"338.693084ms: exportMvg(): plot mapped to canvas\n",
"341.081709ms: exportMvg(): canvas size: (600, 400), pixelDensity=2.0\n",
"377.691959ms: exportMvg(): plot painted\n",
"1.263547250s: exportMvg(): snapshot taken\n",
"1.278656834s: exportMvg(): bitmap extracted\n",
"1.284530250s: exportMvg(): MVG extracted, length=763796\n",
"1.284984084s: exportMvg(): resources disposed\n",
"\n",
"5 of 10 (n=5000, solid=False, void=False, scale=2)\n",
"83ns: exportMvg(): plotSpec parsed\n",
"285.042us: exportMvg(): exportParameters(dpi=96.0, scaleFactor=2.0, sizingPolicy=SizingPolicy(widthMode=FIXED, heightMode=FIXED, width=null, height=null))\n",
"32.235708ms: exportMvg(): plotCanvasFigure built, size=(600, 400)\n",
"360.525125ms: exportMvg(): plot mapped to canvas\n",
"363.733042ms: exportMvg(): canvas size: (600, 400), pixelDensity=2.0\n",
"393.532375ms: exportMvg(): plot painted\n",
"1.544002750s: exportMvg(): snapshot taken\n",
"1.559382792s: exportMvg(): bitmap extracted\n",
"1.566904375s: exportMvg(): MVG extracted, length=951649\n",
"1.567367167s: exportMvg(): resources disposed\n",
"\n",
"6 of 10 (n=6000, solid=False, void=False, scale=2)\n",
"83ns: exportMvg(): plotSpec parsed\n",
"65.875us: exportMvg(): exportParameters(dpi=96.0, scaleFactor=2.0, sizingPolicy=SizingPolicy(widthMode=FIXED, heightMode=FIXED, width=null, height=null))\n",
"35.748875ms: exportMvg(): plotCanvasFigure built, size=(600, 400)\n",
"434.267833ms: exportMvg(): plot mapped to canvas\n",
"436.398625ms: exportMvg(): canvas size: (600, 400), pixelDensity=2.0\n",
"475.102375ms: exportMvg(): plot painted\n",
"1.801664416s: exportMvg(): snapshot taken\n",
"1.816822208s: exportMvg(): bitmap extracted\n",
"1.827002333s: exportMvg(): MVG extracted, length=1139472\n",
"1.827378291s: exportMvg(): resources disposed\n",
"\n",
"7 of 10 (n=7000, solid=False, void=False, scale=2)\n",
"167ns: exportMvg(): plotSpec parsed\n",
"85.667us: exportMvg(): exportParameters(dpi=96.0, scaleFactor=2.0, sizingPolicy=SizingPolicy(widthMode=FIXED, heightMode=FIXED, width=null, height=null))\n",
"35.387042ms: exportMvg(): plotCanvasFigure built, size=(600, 400)\n",
"497.958625ms: exportMvg(): plot mapped to canvas\n",
"499.813250ms: exportMvg(): canvas size: (600, 400), pixelDensity=2.0\n",
"545.966792ms: exportMvg(): plot painted\n",
"2.236404667s: exportMvg(): snapshot taken\n",
"2.251214375s: exportMvg(): bitmap extracted\n",
"2.261219083s: exportMvg(): MVG extracted, length=1326863\n",
"2.261549542s: exportMvg(): resources disposed\n",
"\n",
"8 of 10 (n=8000, solid=False, void=False, scale=2)\n",
"209ns: exportMvg(): plotSpec parsed\n",
"56.584us: exportMvg(): exportParameters(dpi=96.0, scaleFactor=2.0, sizingPolicy=SizingPolicy(widthMode=FIXED, heightMode=FIXED, width=null, height=null))\n",
"36.382834ms: exportMvg(): plotCanvasFigure built, size=(600, 400)\n",
"515.741625ms: exportMvg(): plot mapped to canvas\n",
"518.565042ms: exportMvg(): canvas size: (600, 400), pixelDensity=2.0\n",
"600.561834ms: exportMvg(): plot painted\n",
"2.573277959s: exportMvg(): snapshot taken\n",
"2.588211667s: exportMvg(): bitmap extracted\n",
"2.599533667s: exportMvg(): MVG extracted, length=1514031\n",
"2.600167625s: exportMvg(): resources disposed\n",
"\n",
"9 of 10 (n=9000, solid=False, void=False, scale=2)\n",
"41ns: exportMvg(): plotSpec parsed\n",
"64.291us: exportMvg(): exportParameters(dpi=96.0, scaleFactor=2.0, sizingPolicy=SizingPolicy(widthMode=FIXED, heightMode=FIXED, width=null, height=null))\n",
"42.644833ms: exportMvg(): plotCanvasFigure built, size=(600, 400)\n",
"571.640083ms: exportMvg(): plot mapped to canvas\n",
"573.803958ms: exportMvg(): canvas size: (600, 400), pixelDensity=2.0\n",
"645.477291ms: exportMvg(): plot painted\n",
"5.973600875s: exportMvg(): snapshot taken\n",
"5.988748083s: exportMvg(): bitmap extracted\n",
"6.001935875s: exportMvg(): MVG extracted, length=1701529\n",
"6.002541916s: exportMvg(): resources disposed\n",
"\n",
"10 of 10 (n=10000, solid=False, void=False, scale=2)\n",
"208ns: exportMvg(): plotSpec parsed\n",
"84.542us: exportMvg(): exportParameters(dpi=96.0, scaleFactor=2.0, sizingPolicy=SizingPolicy(widthMode=FIXED, heightMode=FIXED, width=null, height=null))\n",
"75.169542ms: exportMvg(): plotCanvasFigure built, size=(600, 400)\n",
"704.192500ms: exportMvg(): plot mapped to canvas\n",
"706.234167ms: exportMvg(): canvas size: (600, 400), pixelDensity=2.0\n",
"770.193542ms: exportMvg(): plot painted\n",
"5.115618750s: exportMvg(): snapshot taken\n",
"5.130567792s: exportMvg(): bitmap extracted\n",
"5.164952458s: exportMvg(): MVG extracted, length=1889109\n",
"5.166579375s: exportMvg(): resources disposed\n",
"\n"
]
}
],
"source": [
"save_mvg([1000, 2000, 3000, 4000, 5000, 6000, 7000, 8000, 9000, 10_000], solid=False, scale=2)"
]
},
{
"cell_type": "markdown",
"id": "ebb611fa-258e-464c-9e00-0f33b58b1799",
"metadata": {},
"source": [
"# Summary"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "7dbc1fc0-3e22-4178-8a25-6d4952c1305b",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"--- Extracted Data ---\n",
" file_name n solid scale void mapping_time \\\n",
"0 solid_1000.mvg 1000 True 1 False 0.151705 \n",
"1 solid_5000.mvg 5000 True 1 False 0.339750 \n",
"2 solid_10000.mvg 10000 True 1 False 0.610094 \n",
"3 solid_20000.mvg 20000 True 1 False 1.281384 \n",
"4 solid_50000.mvg 50000 True 1 False 5.310952 \n",
"5 solid_1000@2x.mvg 1000 True 2 False 0.204641 \n",
"6 solid_5000@2x.mvg 5000 True 2 False 0.348808 \n",
"7 solid_10000@2x.mvg 10000 True 2 False 0.692640 \n",
"8 solid_20000@2x.mvg 20000 True 2 False 1.259610 \n",
"9 solid_50000@2x.mvg 50000 True 2 False 3.235151 \n",
"10 stroked_1000.mvg 1000 False 1 False 0.489950 \n",
"11 stroked_5000.mvg 5000 False 1 False 0.401640 \n",
"12 stroked_10000.mvg 10000 False 1 False 0.709911 \n",
"13 stroked_20000.mvg 20000 False 1 False 1.334035 \n",
"14 stroked_50000.mvg 50000 False 1 False 4.460475 \n",
"15 stroked_1000@2x.mvg 1000 False 2 False 0.229399 \n",
"16 stroked_2000@2x.mvg 2000 False 2 False 0.277926 \n",
"17 stroked_3000@2x.mvg 3000 False 2 False 0.217000 \n",
"18 stroked_4000@2x.mvg 4000 False 2 False 0.338693 \n",
"19 stroked_5000@2x.mvg 5000 False 2 False 0.360525 \n",
"20 stroked_6000@2x.mvg 6000 False 2 False 0.434268 \n",
"21 stroked_7000@2x.mvg 7000 False 2 False 0.497959 \n",
"22 stroked_8000@2x.mvg 8000 False 2 False 0.515742 \n",
"23 stroked_9000@2x.mvg 9000 False 2 False 0.571640 \n",
"24 stroked_10000@2x.mvg 10000 False 2 False 0.704192 \n",
"\n",
" paint_time snapshot_time total_time \n",
"0 0.004776 0.134257 0.290738 \n",
"1 0.020655 0.212712 0.573117 \n",
"2 0.052712 0.321701 0.984507 \n",
"3 0.079981 0.577084 1.938448 \n",
"4 0.215714 1.520825 7.047491 \n",
"5 0.006608 0.312825 0.524074 \n",
"6 0.025058 0.497996 0.871862 \n",
"7 0.067388 0.719264 1.479292 \n",
"8 0.089701 1.250391 2.599703 \n",
"9 0.208821 3.329655 6.773628 \n",
"10 0.028254 0.139515 0.657718 \n",
"11 0.034147 0.317262 0.753049 \n",
"12 0.099125 0.626413 1.435448 \n",
"13 0.164568 0.983032 2.481635 \n",
"14 0.353866 2.385450 7.199791 \n",
"15 0.011555 0.363832 0.604786 \n",
"16 0.013889 0.480295 0.772110 \n",
"17 0.019411 0.613319 0.849730 \n",
"18 0.038999 0.885855 1.263547 \n",
"19 0.033007 1.150470 1.544003 \n",
"20 0.040835 1.326562 1.801664 \n",
"21 0.048008 1.690438 2.236405 \n",
"22 0.084820 1.972716 2.573278 \n",
"23 0.073837 5.328124 5.973601 \n",
"24 0.066001 4.345425 5.115619 \n"
]
}
],
"source": [
"# 3. Convert the global data list to a pandas DataFrame\n",
"results_df = pd.DataFrame(MVG_EXPORT_DATA)\n",
"\n",
"# 4. Display the DataFrame\n",
"print(\"\\n--- Extracted Data ---\")\n",
"print(results_df)"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "579ac7bd-cf35-4c83-8ba7-63a86540c635",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"
\n",
"
\n",
"
\n",
" Copy Spec\n",
" \n",
"
\n",
"
\n",
" \n",
" \n",
" \n",
" "
],
"text/plain": [
"
"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ggplot(results_df, aes(x='n', y='snapshot_time', color='solid')) + geom_line() + geom_point(tooltips='none') + facet_grid(x='scale')"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "d37f24fa-18eb-4184-b03d-dc9617da6076",
"metadata": {},
"outputs": [],
"source": [
"results_df.to_csv(\"variant_release.csv\", index=False)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "f671750f-794e-487a-89c7-6e92ae06e223",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.12.2"
}
},
"nbformat": 4,
"nbformat_minor": 5
}
1 of 5 (n=1000, solid=True, void=False, scale=1)
73ns: exportMvg(): plotSpec parsed
21.239us: exportMvg(): exportParameters(dpi=96.0, scaleFactor=1.0, sizingPolicy=SizingPolicy(widthMode=FIXED, heightMode=FIXED, width=null, height=null))
6.862766ms: exportMvg(): plotCanvasFigure built, size=(600, 400)
80.095175ms: exportMvg(): plot mapped to canvas
81.084073ms: exportMvg(): canvas size: (600, 400), pixelDensity=1.0
92.989576ms: exportMvg(): plot painted
168.949128ms: exportMvg(): snapshot taken
173.132419ms: exportMvg(): bitmap extracted
175.868310ms: exportMvg(): MVG extracted, length=662048
176.369881ms: exportMvg(): resources disposed
2 of 5 (n=5000, solid=True, void=False, scale=1)
63ns: exportMvg(): plotSpec parsed
19.385us: exportMvg(): exportParameters(dpi=96.0, scaleFactor=1.0, sizingPolicy=SizingPolicy(widthMode=FIXED, heightMode=FIXED, width=null, height=null))
19.054648ms: exportMvg(): plotCanvasFigure built, size=(600, 400)
259.552380ms: exportMvg(): plot mapped to canvas
260.016536ms: exportMvg(): canvas size: (600, 400), pixelDensity=1.0
320.938712ms: exportMvg(): plot painted
502.324973ms: exportMvg(): snapshot taken
506.902832ms: exportMvg(): bitmap extracted
526.692714ms: exportMvg(): MVG extracted, length=3257379
526.809149ms: exportMvg(): resources disposed
3 of 5 (n=10000, solid=True, void=False, scale=1)
389ns: exportMvg(): plotSpec parsed
19.658us: exportMvg(): exportParameters(dpi=96.0, scaleFactor=1.0, sizingPolicy=SizingPolicy(widthMode=FIXED, heightMode=FIXED, width=null, height=null))
39.325205ms: exportMvg(): plotCanvasFigure built, size=(600, 400)
541.640615ms: exportMvg(): plot mapped to canvas
541.964244ms: exportMvg(): canvas size: (600, 400), pixelDensity=1.0
679.753415ms: exportMvg(): plot painted
1.213942511s: exportMvg(): snapshot taken
1.218014894s: exportMvg(): bitmap extracted
1.259075868s: exportMvg(): MVG extracted, length=6500086
1.259798855s: exportMvg(): resources disposed
4 of 5 (n=20000, solid=True, void=False, scale=1)
291ns: exportMvg(): plotSpec parsed
23.028us: exportMvg(): exportParameters(dpi=96.0, scaleFactor=1.0, sizingPolicy=SizingPolicy(widthMode=FIXED, heightMode=FIXED, width=null, height=null))
73.898468ms: exportMvg(): plotCanvasFigure built, size=(600, 400)
1.062872158s: exportMvg(): plot mapped to canvas
1.063196545s: exportMvg(): canvas size: (600, 400), pixelDensity=1.0
1.374829421s: exportMvg(): plot painted
2.720174764s: exportMvg(): snapshot taken
2.724226208s: exportMvg(): bitmap extracted
2.816952546s: exportMvg(): MVG extracted, length=12985678
2.817384432s: exportMvg(): resources disposed
5 of 5 (n=50000, solid=True, void=False, scale=1)
241ns: exportMvg(): plotSpec parsed
28.639us: exportMvg(): exportParameters(dpi=96.0, scaleFactor=1.0, sizingPolicy=SizingPolicy(widthMode=FIXED, heightMode=FIXED, width=null, height=null))
219.048703ms: exportMvg(): plotCanvasFigure built, size=(600, 400)
8.916766121s: exportMvg(): plot mapped to canvas
8.917074449s: exportMvg(): canvas size: (600, 400), pixelDensity=1.0
9.699510048s: exportMvg(): plot painted
13.058891597s: exportMvg(): snapshot taken
13.062931176s: exportMvg(): bitmap extracted
13.295812621s: exportMvg(): MVG extracted, length=32443781
13.296603668s: exportMvg(): resources disposed
1 of 10 (n=1000, solid=False, void=False, scale=2)
194ns: exportMvg(): plotSpec parsed
14.634us: exportMvg(): exportParameters(dpi=96.0, scaleFactor=2.0, sizingPolicy=SizingPolicy(widthMode=FIXED, heightMode=FIXED, width=null, height=null))
6.210414ms: exportMvg(): plotCanvasFigure built, size=(600, 400)
67.310252ms: exportMvg(): plot mapped to canvas
68.336284ms: exportMvg(): canvas size: (600, 400), pixelDensity=2.0
90.316609ms: exportMvg(): plot painted
442.749978ms: exportMvg(): snapshot taken
459.276959ms: exportMvg(): bitmap extracted
464.405157ms: exportMvg(): MVG extracted, length=1310745
464.444979ms: exportMvg(): resources disposed
2 of 10 (n=2000, solid=False, void=False, scale=2)
108ns: exportMvg(): plotSpec parsed
15.854us: exportMvg(): exportParameters(dpi=96.0, scaleFactor=2.0, sizingPolicy=SizingPolicy(widthMode=FIXED, heightMode=FIXED, width=null, height=null))
9.482904ms: exportMvg(): plotCanvasFigure built, size=(600, 400)
106.369766ms: exportMvg(): plot mapped to canvas
107.407821ms: exportMvg(): canvas size: (600, 400), pixelDensity=2.0
152.814636ms: exportMvg(): plot painted
957.207859ms: exportMvg(): snapshot taken
973.726977ms: exportMvg(): bitmap extracted
983.840417ms: exportMvg(): MVG extracted, length=2614695
983.877731ms: exportMvg(): resources disposed
3 of 10 (n=3000, solid=False, void=False, scale=2)
192ns: exportMvg(): plotSpec parsed
15.072us: exportMvg(): exportParameters(dpi=96.0, scaleFactor=2.0, sizingPolicy=SizingPolicy(widthMode=FIXED, heightMode=FIXED, width=null, height=null))
24.157867ms: exportMvg(): plotCanvasFigure built, size=(600, 400)
150.886027ms: exportMvg(): plot mapped to canvas
151.925245ms: exportMvg(): canvas size: (600, 400), pixelDensity=2.0
213.954819ms: exportMvg(): plot painted
1.697701785s: exportMvg(): snapshot taken
1.754966210s: exportMvg(): bitmap extracted
1.789974448s: exportMvg(): MVG extracted, length=3912842
1.790035907s: exportMvg(): resources disposed
4 of 10 (n=4000, solid=False, void=False, scale=2)
124ns: exportMvg(): plotSpec parsed
18.635us: exportMvg(): exportParameters(dpi=96.0, scaleFactor=2.0, sizingPolicy=SizingPolicy(widthMode=FIXED, heightMode=FIXED, width=null, height=null))
16.108253ms: exportMvg(): plotCanvasFigure built, size=(600, 400)
218.260362ms: exportMvg(): plot mapped to canvas
219.337926ms: exportMvg(): canvas size: (600, 400), pixelDensity=2.0
314.052500ms: exportMvg(): plot painted
2.677691143s: exportMvg(): snapshot taken
2.700956957s: exportMvg(): bitmap extracted
2.728764417s: exportMvg(): MVG extracted, length=5207884
2.728906601s: exportMvg(): resources disposed
5 of 10 (n=5000, solid=False, void=False, scale=2)
211ns: exportMvg(): plotSpec parsed
15.983us: exportMvg(): exportParameters(dpi=96.0, scaleFactor=2.0, sizingPolicy=SizingPolicy(widthMode=FIXED, heightMode=FIXED, width=null, height=null))
20.273595ms: exportMvg(): plotCanvasFigure built, size=(600, 400)
272.550621ms: exportMvg(): plot mapped to canvas
273.598885ms: exportMvg(): canvas size: (600, 400), pixelDensity=2.0
389.725839ms: exportMvg(): plot painted
4.053701643s: exportMvg(): snapshot taken
4.070123002s: exportMvg(): bitmap extracted
4.105260163s: exportMvg(): MVG extracted, length=6511739
4.105418615s: exportMvg(): resources disposed
6 of 10 (n=6000, solid=False, void=False, scale=2)
313ns: exportMvg(): plotSpec parsed
17.039us: exportMvg(): exportParameters(dpi=96.0, scaleFactor=2.0, sizingPolicy=SizingPolicy(widthMode=FIXED, heightMode=FIXED, width=null, height=null))
25.484068ms: exportMvg(): plotCanvasFigure built, size=(600, 400)
354.816213ms: exportMvg(): plot mapped to canvas
355.856314ms: exportMvg(): canvas size: (600, 400), pixelDensity=2.0
505.663752ms: exportMvg(): plot painted
5.467179161s: exportMvg(): snapshot taken
5.493962608s: exportMvg(): bitmap extracted
5.535160218s: exportMvg(): MVG extracted, length=7814799
5.535307658s: exportMvg(): resources disposed
7 of 10 (n=7000, solid=False, void=False, scale=2)
214ns: exportMvg(): plotSpec parsed
23.787us: exportMvg(): exportParameters(dpi=96.0, scaleFactor=2.0, sizingPolicy=SizingPolicy(widthMode=FIXED, heightMode=FIXED, width=null, height=null))
27.650867ms: exportMvg(): plotCanvasFigure built, size=(600, 400)
522.230918ms: exportMvg(): plot mapped to canvas
523.447309ms: exportMvg(): canvas size: (600, 400), pixelDensity=2.0
690.910498ms: exportMvg(): plot painted
7.169351006s: exportMvg(): snapshot taken
7.197563157s: exportMvg(): bitmap extracted
7.246912916s: exportMvg(): MVG extracted, length=9114077
7.247057534s: exportMvg(): resources disposed
8 of 10 (n=8000, solid=False, void=False, scale=2)
254ns: exportMvg(): plotSpec parsed
21.434us: exportMvg(): exportParameters(dpi=96.0, scaleFactor=2.0, sizingPolicy=SizingPolicy(widthMode=FIXED, heightMode=FIXED, width=null, height=null))
45.257493ms: exportMvg(): plotCanvasFigure built, size=(600, 400)
489.388551ms: exportMvg(): plot mapped to canvas
490.425947ms: exportMvg(): canvas size: (600, 400), pixelDensity=2.0
693.389293ms: exportMvg(): plot painted
9.002082470s: exportMvg(): snapshot taken
9.032648017s: exportMvg(): bitmap extracted
9.088822482s: exportMvg(): MVG extracted, length=10411057
9.088954790s: exportMvg(): resources disposed
9 of 10 (n=9000, solid=False, void=False, scale=2)
230ns: exportMvg(): plotSpec parsed
21.243us: exportMvg(): exportParameters(dpi=96.0, scaleFactor=2.0, sizingPolicy=SizingPolicy(widthMode=FIXED, heightMode=FIXED, width=null, height=null))
35.721247ms: exportMvg(): plotCanvasFigure built, size=(600, 400)
639.130502ms: exportMvg(): plot mapped to canvas
640.172160ms: exportMvg(): canvas size: (600, 400), pixelDensity=2.0
851.566793ms: exportMvg(): plot painted
11.280432485s: exportMvg(): snapshot taken
11.296134678s: exportMvg(): bitmap extracted
11.358833292s: exportMvg(): MVG extracted, length=11711189
11.358965264s: exportMvg(): resources disposed
10 of 10 (n=10000, solid=False, void=False, scale=2)
208ns: exportMvg(): plotSpec parsed
20.53us: exportMvg(): exportParameters(dpi=96.0, scaleFactor=2.0, sizingPolicy=SizingPolicy(widthMode=FIXED, heightMode=FIXED, width=null, height=null))
38.092055ms: exportMvg(): plotCanvasFigure built, size=(600, 400)
629.640164ms: exportMvg(): plot mapped to canvas
630.668353ms: exportMvg(): canvas size: (600, 400), pixelDensity=2.0
866.815686ms: exportMvg(): plot painted
14.261661410s: exportMvg(): snapshot taken
14.277684011s: exportMvg(): bitmap extracted
14.375270953s: exportMvg(): MVG extracted, length=13012604
14.375331829s: exportMvg(): resources disposed
--- Extracted Data ---
file_name n solid scale void mapping_time \
0 solid_1000.mvg 1000 True 1 False 0.080095
1 solid_5000.mvg 5000 True 1 False 0.259552
2 solid_10000.mvg 10000 True 1 False 0.541641
3 solid_20000.mvg 20000 True 1 False 1.062872
4 solid_50000.mvg 50000 True 1 False 8.916766
5 solid_1000@2x.mvg 1000 True 2 False 0.067417
6 solid_5000@2x.mvg 5000 True 2 False 0.224968
7 solid_10000@2x.mvg 10000 True 2 False 0.490322
8 solid_20000@2x.mvg 20000 True 2 False 1.047824
9 solid_50000@2x.mvg 50000 True 2 False 2.675369
10 stroked_1000.mvg 1000 False 1 False 0.068376
11 stroked_5000.mvg 5000 False 1 False 0.231351
12 stroked_10000.mvg 10000 False 1 False 0.698010
13 stroked_20000.mvg 20000 False 1 False 1.082148
14 stroked_50000.mvg 50000 False 1 False 3.184625
15 stroked_1000@2x.mvg 1000 False 2 False 0.067310
16 stroked_2000@2x.mvg 2000 False 2 False 0.106370
17 stroked_3000@2x.mvg 3000 False 2 False 0.150886
18 stroked_4000@2x.mvg 4000 False 2 False 0.218260
19 stroked_5000@2x.mvg 5000 False 2 False 0.272551
20 stroked_6000@2x.mvg 6000 False 2 False 0.354816
21 stroked_7000@2x.mvg 7000 False 2 False 0.522231
22 stroked_8000@2x.mvg 8000 False 2 False 0.489389
23 stroked_9000@2x.mvg 9000 False 2 False 0.639131
24 stroked_10000@2x.mvg 10000 False 2 False 0.629640
paint_time snapshot_time total_time
0 0.012894 0.075960 0.168949
1 0.061386 0.181386 0.502325
2 0.138113 0.534189 1.213943
3 0.311957 1.345345 2.720175
4 0.782744 3.359382 13.058892
5 0.013492 0.165382 0.246291
6 0.101228 0.310327 0.636523
7 0.140409 0.526663 1.157394
8 0.313965 1.252981 2.614770
9 0.788569 4.102992 7.566931
10 0.022634 0.095980 0.186990
11 0.148835 0.362527 0.742713
12 0.237767 0.771037 1.706814
13 0.509272 2.768427 4.359846
14 1.188870 7.687922 12.061417
15 0.023006 0.352433 0.442750
16 0.046445 0.804393 0.957208
17 0.063069 1.483747 1.697702
18 0.095792 2.363639 2.677691
19 0.117175 3.663976 4.053702
20 0.150848 4.961515 5.467179
21 0.168680 6.478441 7.169351
22 0.204001 8.308693 9.002082
23 0.212436 10.428866 11.280432
24 0.237176 13.394846 14.261661