Skip to content

Instantly share code, notes, and snippets.

@chutten
Created February 4, 2016 16:51
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save chutten/aa269205a452be7fd89b to your computer and use it in GitHub Desktop.
Save chutten/aa269205a452be7fd89b to your computer and use it in GitHub Desktop.
Beta 45 Thread Activity With and Without Addons
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### E10S Experiment Beta, thread activity"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Populating the interactive namespace from numpy and matplotlib\n"
]
}
],
"source": [
"import ujson as json\n",
"import matplotlib.pyplot as plt\n",
"import pandas as pd\n",
"import numpy as np\n",
"import plotly.plotly as py\n",
"import IPython\n",
"import functools\n",
"\n",
"from __future__ import division\n",
"from moztelemetry.spark import get_pings, get_one_ping_per_client, get_pings_properties\n",
"from montecarlino import grouped_permutation_test\n",
"\n",
"%pylab inline\n",
"IPython.core.pylabtools.figsize(16, 7)"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"32"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"sc.defaultParallelism"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Get e10s and non-e10s partitions"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"dataset = sqlContext.read.load(\"s3://telemetry-parquet/e10s-experiment/e10s-beta45-withaddons@experiments.mozilla.org/generationDate=20160201\", \"parquet\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Only consider builds with [bug 1234618](https://bugzilla.mozilla.org/show_bug.cgi?id=1234618) BHR fix:"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"dataset = dataset.filter(dataset.buildId >= '20151228134903')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Sample by clientId:"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"sampled = dataset.filter(dataset.sampleId <= 20)"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"38967"
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"sampled.filter(dataset[\"experimentBranch\"] == \"experiment\").count()"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"41222"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"sampled.filter(dataset[\"experimentBranch\"] == \"control\").count()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Transform Dataframe to RDD of pings"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"def row_2_ping(row):\n",
" ping = {\"clientId\": row.clientId,\n",
" \"payload\": {\"threadHangStats\": json.loads(row.threadHangStats)},\n",
" \"environment\": {\"addons\": json.loads(row.addons)},\n",
" \"e10s\": True if row.experimentBranch == \"experiment\" else False}\n",
" return ping\n",
"\n",
"subset = sampled.rdd.map(row_2_ping)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Thread activity"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"def get_activity(ping):\n",
" for thread in ping[\"payload\"][\"threadHangStats\"]:\n",
" if thread[\"name\"] != \"Gecko\":\n",
" continue\n",
"\n",
" values = {str(int(k) + 1): v for k, v in thread[\"activity\"][\"values\"].iteritems()} \n",
" yield {\"e10s\": ping[\"e10s\"],\n",
" \"clientId\": ping[\"clientId\"],\n",
" \"payload\": {\"histograms\": {\"GECKO_THREAD_ACTIVITY_MS\": {\"values\": values}}}}\n",
" \n",
"\n",
"\n",
"histograms = json.loads(\n",
" \"\"\"\n",
" {\n",
" \"GECKO_THREAD_ACTIVITY_MS\": {\n",
" \"expires_in_version\": \"default\",\n",
" \"kind\": \"exponential\",\n",
" \"high\": \"2**24\",\n",
" \"n_buckets\": 26,\n",
" \"description\": \"\"\n",
" }\n",
" }\n",
" \"\"\")\n",
" \n",
"histogram = \"payload/histograms/GECKO_THREAD_ACTIVITY_MS\"\n",
"props = get_pings_properties(subset.flatMap(get_activity), [\"clientId\", \"e10s\", histogram], additional_histograms=histograms)\n",
"frame = pd.DataFrame(props.collect())\n",
" \n",
"e10s = frame[frame[\"e10s\"] == True]\n",
"none10s = frame[frame[\"e10s\"] == False]"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7f5634013e90>"
]
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA7wAAAGoCAYAAABlm+mTAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3X+UnXV9L/r3h0SEQHDwF781WoMapYq0YItdTi3S9FQB\n66lKFckt6unCi+K9t7fgUc9k2YK41EZXl3DsUQErKLQ1YmUh1Ha81YqjVBCJGOhxEAKEIIQfkRAg\n3/vHbGEgE5iQ7NmZJ6/XWlnz7O9+nme/96w1a/Pm+93PU621AAAAQNfsNOgAAAAA0A8KLwAAAJ2k\n8AIAANBJCi8AAACdpPACAADQSQovAAAAndTXwltV76uqH1fV1VV1XlU9taqeXlWXVdXKqrq0qoYm\n7X9qVV1XVddW1ZGTxg/pneO6qvpkPzMDAADQDX0rvFW1X5KTkhzSWjsoyZwkb0lySpLLWmsHJvlm\n73GqalGSNydZlGRxkk9XVfVOd2aSE1prC5MsrKrF/coNAABAN/R7SfPcJPOqam6SeUluTnJUknN6\nz5+T5Jje9tFJzm+tPdBaG09yfZLDqmqfJPNba2O9/c6ddAwAAABMqW+Ft7W2KsnHk/w8E0V3bWvt\nsiR7tdZW93ZbnWSv3va+SW6adIqbkuw3xfiq3jgAAABsVj+XNO+ZidncBZkorbtX1dsm79Naa0la\nvzIAAACw45rbx3MfkeRnrbVfJElV/WOS30pya1Xt3Vq7tbdc+bbe/quSHDDp+P0zMbO7qrc9eXzV\nVC9YVcozAABAR7XW6on3ekQ/C+8NSV5ZVbsmWZ+JAjyWZF2S45Oc0fu5vLf/RUnOq6pPZGLJ8sIk\nY621VlV3V9VhveOPS/Kpzb3oxKQxMJNGRkYyMjIy6Biww/G3B4Phbw8G45FrGk9f3wpva22sqv4+\nyX8kebD38zNJ5ie5oKpOSDKe5E29/VdU1QVJVvT2P7E90l5PTHJ2kl2TXNxau6RfuQEAAOiGfs7w\nprU2kmTkMcN3ZGK2d6r9T0ty2hTjVyQ5aBvHAwAAoMP6fVsiYAcwPDw86AiwQ/K3B4Phbw9mj+rS\nd16rqnXp/QAAADChqrari1YBAADMak/mQklsvW01kanwAgAAPA6rSGfWtvyfDL7DCwAAQCcpvAAA\nAHSSwgsAAEAnKbwAAAB0ksILAADQMT/+8Y/z+7//+3nWs56VnXbatPbdcccdecMb3pDdd989CxYs\nyPnnnz+AlP3nPrwAAACb0bv366PGTj7l5Kxdv7Zvrzm0y1CWfWTZVp1j5cqV+c53vpNnPOMZOeaY\nY7Jx48ZHPX/ssccmST772c/mhz/8Yf7wD/8w//7v/55FixZt1etuC1P9zieNuw8vAABAv6xdvzYL\njlnQt/OPLx+f9r4333xzTjrppPzbv/1bdt9997zvfe/LSSedlAMPPDAHHnhgrr/++k2OWbduXf7x\nH/8x11xzTebNm5fDDz88Rx99dL7whS/k9NNPz+23354lS5bkO9/5Tnbaaae85CUvybe+9a1ZeU9i\nhRcAAGAW2rhxY17/+tfnDW94Q7785S/nxhtvzBFHHJEXvvCFOfLIIzd73MqVKzN37ty84AUveHjs\nZS97WUZHR5MkH//4x3PAAQfk9ttvT5Jcfvnls7LsJr7DCwAAMCt9//vfz+23354PfOADmTt3bp73\nvOflHe94R770pS897nH33ntv9thjj0eNzZ8/P/fcc0+SZOedd84tt9yS8fHxzJkzJ4cffnjf3kO/\nKbwAAACz0A033JCbb745e+6558P/Tj/99Nx2222Pe9zuu++eu++++1Fjd911V+bPn58k+fM///O8\n4AUvyJFHHplf+7VfyxlnnNG399BvljQDAADMQs95znPyvOc9LytXrtyi4w488MA8+OCDuf766x9e\n1nzVVVflpS99aZKJQvyxj30sH/vYx3LNNdfkNa95TX7zN38zr3nNa7b5e+g3M7wAAACz0KGHHpr5\n8+fnox/9aO6777489NBD+fGPf5wf/OAHSZL169dnw4YNSZL7778/999/f5Jkt912yx/90R/lQx/6\nUH75y1/m29/+dr72ta/luOOOS5J8/etfz/XXX5/WWvbYY4/MmTMnc+bMGcyb3EoKLwAAwCy00047\n5Z/+6Z9y5ZVX5vnPf36e9axn5V3velfuvvvujI+PZ968eXnpS1+aqsquu+6aF7/4xQ8f++lPfzr3\n3Xdfnv3sZ+dtb3tbzjrrrIefv+666/La17428+fPz2//9m/n3e9+d1796lcP6m1uFffhBQAA2IzZ\neh/e2Wxb3odX4QUAANiMzZUv+mdbFl5LmgEAAOgkhRcAAIBOUngBAADoJIUXAACATlJ4AQAA6CSF\nFwAAgE5SeAEAAOgkhRcAAIBOUngBAACYlg9+8IM56KCD8pSnPCVLly7d5Pnzzjsvz33uc7P77rvn\nDW94Q+68884BpHxEtdYGGmBbqqrWpfcDAAAMVlXlsR3j5JNHsnZt/15zaChZtmykfy+wFc4999w8\n+9nPzllnnZVXvOIV+dCHPvTwc9dcc01+67d+KxdffHEOPvjgvOtd78rGjRtz/vnnb9FrTPU7nzRe\nW3KuuVv0ygAAADu4tWuTBQtG+nb+8fHpnXvBggU56aSTcu655+aGG27I4sWLc8455+SpT31q/vZv\n/zYf/ehHc8cdd+RVr3pVzjrrrOyzzz5Jkp122ilnnnlmPv7xj2fNmjV561vfmr/5m795+Lyf+9zn\n8rGPfSy33nprDj300HzmM5/Jc57znCTJ29/+9iTJF7/4xU1K6Re/+MUcddRRedWrXpUk+fCHP5wX\nv/jFWbduXXbbbbecffbZ+fCHP5w1a9bkmc98Zv7yL/8yf/Inf7K1v67HZUkzAADALFRVufDCC/ON\nb3wjP/vZz/KjH/0oZ599dv7lX/4l73//+3PhhRfmlltuyXOf+9y85S1vedSxX//61/ODH/wgP/rR\nj3LBBRfkG9/4RpLkq1/9ak4//fR85Stfye23357f+Z3fybHHHjutPCtWrMjLXvayhx8///nPz1Of\n+tSsXLky69aty3vf+95ccsklufvuu/Pd7343L3/5y7fdL2MzFF4AAIBZ6j3veU/23nvv7Lnnnnn9\n61+fK6+8Muedd15OOOGEvPzlL8/OO++c008/Pd/97nfz85///OHjTjnllOyxxx454IAD8ru/+7u5\n6qqrkiRnnXVWTj311LzwhS/MTjvtlFNPPTVXXnllbrzxxifMcu+99+ZpT3vao8b22GOP3HPPPUkm\nZpavvvrq3Hfffdlrr72yaNGibfibmJrCCwAAMEvtvffeD2/Pmzcv9957b26++eaHlyAnyW677ZZn\nPOMZWbVq1eMelyQ33HBD3vve92bPPffMnnvumWc84xlJ8qhjN2f33XfPXXfd9aixu+66K/Pnz89u\nu+2WL3/5yznrrLOy77775nWve11++tOfPrk3vQUUXgAAgA7Zd999c8MNNzz8eN26dfnFL36R/fbb\n7wmPfc5znpPPfOYzufPOOx/+t27durzyla/cZN+qR18/6iUvecnDM8VJ8p//+Z/ZsGFDDjzwwCTJ\nkUcemUsvvTS33nprXvSiF+Wd73znk32L06bwAgAAdMCvLiJ17LHH5vOf/3yuuuqq3H///Xn/+9+f\n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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f5649c93390>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"e_sum = pd.Series(e10s[\"payload/histograms/GECKO_THREAD_ACTIVITY_MS\"].map(lambda h: h[h.index >= 128].sum()))\n",
"n_sum = pd.Series(none10s[\"payload/histograms/GECKO_THREAD_ACTIVITY_MS\"].map(lambda h: h[h.index >= 128].sum()))\n",
"pd.DataFrame({\"e10s\": np.log2(e_sum[e_sum > 1]), \"none10s\": np.log2(n_sum[n_sum > 1])}).plot(kind=\"hist\", alpha=0.5, bins=20, color=[\"green\", \"blue\"])"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"count 38958.000000\n",
"mean 174.386647\n",
"std 2011.598749\n",
"min 0.000000\n",
"25% 15.000000\n",
"50% 33.000000\n",
"75% 95.000000\n",
"90% 284.000000\n",
"95% 570.150000\n",
"max 343402.000000\n",
"Name: payload/histograms/GECKO_THREAD_ACTIVITY_MS, dtype: float64"
]
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"e_sum.describe(percentiles=[0.25, 0.5, 0.75, 0.90, 0.95])"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"count 41211.000000\n",
"mean 865.592948\n",
"std 2951.057977\n",
"min 0.000000\n",
"25% 34.000000\n",
"50% 141.000000\n",
"75% 597.000000\n",
"90% 1942.000000\n",
"95% 3796.500000\n",
"max 176216.000000\n",
"Name: payload/histograms/GECKO_THREAD_ACTIVITY_MS, dtype: float64"
]
},
"execution_count": 23,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"n_sum.describe(percentiles=[0.25, 0.5, 0.75, 0.90, 0.95])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now, without addons:"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7f5649d22590>"
]
},
"execution_count": 24,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\nzB/8wR/kk5/8ZCdZTRUGAADo2PDwcM4777wceeSRGRoaykknnZRNmzYlSf7mb/4mT3/607Pffvvl\nhBNOyK233rrluN122y1//dd/ncMOOyxLlizJm9/85gc97wUXXJAjjjgij3/843P88cfnhz/84Zb7\nXvOa1+T444/PPvvsk9bag477xCc+kVe84hV5wQtekL322itnn312PvOZz2Tjxo1JkgsvvDBPfepT\ns+++++bQQw/NxRdfPKhvzdT7HOizAwAA8JCqKpdeemm+/OUv54Ybbsi3vvWtXHjhhfmXf/mXvP3t\nb8+ll16aW2+9Nb/4i7+Yk0466UHHfuELX8jXv/71fOtb38qnP/3pfPnLX06SfO5zn8s555yTz372\ns7njjjvy67/+6zn55JNnlef666/PkUceueX2oYceml/4hV/ImjVrsnHjxpx++un50pe+lJ/+9Kf5\nyle+kqOOOmrnfTO2Q3EFAADogbe+9a058MADs2TJkrz85S/P6tWrc/HFF+fUU0/NUUcdld133z3n\nnHNOvvKVrzxo5PSMM87Ivvvum4MOOigvetGLcs011yRJzj///Jx55pl5xjOekd122y1nnnlmVq9e\nnZtuuukhs2zYsCGPe9zjHrRv3333zd13351kaqT32muvzT333JMDDjggRxxxxE78Tvw8xRUAAKAH\nDjzwwC3be+65ZzZs2JBbbrklBx988Jb9e+21V/bbb7/86Ec/2uFxSXLjjTfm9NNPz5IlS7JkyZLs\nt99+SfKgY2ey995756677nrQvrvuuiv77LNP9tprr1xyySU5//zz86QnPSkve9nL8r3vfe+RvelZ\nUlwBAAB66klPelJuvPHGLbc3btyYO++8M09+8pMf8tiDDz44H/7wh/OTn/xky9fGjRtz9NFH/9xj\nt12c6VnPetaWkdsk+Y//+I9s3rw5hx12WJLkuOOOy+WXX57bbrsthx9+eN7whjc80rc4K4orAABA\nzzywWNLJJ5+cj370o7nmmmuyadOmvP3tb8/RRx/9oFHYbY974Ng3velNee9735vrr78+ydSI6aWX\nXrrlsffdd18mJiZy//335957783ExEQmJyeTJK961aty2WWX5corr8zGjRvzzne+MyeeeGL22muv\n3H777fnc5z6XjRs35jGPeUz22muvLFq0aJDfDpfDAQAAFq6hocFesmZo6JEdV1Wpqvzmb/5mzj77\n7Jx44on5yU9+kmOOOSaf+tSnHvS47R2XJEuXLs2GDRty0kkn5cYbb8zjHve4HHfccfnt3/7tJMnr\nX//6fOxjH9ty7Hve855ceOGFec1rXpMjjjgi559/fl71qldtuY7rRz/60STJ5ORkPvCBD+SUU05J\nVeU5z3lOPvShDz2yNzrb78e2yx73QVW1PuaCnWXZ8mUZXjrcdYwZffztH8+r3/vqrmPMqO/5xleO\n58IVF3YdAwDYRlX93GVfGKyZvufT+2s7h2yXqcIAAAD0muIKAABArymuAAAA9JriCgAAQK8prgAA\nAPSa4goAAECvuY4rAACwYGx73VPmB8UVAABYEFzDdf4yVRgAAIBeU1wBAADotYEV16rao6q+WlWr\nq+q6qhqd3v/4qrqiqtZU1eVVNTSoDAAAAMx/AyuurbWJJC9qrR2V5Kgkx1fVryU5I8kVrbXDkvzz\n9G0AAADYroFOFW6t/Wx6c/ckj0nSkrwiyUXT+y9KsnSQGQAAAJjfBlpcq2q3qlqdZG2Sy1trq5Ic\n0FpbO/2QtUkOGGQGAAAA5reBXg6ntTaZ5KiqelySz1bVs7e5v1XVdtekHh0d3bI9MjKSkZGRASYF\nAABgUMbGxjI2NvaIj5+T67i21u6qqn9N8j+SrK2qA1trt1XVE5Pcvr1jti6uAAAAzF/bDkaeddZZ\nD+v4Qa4q/IQHVgyuqscmeUmS7yT5fJJTph92SpKVg8oAAADA/DfIEdcnJrmoqhZlqiBf0lr7YlVd\nleTTVXVqkvEkvzPADAAAAMxzAyuurbVrkzx3O/t/nOTFg3pdAAAAdi0DXVUYAAAAHi3FFQAAgF5T\nXAEAAOg1xRUAAIBeU1wBAADoNcUVAACAXlNcAQAA6DXFFQAAgF5TXAEAAOg1xRUAAIBeU1wBAADo\nNcUVAACAXlNcAQAA6DXFFQAAgF5TXAEAAOg1xRUAAIBeU1wBAADoNcUVAACAXlNcAQAA6DXFFQAA\ngF5TXAEAAOg1xRUAAIBeU1wBAADoNcUVAACAXlNcAQAA6DXFFQAAgF5TXAEAAOg1xRUAAIBeU1wB\nAADoNcUVAACAXlNcAQAA6DXFFQAAgF5TXAEAAOg1xRUAAIBeU1wBAADoNcUVAACAXlNcAQAA6DXF\nFQAAgF5TXAEAAOg1xRUAAIBeU1wBAADoNcUVAACAXlNcAQAA6DXFFQAAgF5TXAEAAOg1xRUAAIBe\nU1wBAADotYEV16o6qKr+taq+XVXXVdVbp/ePVtXNVXX19Nfxg8oAAADA/Ld4gM99b5I/bK2trqq9\nk3yjqq5I0pK8v7X2/gG+NgAAALuIgRXX1tptSW6b3t5QVd9J8uTpu2tQrwsAAMCuZU4+41pVw0me\nk+Sq6V1vqaprquojVTU0FxkAAACYnwY5VThJMj1N+O+TnD498vqhJP9r+u6zk5yX5NRtjxsdHd2y\nPTIykpGRkUFHBQAAYADGxsYyNjb2iI8faHGtqsck+YckH2+trUyS1trtW93/t0ku296xWxdXAAAA\n5q9tByPPOuush3X8IFcVriQfSXJ9a23FVvufuNXDXpnk2kFlAAAAYP4b5IjrMUleneRbVXX19L63\nJzm5qo7K1OrCNyT5/QFmAAAAYJ4b5KrCV2b7I7r/36BeEwAAgF3PnKwqDAAAAI+U4goAAECvKa4A\nAAD0muIKAABArymuAAAA9JriCgAAQK8prgAAAPSa4goAAECvKa4AAAD0muIKAABArymuAAAA9Jri\nCgAAQK8prgAAAPSa4goAAECvKa4AAAD0muIKAABArymuAAAA9JriCgAAQK8prgAAAPSa4goAAECv\nKa4AAAD0muIKAABArymuAAAA9JriCgAAQK8prgAAAPSa4goAAECvKa4AAAD0muIKAABAry3uOgAM\nwvIzlmf9xPquY8xo1TdWZXjpcNcxZrTuhnuz8tzVXceY0bob7u06AkBnli8fzfr+/heXoaFkxYrR\nrmMAuxjFlV3S+on1vS6GV666susIOzR5374ZOnB51zFmNPmNt3QdAaAz69cnw8OjXceY0fj4aNcR\ngF2QqcIAAAD0muIKAABArymuAAAA9JriCgAAQK8prgAAAPSa4goAAECvKa4AAAD0muIKAABArymu\nAAAA9JriCgAAQK8prgAAAPSa4goAAECvKa4AAAD0muIKAABArymuAAAA9JriCgAAQK8prgAAAPTa\nwIprVR1UVf9aVd+uquuq6q3T+x9fVVdU1ZqquryqhgaVAQAAgPlvkCOu9yb5w9bas5IcneS0qnpm\nkjOSXNFaOyzJP0/fBgAAgO0aWHFtrd3WWls9vb0hyXeSPDnJK5JcNP2wi5IsHVQGAAAA5r85+Yxr\nVQ0neU6SryY5oLW2dvqutUkOmIsMAAAAzE+LB/0CVbV3kn9Icnpr7e6q2nJfa61VVdvecaOjo1u2\n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\no/Hx0a4jbJepwgAAAPSa4goAAECvKa4AAAD0muIKAABArymuAAAA9JriCgAAQK8prgAAAPSa4goA\nAECvKa41c2MeAAAGR0lEQVQAAAD02uKuA/BgX/3qV/P/nHluNt/XdZKZrb3je1m2dLjrGAAAwAKh\nuPbMPffck1vv3DePf+oruo6yXZt/9tPc9sP3ZOW5q7uOskMTGya7jgAA9NDExERWfmll1zFmtO6O\ndV1HmPdWrboqy5aNdh1jRqtWrc7wcNcp5h/FtYd2W/SY7Lnvfl3H2K6qSpvcJ0MHLu86yg61yX7n\nAwC60dIydPhQ1zFmNPkdv3x/tDZv3iPDw6Ndx5jRlVcu7TrCvOQzrgAAAPSa4goAAECvKa4AAAD0\nmuIKAABArymuAAAA9FonxbWqjq+q71bV96vqj7vIQH+tv63fl9phsJz/hcu5X9ic/4XLuV/YxsfH\nuo7APDHnxbWqFiX530mOT3JEkpOr6plznYP+8h/Ywub8L1zO/cLm/C9czv3CprgyW12MuD4/yQ9a\na+OttXuTfCrJCR3kAAAAYB5Y3MFrPjnJTVvdvjnJr3WQo7fu37w2t1x7Sdcxtmvy/nuTal3HAAAA\nFpBqbW5LSFWdmOT41tobpm+/OsmvtdbestVjNCMAAIBdWGutZvvYLkZcf5TkoK1uH5SpUdctHs4b\nAAAAYNfWxWdcv57k6VU1XFW7J/ndJJ/vIAcAAADzwJyPuLbW7quqNyf5cpJFST7SWvvOXOcAAABg\nfpjzz7gCAADAw9HFVOEdqqrjq+q7VfX9qvrjrvMwd6rqoKr616r6dlVdV1Vv7ToTc6uqFlXV1VV1\nWddZmFtVNVRVf19V36mq66vq6K4zMTeq6g+n/82/tqourqpf6DoTg1NVF1TV2qq6dqt9j6+qK6pq\nTVVdXlVDXWZkMGY4938x/e/+NVX1map6XJcZGZztnf+t7ntbVU1W1eN39By9Kq5VtSjJ/05yfJIj\nkpxcVc/sNhVz6N4kf9hae1aSo5Oc5vwvOKcnuT6JqSALz18m+WJr7ZlJfjmJj5AsAFX15CRvSfK8\n1tovZeojRCd1m4oB+2imfs7b2hlJrmitHZbkn6dvs+vZ3rm/PMmzWmtHJlmT5Mw5T8Vc2d75T1Ud\nlOQlSW58qCfoVXFN8vwkP2itjbfW7k3yqSQndJyJOdJau621tnp6e0OmfnB9UrepmCtV9ZQk/1eS\nv01iZfEFZPo37L/eWrsgmVoLobV2V8exmDuLk+xZVYuT7Jmpqw+wi2qt/XuSn2yz+xVJLprevijJ\n0jkNxZzY3rlvrV3RWpucvvnVJE+Z82DMiRn+7ifJ+5P8z9k8R9+K65OT3LTV7Zun97HAVNVwkudk\n6h8xFoYPJPmjJJMP9UB2OYckWVdVH62qb1bV31TVnl2HYvBaaz9Kcl6SHya5Jcn61to/dZuKDhzQ\nWls7vb02yQFdhqEzr0vyxa5DMHeq6oQkN7fWvjWbx/etuJoeSKpq7yR/n+T06ZFXdnFV9bIkt7fW\nro7R1oVocZLnJvlga+25STbGVMEFoaqWZGq0bThTM2z2rqpXdRqKTrWpVUP9PLjAVNWfJNncWru4\n6yzMjelfUL89ybu23r2jY/pWXH+U5KCtbh+UqVFXFoiqekySf0jy8dbayq7zMGf+e5JXVNUNST6Z\n5Niq+ljHmZg7N2fqN65fm77995kqsuz6Xpzkhtbana21+5J8JlP/HrCwrK2qA5Okqp6Y5PaO8zCH\nqmpZpj4q5JdWC8tTM/VLy2umf/57SpJvVNX+Mx3Qt+L69SRPr6rhqto9ye8m+XzHmZgjVVVJPpLk\n+tbaiq7zMHdaa29vrR3UWjskUwuz/Etr7TVd52JutNZuS3JTVR02vevFSb7dYSTmzo1Jjq6qx07/\nH/DiTC3QxsLy+SSnTG+fksQvrheIqjo+Ux8TOqG1NtF1HuZOa+3a1toBrbVDpn/+uznJc1trM/7i\nqlfFdfq3rW9O8uVM/cd1SWvNypILxzFJXp3kRdOXRLl6+h80Fh7TxBaetyT5RFVdk6lVhd/bcR7m\nQGttVaZG2L+Z5IHPOH24u0QMWlV9Msn/SfKMqrqpql6b5NwkL6mqNUmOnb7NLmY75/51Sf4qyd5J\nrpj+ue+DnYZkYLY6/4dt9Xd/aw/5s19NfZQAAAAA+qlXI64AAACwLcUVAACAXlNcAQAA6DXFFQAA\ngF5TXAEAAOg1xRUAAIBeU1wBAADotf8fyif4MFKM1Y0AAAAASUVORK5CYII=\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f5649d32910>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"subset = subset.filter(lambda p: len(p[\"environment\"][\"addons\"][\"activeAddons\"]) == 0)\n",
"props = get_pings_properties(subset.flatMap(get_activity), [\"clientId\", \"e10s\", histogram], additional_histograms=histograms)\n",
"frame = pd.DataFrame(props.collect())\n",
" \n",
"e10s = frame[frame[\"e10s\"] == True]\n",
"none10s = frame[frame[\"e10s\"] == False]\n",
"\n",
"e_sum = pd.Series(e10s[\"payload/histograms/GECKO_THREAD_ACTIVITY_MS\"].map(lambda h: h[h.index >= 128].sum()))\n",
"n_sum = pd.Series(none10s[\"payload/histograms/GECKO_THREAD_ACTIVITY_MS\"].map(lambda h: h[h.index >= 128].sum()))\n",
"pd.DataFrame({\"e10s\": np.log2(e_sum[e_sum > 1]), \"none10s\": np.log2(n_sum[n_sum > 1])}).plot(kind=\"hist\", alpha=0.5, bins=20, color=[\"green\", \"blue\"])"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 2",
"language": "python",
"name": "python2"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 2
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython2",
"version": "2.7.10"
}
},
"nbformat": 4,
"nbformat_minor": 0
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment