You've already forked go-profiler-notes
mirror of
https://github.com/DataDog/go-profiler-notes.git
synced 2025-07-15 23:54:16 +02:00
329 lines
168 KiB
Plaintext
329 lines
168 KiB
Plaintext
![]() |
{
|
||
|
"cells": [
|
||
|
{
|
||
|
"cell_type": "code",
|
||
|
"execution_count": 1,
|
||
|
"id": "classified-alcohol",
|
||
|
"metadata": {},
|
||
|
"outputs": [],
|
||
|
"source": [
|
||
|
"import numpy as np\n",
|
||
|
"import pandas as pd\n",
|
||
|
"from plotnine import *\n",
|
||
|
"import plotnine\n",
|
||
|
"import random\n",
|
||
|
"plotnine.options.figure_size = (12, 5)"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "code",
|
||
|
"execution_count": 2,
|
||
|
"id": "union-circle",
|
||
|
"metadata": {
|
||
|
"scrolled": false
|
||
|
},
|
||
|
"outputs": [
|
||
|
{
|
||
|
"data": {
|
||
|
"text/html": [
|
||
|
"<div>\n",
|
||
|
"<style scoped>\n",
|
||
|
" .dataframe tbody tr th:only-of-type {\n",
|
||
|
" vertical-align: middle;\n",
|
||
|
" }\n",
|
||
|
"\n",
|
||
|
" .dataframe tbody tr th {\n",
|
||
|
" vertical-align: top;\n",
|
||
|
" }\n",
|
||
|
"\n",
|
||
|
" .dataframe thead th {\n",
|
||
|
" text-align: right;\n",
|
||
|
" }\n",
|
||
|
"</style>\n",
|
||
|
"<table border=\"1\" class=\"dataframe\">\n",
|
||
|
" <thead>\n",
|
||
|
" <tr style=\"text-align: right;\">\n",
|
||
|
" <th></th>\n",
|
||
|
" <th>event</th>\n",
|
||
|
" <th>duration</th>\n",
|
||
|
" </tr>\n",
|
||
|
" </thead>\n",
|
||
|
" <tbody>\n",
|
||
|
" <tr>\n",
|
||
|
" <th>0</th>\n",
|
||
|
" <td>a</td>\n",
|
||
|
" <td>954.462517</td>\n",
|
||
|
" </tr>\n",
|
||
|
" <tr>\n",
|
||
|
" <th>1</th>\n",
|
||
|
" <td>a</td>\n",
|
||
|
" <td>982.854305</td>\n",
|
||
|
" </tr>\n",
|
||
|
" <tr>\n",
|
||
|
" <th>2</th>\n",
|
||
|
" <td>a</td>\n",
|
||
|
" <td>1037.667967</td>\n",
|
||
|
" </tr>\n",
|
||
|
" <tr>\n",
|
||
|
" <th>3</th>\n",
|
||
|
" <td>a</td>\n",
|
||
|
" <td>1002.143116</td>\n",
|
||
|
" </tr>\n",
|
||
|
" <tr>\n",
|
||
|
" <th>4</th>\n",
|
||
|
" <td>a</td>\n",
|
||
|
" <td>1020.217687</td>\n",
|
||
|
" </tr>\n",
|
||
|
" <tr>\n",
|
||
|
" <th>...</th>\n",
|
||
|
" <td>...</td>\n",
|
||
|
" <td>...</td>\n",
|
||
|
" </tr>\n",
|
||
|
" <tr>\n",
|
||
|
" <th>18328</th>\n",
|
||
|
" <td>c</td>\n",
|
||
|
" <td>3040.239624</td>\n",
|
||
|
" </tr>\n",
|
||
|
" <tr>\n",
|
||
|
" <th>18329</th>\n",
|
||
|
" <td>c</td>\n",
|
||
|
" <td>2941.655774</td>\n",
|
||
|
" </tr>\n",
|
||
|
" <tr>\n",
|
||
|
" <th>18330</th>\n",
|
||
|
" <td>c</td>\n",
|
||
|
" <td>3053.683405</td>\n",
|
||
|
" </tr>\n",
|
||
|
" <tr>\n",
|
||
|
" <th>18331</th>\n",
|
||
|
" <td>c</td>\n",
|
||
|
" <td>2980.200817</td>\n",
|
||
|
" </tr>\n",
|
||
|
" <tr>\n",
|
||
|
" <th>18332</th>\n",
|
||
|
" <td>c</td>\n",
|
||
|
" <td>3050.789074</td>\n",
|
||
|
" </tr>\n",
|
||
|
" </tbody>\n",
|
||
|
"</table>\n",
|
||
|
"<p>18333 rows × 2 columns</p>\n",
|
||
|
"</div>"
|
||
|
],
|
||
|
"text/plain": [
|
||
|
" event duration\n",
|
||
|
"0 a 954.462517\n",
|
||
|
"1 a 982.854305\n",
|
||
|
"2 a 1037.667967\n",
|
||
|
"3 a 1002.143116\n",
|
||
|
"4 a 1020.217687\n",
|
||
|
"... ... ...\n",
|
||
|
"18328 c 3040.239624\n",
|
||
|
"18329 c 2941.655774\n",
|
||
|
"18330 c 3053.683405\n",
|
||
|
"18331 c 2980.200817\n",
|
||
|
"18332 c 3050.789074\n",
|
||
|
"\n",
|
||
|
"[18333 rows x 2 columns]"
|
||
|
]
|
||
|
},
|
||
|
"execution_count": 2,
|
||
|
"metadata": {},
|
||
|
"output_type": "execute_result"
|
||
|
}
|
||
|
],
|
||
|
"source": [
|
||
|
"points=10000\n",
|
||
|
"mu=1000\n",
|
||
|
"sigma=50\n",
|
||
|
"events = pd.concat([\n",
|
||
|
" pd.DataFrame({'event': 'a', 'duration': np.random.normal(mu, sigma, points)}),\n",
|
||
|
" pd.DataFrame({'event': 'b', 'duration': np.random.normal(mu*2, sigma, int(points/2))}),\n",
|
||
|
" pd.DataFrame({'event': 'c', 'duration': np.random.normal(mu*3, sigma, int(points/3))}),\n",
|
||
|
"], ignore_index=True)\n",
|
||
|
"events"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "code",
|
||
|
"execution_count": 3,
|
||
|
"id": "right-discovery",
|
||
|
"metadata": {
|
||
|
"scrolled": false
|
||
|
},
|
||
|
"outputs": [
|
||
|
{
|
||
|
"data": {
|
||
|
"image/png": "iVBORw0KGgoAAAANSUhEUgAABEAAAAHYCAYAAABN8p3GAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAA9hAAAPYQGoP6dpAAB9r0lEQVR4nO3deXwT1frH8e90SdqmK7JYhLaAyKKIoICyiyzKFVBEWdxQUXEB9wXcQEUUN1RAEBdAUbw/RL16QWQXENEr6lVERdllrXRNW9I25/dHb2NDS2lL2rTp5/16+ZLMTE6emTwzTZ6cc8YyxhgBAAAAAAAEsCB/BwAAAAAAAFDZKIAAAAAAAICARwEEAAAAAAAEPAogAAAAAAAg4FEAAQAAAAAAAY8CCAAAAAAACHgUQAAAAAAAQMCjAAIAAAAAAAIeBRAAAAAAABDwKICgWujZs6eSkpIq/XXmzJkjy7K0evXqSn+t2iIrK0tjx45VQkKCgoODq+R9RO02cuRIWZZV5u0r+7zfsWOHLMvShAkTSl0mSW63WxMmTFDTpk0VEhLitR+rVq3Sueeeq6ioKFmWpTlz5lRKvKg5qupvoy+sXr2avK2FHn/8cdWrV08ZGRll2j4pKUk9e/as3KB8oKrzee3atbIsSxs2bKiS1wNqMwog8LnCPxpF/wsNDVVCQoIGDhyolStX+jvEWmfOnDmaOnVqpbT9zDPP6JVXXtHQoUMr9XUqy9dff63LL79czZs3V3R0tBwOh1q1aqW7775be/fu9Xd4KKPVq1drwoQJSk1N9XcopZo7d64mTpyo888/X2+88YbefvttSVJKSooGDx4sp9Op559/Xm+//ba6d+/u52jLburUqXzxrWEqcs58//33mjBhgnbs2FFpcaHm2LNnj5555hmNGzdOUVFR/g6n3KrT341u3bqpX79+uvPOO2WM8Xc4QEAL8XcACFxDhgzRoEGDJElHjhzRL7/8otdff12ffvqpPvzwQ886VL45c+Zox44duvPOO33e9rJly9SmTRs9++yzPm+7KmzdulUZGRkaPny44uPjFRQUpP/+97+aNWuW3n33XW3atEkNGzb0d5goYvbs2Zo5c6bXstWrV2vixIkaOXKkYmNj/RNYEYmJicrOzlZIiPef2WXLlikmJkavv/66V++Pb775RqmpqXrjjTc0ePDgqg73hE2dOlVJSUkaOXKkv0NBGVXknPn+++81ceLEGtUzBZVnypQpCgoK0s033+zvUCqktHOge/fuys7OVmhoaJXFc88996hv377697//rYsvvrjKXheobSiAoNK0bdtWV111ldeybt26adCgQXrrrbcogASI/fv3KyEhoUzbpqenKzo6upIjKp8rr7xSV155ZbHlPXr00NChQ/X666/r0Ucf9UNkJ67ww9vRX8JrutDQ0Cr9UFoRlmUpLCys2PL9+/crNja22BCe/fv3S5Lq1Knj81iq43kHoGbLzMzU3Llzdfnll8vhcPg1lvz8fB05ckQRERE+azMoKKjEa3hluuCCC9SoUSPNmDGDAghQiRgCgypV+Eu6zWYr0/YbN27UxRdfrDp16igsLEwtW7bUE088IZfLVWzbzMxMTZgwQWeccYbCw8MVFxenDh06aNq0acd9nVdffVUhISG67LLLlJ2dfdztv/vuOw0ZMkT169eXzWZT06ZN9eCDDyorK8uzzcMPPyzLsrR+/foS22jevLkSExPldrs9y/744w+NHDlSDRs2lM1mU6NGjXTrrbcqOTnZ67kTJkyQZVn67bff9OijjyoxMVF2u12tWrXS/Pnzvba1LEtr1qzRzp07vYYlFc6HsGfPHt10001q0qSJwsLCVLduXZ199tl66qmnSj0GhTFs375da9as8bRbOOdB4Tjf//73v/rHP/6huLg4xcTEeJ7/yy+/aNiwYWrQoIHsdruaNm2qe++9V+np6V6vUzh/w4oVK/TUU0+padOmCgsLU9u2bbVkyRJJ0s8//6yLL75YMTExio2N1ciRI5WZmVlq/MdT+OtmWbvGfvbZZ+rVq5fq16+vsLAwNWrUSBdddJHWrl3rtd2ff/6pUaNG6ZRTTvG8xzfddJP27dtX4n6XNG9FSXNgFP4iu3PnTg0bNkx169ZVRESE9uzZI6ns54fL5dKUKVN05plnKjw8XNHR0erdu7e++OKLYnHMnz9f5513nurUqaPw8HAlJCRo8ODB+vnnn0s9Vk899ZQsy9KPP/7oWZaXl6eYmBhZllXsmJ1yyinq1avXMfe/Z8+emjhxoiSpSZMmxXKxkDFGU6dO1WmnnSa73a4mTZrohRdeKDXWo7333ntq27atwsLCdMopp+juu+/2Ou8LHT0HSOH7uWrVKq9zsXBfrr32WknS+eef71lXqKzvSdHX/OCDD9SxY0dFRERo4MCBnm3Kcu0qeozT09M1ZswYxcfHy263q3379lq6dGmx19y5c6fXdcCyrOMOkyi8Rvz000/q16+foqOjddJJJ2nUqFFyOp1yu92aMmWKTj31VNntdp1++un697//XWJbq1at0kUXXaS4uDjPtfCZZ55Rfn6+13Zff/21rr/+erVo0UIOh0MOh0MdOnTQW2+9VazN8lxnJemrr77SgAED1LBhQ9ntdsXHx+v888/XRx99VOpxKIudO3fqsssuU1xcnBwOh/r06aNNmzZ5bVPanAWF+1L4npT1nClq5MiRuu666yR552lJvX7efvttnXnmmZ7zZPz48cXeC0k6cOCAxowZo6SkJNlsNjVo0EBXXXVVmYfYpKSk6L777lPz5s0917U2bdoU6+34/vvv65JLLlFiYqLCwsJUp04dXXjhhVq3bl2xNguvpbt379bll1+uuLg4RUdH67LLLtPBgwclSW+++abOOOMMhYWFqWnTpiXmj1T28+1YtmzZouHDh6tx48ay2+2qX7++OnfurNdff92zTUX/Vpzo/n322WdKT0/XP/7xjxJj//bbb9W7d285HA7FxcXpsssuK/F9PdZ8Scfat8Jc/vnnn3X//fd7zst//vOfkqTPP/9cw4cPV7NmzTzXy+7du+uTTz4pdhxKOweOdT7l5ORo4sSJatmypSeXBgwYoP/85z/F4i88P77++mv16tVLkZGRio2N1bBhwzzHuqigoCBdeOGFWrp0abUYlgMEqsD6WRDVSlZWlueL+5EjR7R161aNGzdOoaGhZeou+dlnn2ngwIGKjo7WrbfeqpNPPlmLFy/Wo48+qi+//FL//ve/FRRUUMNLS0tTt27d9OOPP2rAgAG6/vrrFRoaqh9//FGLFi3S7bffXuJrGGP04IMPasqUKbrjjjv0wgsveNosLa5LLrlEjRs31pgxY9SgQQP98MMPeuGFF7R+/XqtWrVKISEhGjlypCZNmqQ5c+aoS5cuXm2sW7dOv//+ux5++GHP633//ffq2bOnIiIidP311ysxMVFbt27Vq6++qhUrVujrr7/2KiBI0rXXXivLsjR27FgFBQVpxowZuuqqq9SsWTOde+65kgo+iE6aNEnJycl68cUXPc9t1aqV8vLy1KdPH+3evVu33HKLWrZsqczMTP3yyy9auXKlxo8ff8zjMHjwYJ166qm66667VLduXT300EOSpDPPPNOzze7du9WjRw9deumlmjx5sudX7u+//17du3dXXl6ebr31VjVt2lTr1q3T888/rxUrVmj9+vXFfskZN26cjhw5oltuuUXBwcF66aWXNGjQIC1cuFA33HCDrrjiCg0YMEAbNmzQ3LlzZbfbNWvWrFLfy6KysrKUlZWl7Oxs/fzzz3rwwQcl6Zgf7or64osvdPHFF6t169a67777dNJJJ2n//v368ssv9d1336lbt26SCoofHTp00MGDBzVq1Ci1bdtWP/zwg2bPnq3PPvtM33zzjRo0aFDmmI+WmZmpbt26qUOHDpo4caIyMjIUGRlZ5vMjLy9P/fv315o1azR8+HCNHj1aWVlZeuedd9SrVy999NFHnl+l5s+fr6uuukpdunTRY489psjISP35559auXKlfv31V7Vu3fqYcV5wwQV66KGHtHz5crVp00Z
|
||
|
"text/plain": [
|
||
|
"<Figure size 1200x500 with 1 Axes>"
|
||
|
]
|
||
|
},
|
||
|
"metadata": {},
|
||
|
"output_type": "display_data"
|
||
|
},
|
||
|
{
|
||
|
"data": {
|
||
|
"text/plain": [
|
||
|
"<ggplot: (324948417)>"
|
||
|
]
|
||
|
},
|
||
|
"execution_count": 3,
|
||
|
"metadata": {},
|
||
|
"output_type": "execute_result"
|
||
|
}
|
||
|
],
|
||
|
"source": [
|
||
|
"(\n",
|
||
|
"ggplot(events)\n",
|
||
|
"+ aes(x='duration',color='event')\n",
|
||
|
"+ labs(x='event duration (ns)',title='Block events from 3 sources with different means, but the same sum(duration)')\n",
|
||
|
"+ geom_histogram(binwidth=10)\n",
|
||
|
")"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "code",
|
||
|
"execution_count": 4,
|
||
|
"id": "brief-bailey",
|
||
|
"metadata": {},
|
||
|
"outputs": [],
|
||
|
"source": [
|
||
|
"# sample implements the sampling used by the go block profiler. Returning 0 is the\n",
|
||
|
"# same as false in the go implementation, otherwise the actual number of cycles to\n",
|
||
|
"# track is returned. This allows to adjust them for bias if the debias paramter is\n",
|
||
|
"# set to True.\n",
|
||
|
"#\n",
|
||
|
"# \tif rate <= 0 || (rate > cycles && int64(fastrand())%rate > cycles) {\n",
|
||
|
"# \t\treturn false\n",
|
||
|
"# \t}\n",
|
||
|
"# \treturn true\n",
|
||
|
"def sample(cycles, rate, debias):\n",
|
||
|
" if cycles >= rate:\n",
|
||
|
" return cycles\n",
|
||
|
" elif cycles > 0 and random.getrandbits(64)%rate <= cycles:\n",
|
||
|
" if debias:\n",
|
||
|
" return cycles*(rate/cycles)\n",
|
||
|
" else:\n",
|
||
|
" return cycles\n",
|
||
|
" return 0\n",
|
||
|
"\n",
|
||
|
"def simulate_rates(rates, debias):\n",
|
||
|
" frames = []\n",
|
||
|
" for rate in rates:\n",
|
||
|
" rf = (events\n",
|
||
|
" .groupby('event')['duration']\n",
|
||
|
" .agg(lambda durations: sum(durations.apply(lambda d: sample(d, rate, debias)))).reset_index()\n",
|
||
|
" )\n",
|
||
|
" rf['rate'] = rate\n",
|
||
|
" frames.append(rf)\n",
|
||
|
" return pd.concat(frames)\n",
|
||
|
"\n",
|
||
|
"rates = range(0, 5000, 100)\n",
|
||
|
"profiles = simulate_rates(rates, False)\n",
|
||
|
"profiles_debiased = simulate_rates(rates, True)"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "code",
|
||
|
"execution_count": 5,
|
||
|
"id": "relative-minnesota",
|
||
|
"metadata": {},
|
||
|
"outputs": [
|
||
|
{
|
||
|
"data": {
|
||
|
"image/png": "iVBORw0KGgoAAAANSUhEUgAABGcAAAHYCAYAAADgc4VvAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAA9hAAAPYQGoP6dpAAC1YUlEQVR4nOzdd3xTVf8H8M+9N6NpuumgUNrSsmUrKGVPBRHcggKKylABUUR5xP3Iz40DZTpwIIKACxWQqQyBB5W9R8tuS0tn2iT3nt8ftYHQFpKSNB2fty9eNufmnnxzenKbfHOGJIQQICIiIiIiIiIin5B9HQARERERERERUU3G5AwRERERERERkQ8xOUNERERERERE5ENMzhARERERERER+RCTM0REREREREREPsTkDBERERERERGRDzE5Q0RERERERETkQ0zOEBERERERERH5EJMzREREREREREQ+xOQMEVEV9sADD0CSJF+HgWPHjkGSJLz00kteqf+ll16CJEk4duyYV+r3tPz8fIwbNw6xsbFQFAXx8fG+Dglz586FJElYu3btZcsAID09HcOGDUOdOnUgSRK6devmODZ9+nQ0adIERqOxSv1OysPdfl1We3qDJEl44IEHvP44V6Os10G3bt1KvCYqy7WMiIjIV3S+DoCIiJylpqZi6tSp+Pnnn5GcnAwhBCIiItCqVSv0798fDz30kK9D9Iq5c+fi/PnzGD9+vK9DuWpvvPEGpk2bhqeeegotW7ZEYGCgr0Nyy4QJE7BgwQJMnjwZCQkJiIqKAgCsWbMGjz32GAYOHIhnnnkGer0eERERPo7WNefPn8d7772Hbt26OSWbyHuq+uvgUmvXrsXatWsxfvx4hISE+DocIiKqZpicISKqRFJSUtC+fXukp6fjzjvvxIgRI2AwGHDkyBGsX78e7733nlNyZs6cOZg5c6YPI/acuXPn4tixY6UmZ5577jlMmjQJRqOx4gMrh99++w0tWrTAW2+95etQLmvo0KEYNGgQDAaDU/lvv/2GG2+8ES+88EKJcgD49NNPERYWVmFxesL58+fx8ssvAwCTMxWkrNfBihUrIITwUVTlt3btWrz88st44IEHmJwhIiKPY3KGiKgSeeutt3D27Fm89957ePzxx0scP3PmjNNtvV4PvV5fUeH5jE6ng05Xdf5knTlzBrGxsR6v12q1QtM0+Pn5eaQ+RVGgKEqJ8jNnzpSafCnuf55OzAghkJeXh4CAAI/WS55hsVig1+vdfg2W9Tq4NBlY0VRVRWFhIfz9/X0aBxER0cW45gwRUSVy8OBBAEDPnj1LPV67dm2n26Wt01BclpGRgYcffhiRkZEICAhAnz59HPX/+OOPaNeuHfz9/VG3bl289tprJR4rPj6+1BEG7qzDMWPGDNx4442IiYmBwWBAZGQk7rjjDuzatcvpfpIkYd26dUhOToYkSY5/xWt3lLXmzMmTJ/Hwww+jbt26MBgMiImJwciRI3H69Gmn+61duxaSJGHu3Ln48ssv0bJlS/j5+aFu3bp49tlnoaqq0/1PnDiBkSNHon79+vDz80N4eDiuvfZa/N///d9ln29xnEePHsW6descz+Pitlq2bBm6d++OoKAgmEwmtG7dGh999FGJkQTFv8dz585h5MiRiI6Ohslkwp9//nnZGGw2G1588UXEx8fDz88PTZs2xYwZM0q976VrpBQ/phACn3/+uSP+4vt99tlnAOAov7h/nD17FmPHjkV8fDwMBgOioqIwZMiQEr+z4rpWrlyJ1157DY0aNYLRaMTbb7/tuM/ixYvRtWtXRxu1adMGH3/8cYn4i/vogQMHMHDgQAQHByMgIAD9+vXDoUOHnB6zfv36AICXX37ZEb87awEtWrQIbdu2hclkQnR0NMaPH4/c3FyXzj1//jyefPJJ1K9fH0ajEVFRURg8eLDj9XipH3/8Eb169UJoaCj8/PyQkJCAhx9+GOnp6Zd9nP379yMhIQF169bFP//843juxe396quvOmJo3Lgxpk2bVqKO4vVgkpOTMWjQIISHh8Pf3x8nTpwA4Npr7kqvg9LWnCmLq/2qLMWx7NmzB08//TTi4uJgNBqxcOFCAEWjeAYPHozExESYTCYEBQWhS5cu+Omnn0q0S/HIq/r165f62rZarXjzzTfRsmVLR129evXC77//XiKuefPmoUOHDggLC4PJZEJsbCxuv/127Nmzx6XnRURE1U/V+RqSiKgGSExMBAB89tlneOONN65qtMhNN92EqKgovPjiizh16hSmTp2KPn364L///S8mTJiA0aNHY/jw4fjmm2/w7LPPIj4+HoMHD/bUUwEAvPnmm7j++uvx2GOPITw8HAcPHsTHH3+M3377DX///bfj+X755ZeYMmUK0tPT8e677zrOb9q0aZl1nzx5Eu3atUNqaioefvhhtGrVCtu3b8ecOXOwbNkybN261bFWSrFZs2Y5PlxGRERgyZIleO211xAUFIRJkyYBAOx2O3r37o3jx4/jkUceQZMmTZCbm4t9+/Zh9erVePbZZ8uM6fbbb0eDBg3wxBNPIDw8HJMnTwYAtGzZEgDwySefYMSIEYiNjcXEiRMREBCARYsWYcyYMdi+fTtmz55dos5evXqhVq1amDRpEjRNK5Ggu9TQoUOxYMEC9OjRA08++STOnTuHF1980aWRPKNGjUKvXr0wdOhQdO7cGSNHjgQANGzYEF9++SVmz56NP/74A19++SUAONr3+PHjSEpKQm5uLh566CE0atQIJ0+exIwZM7BixQr873//K/H4EydORH5+Pu6//35ERESgXr16AIAXX3wRr7zyCrp3744XX3wRJpMJy5cvx4gRI3Do0CG8/vrrTvWcPHkSXbp0wYABA/DGG2/g4MGDmDZtGgYOHIidO3dClmV06dIF7777Lp544gncdtttuP322wHA5ZE6S5cuxdSpU/Hoo4/ioYcewqpVq/D+++/jn3/+wapVq0odfVQsJycHHTt2xJ49ezB48GB06tQJhw8fxvTp07Fs2TJs2LABzZo1c9z/hRdewH//+18kJiZi7NixiImJQUpKCn766SecOHEC4eHhpT7O+vXrMXDgQERHR2PdunWO9iw2adIkZGVlYcSIETAajZg/fz7GjRuHs2fP4tVXX3W6b25uLjp37ox27drh5ZdfRk5ODgICAlx+zV3pdeCq8vSrstx3333Q6XR47LHHEBAQgMaNGwMoSl6dPXsWQ4YMQUxMDNLS0vD5559jwIAB+Oabb3DPPfcAACZPnoywsDB89913ePfddx2/h+LnZLfb0a9fP6xbtw6DBw/G6NGjkZ+fj6+++go9evTA999/j/79+wMoSswMGTIEHTt2xIsvvuho29WrV2P//v1O/YGIiGoQQURElcbhw4dFcHCwACAiIyPFHXfcId544w2xfv16oapqifvff//94tJLeXHZqFGjnMrfffddAUAEBASIo0ePOsoLCgpEVFSU6NChg9P94+LiRNeuXUs85tGjRwUA8eKLL162TAghcnNzS5y/a9cuodfrxaOPPupU3rVrVxEXF1fi/kII8eKLLwoATnEPHTpUABDz5s1zuu/nn38uAIiHHnrIUbZmzRoBQNSuXVtkZGQ4ylVVFU2bNhXR0dGOsu3btwsA4vXXXy81FleU1nbnz58XAQEBIjo6WqSlpTnKbTab6N27twAg/vjjD0d58e9x0KBBQtM0lx531apVAoC47bbbnM45cuSIMJlMAoBYs2aNo/yzzz4rUSaEEADE/fffX6L+0vqbEELceuutIjQ0VBw+fNip/OjRoyIgIEA88MADJR4zMTFR5OTkON3/r7/+EpIkiXHjxpV4jDFjxghZlp0eIy4uTgAQX3/9tdN9X3vtNQFALF++3CmW0vro5RSfI0mS2Lx5s9OxcePGCQDis88+K/HcLm7P559/XgAQU6ZMcTp/7dq1AoDo2bOno2zLli0CgLjhhhtKfe1cfA24+He0YMECYTQaRffu3cX58+edzimOKSYmRmRmZjrKCwoKRPv27YUsy+LQoUOO8q5duwoA4plnninx+O685oQo+xp
|
||
|
"text/plain": [
|
||
|
"<Figure size 1200x500 with 1 Axes>"
|
||
|
]
|
||
|
},
|
||
|
"metadata": {},
|
||
|
"output_type": "display_data"
|
||
|
},
|
||
|
{
|
||
|
"data": {
|
||
|
"text/plain": [
|
||
|
"<ggplot: (325120862)>"
|
||
|
]
|
||
|
},
|
||
|
"execution_count": 5,
|
||
|
"metadata": {},
|
||
|
"output_type": "execute_result"
|
||
|
}
|
||
|
],
|
||
|
"source": [
|
||
|
"(\n",
|
||
|
"ggplot(profiles)\n",
|
||
|
"+ aes(x='rate', y='duration',ymin=0,color='event')\n",
|
||
|
"+ labs(y='block profile duration (ns)', x='blockprofilerate (ns)',title='Simulations for different blockprofile rates')\n",
|
||
|
"+ geom_point()\n",
|
||
|
")"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "code",
|
||
|
"execution_count": 6,
|
||
|
"id": "aerial-trunk",
|
||
|
"metadata": {},
|
||
|
"outputs": [
|
||
|
{
|
||
|
"data": {
|
||
|
"image/png": "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
|
||
|
"text/plain": [
|
||
|
"<Figure size 1200x500 with 1 Axes>"
|
||
|
]
|
||
|
},
|
||
|
"metadata": {},
|
||
|
"output_type": "display_data"
|
||
|
},
|
||
|
{
|
||
|
"data": {
|
||
|
"text/plain": [
|
||
|
"<ggplot: (324948336)>"
|
||
|
]
|
||
|
},
|
||
|
"execution_count": 6,
|
||
|
"metadata": {},
|
||
|
"output_type": "execute_result"
|
||
|
}
|
||
|
],
|
||
|
"source": [
|
||
|
"(\n",
|
||
|
"ggplot(profiles_debiased)\n",
|
||
|
"+ aes(x='rate', y='duration',ymin=0,color='event')\n",
|
||
|
"+ labs(y='block profile duration (ns)', x='blockprofilerate (ns)',title='Simulations for different blockprofile rates with debias scaling applied')\n",
|
||
|
"+ geom_point()\n",
|
||
|
")"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "code",
|
||
|
"execution_count": null,
|
||
|
"id": "comparative-ordering",
|
||
|
"metadata": {},
|
||
|
"outputs": [],
|
||
|
"source": []
|
||
|
}
|
||
|
],
|
||
|
"metadata": {
|
||
|
"kernelspec": {
|
||
|
"display_name": "Python 3",
|
||
|
"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.9.1"
|
||
|
}
|
||
|
},
|
||
|
"nbformat": 4,
|
||
|
"nbformat_minor": 5
|
||
|
}
|