Update memory_usage notebook
This commit is contained in:
parent
90cbfbfe40
commit
bd37b4aa0f
1 changed files with 30 additions and 15 deletions
|
@ -13,7 +13,7 @@
|
||||||
"# (wait a few seconds, then kill with Ctrl+C)\n",
|
"# (wait a few seconds, then kill with Ctrl+C)\n",
|
||||||
"# AND\n",
|
"# AND\n",
|
||||||
"# Convert trace data:\n",
|
"# Convert trace data:\n",
|
||||||
"# $ ros2 trace-analysis convert ~/.ros/tracing/memory-usage/ust"
|
"# $ ros2 trace-analysis convert ~/.ros/tracing/memory-usage"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -22,7 +22,7 @@
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"outputs": [],
|
"outputs": [],
|
||||||
"source": [
|
"source": [
|
||||||
"converted_file_path = '~/.ros/tracing/memory-usage/ust/converted'"
|
"converted_file_path = '~/.ros/tracing/memory-usage/converted'"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -43,7 +43,6 @@
|
||||||
"from bokeh.plotting import figure\n",
|
"from bokeh.plotting import figure\n",
|
||||||
"from bokeh.plotting import output_notebook\n",
|
"from bokeh.plotting import output_notebook\n",
|
||||||
"from bokeh.io import show\n",
|
"from bokeh.io import show\n",
|
||||||
"from bokeh.layouts import row\n",
|
|
||||||
"from bokeh.models import ColumnDataSource\n",
|
"from bokeh.models import ColumnDataSource\n",
|
||||||
"from bokeh.models import DatetimeTickFormatter\n",
|
"from bokeh.models import DatetimeTickFormatter\n",
|
||||||
"from bokeh.models import NumeralTickFormatter\n",
|
"from bokeh.models import NumeralTickFormatter\n",
|
||||||
|
@ -52,7 +51,8 @@
|
||||||
"\n",
|
"\n",
|
||||||
"from tracetools_analysis.loading import load_file\n",
|
"from tracetools_analysis.loading import load_file\n",
|
||||||
"from tracetools_analysis.processor import Processor\n",
|
"from tracetools_analysis.processor import Processor\n",
|
||||||
"from tracetools_analysis.processor.memory_usage import MemoryUsageHandler\n",
|
"from tracetools_analysis.processor.memory_usage import KernelMemoryUsageHandler\n",
|
||||||
|
"from tracetools_analysis.processor.memory_usage import UserspaceMemoryUsageHandler\n",
|
||||||
"from tracetools_analysis.processor.ros2 import Ros2Handler\n",
|
"from tracetools_analysis.processor.ros2 import Ros2Handler\n",
|
||||||
"from tracetools_analysis.utils.memory_usage import MemoryUsageDataModelUtil\n",
|
"from tracetools_analysis.utils.memory_usage import MemoryUsageDataModelUtil\n",
|
||||||
"from tracetools_analysis.utils.ros2 import Ros2DataModelUtil"
|
"from tracetools_analysis.utils.ros2 import Ros2DataModelUtil"
|
||||||
|
@ -66,9 +66,10 @@
|
||||||
"source": [
|
"source": [
|
||||||
"# Process\n",
|
"# Process\n",
|
||||||
"events = load_file(converted_file_path)\n",
|
"events = load_file(converted_file_path)\n",
|
||||||
"memory_handler = MemoryUsageHandler()\n",
|
"ust_memory_handler = UserspaceMemoryUsageHandler()\n",
|
||||||
|
"kernel_memory_handler = KernelMemoryUsageHandler()\n",
|
||||||
"ros2_handler = Ros2Handler()\n",
|
"ros2_handler = Ros2Handler()\n",
|
||||||
"Processor(memory_handler, ros2_handler).process(events)"
|
"Processor(ust_memory_handler, kernel_memory_handler, ros2_handler).process(events)"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -77,7 +78,10 @@
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"outputs": [],
|
"outputs": [],
|
||||||
"source": [
|
"source": [
|
||||||
"memory_data_util = MemoryUsageDataModelUtil(memory_handler.data)\n",
|
"memory_data_util = MemoryUsageDataModelUtil(\n",
|
||||||
|
" userspace=ust_memory_handler.data,\n",
|
||||||
|
" kernel=kernel_memory_handler.data,\n",
|
||||||
|
")\n",
|
||||||
"ros2_data_util = Ros2DataModelUtil(ros2_handler.data)\n",
|
"ros2_data_util = Ros2DataModelUtil(ros2_handler.data)\n",
|
||||||
"\n",
|
"\n",
|
||||||
"output_notebook()\n",
|
"output_notebook()\n",
|
||||||
|
@ -91,31 +95,42 @@
|
||||||
"outputs": [],
|
"outputs": [],
|
||||||
"source": [
|
"source": [
|
||||||
"# Plot memory usage\n",
|
"# Plot memory usage\n",
|
||||||
"memory_usage_dfs = memory_data_util.get_absolute_memory_usage_by_tid()\n",
|
"ust_memory_usage_dfs = memory_data_util.get_absolute_userspace_memory_usage_by_tid()\n",
|
||||||
|
"kernel_memory_usage_dfs = memory_data_util.get_absolute_kernel_memory_usage_by_tid()\n",
|
||||||
"tids = ros2_data_util.get_tids()\n",
|
"tids = ros2_data_util.get_tids()\n",
|
||||||
"\n",
|
"\n",
|
||||||
"colours = viridis(len(tids) + 1)\n",
|
"colours = viridis(len(tids) + 1)\n",
|
||||||
"first_tid = min(tids)\n",
|
"first_tid = min(tids)\n",
|
||||||
"starttime = memory_usage_dfs[first_tid].loc[:, 'timestamp'].iloc[0].strftime('%Y-%m-%d %H:%M')\n",
|
"starttime = ust_memory_usage_dfs[first_tid].loc[:, 'timestamp'].iloc[0].strftime('%Y-%m-%d %H:%M')\n",
|
||||||
"memory = figure(\n",
|
"memory = figure(\n",
|
||||||
" title='Userspace memory usage per thread/node',\n",
|
" title='Memory usage per thread/node',\n",
|
||||||
" x_axis_label=f'time ({starttime})',\n",
|
" x_axis_label=f'time ({starttime})',\n",
|
||||||
" y_axis_label='memory usage',\n",
|
" y_axis_label='memory usage',\n",
|
||||||
" plot_width=psize, plot_height=psize,\n",
|
" plot_width=psize, plot_height=psize,\n",
|
||||||
")\n",
|
")\n",
|
||||||
"\n",
|
"\n",
|
||||||
"i_colour = 0\n",
|
"i_colour = 0\n",
|
||||||
"for tid, memory_usage_df in memory_usage_dfs.items():\n",
|
"for tid in tids:\n",
|
||||||
" if tid not in tids:\n",
|
" legend = str(tid) + ' ' + str(ros2_data_util.get_node_names_from_tid(tid))\n",
|
||||||
" continue\n",
|
" # Userspace\n",
|
||||||
" memory.line(\n",
|
" memory.line(\n",
|
||||||
" x='timestamp',\n",
|
" x='timestamp',\n",
|
||||||
" y='memory_usage',\n",
|
" y='memory_usage',\n",
|
||||||
" legend=str(tid) + ' ' + str(ros2_data_util.get_node_names_from_tid(tid)),\n",
|
" legend=legend + ' (ust)',\n",
|
||||||
" line_width=2,\n",
|
" line_width=2,\n",
|
||||||
" source=ColumnDataSource(memory_usage_df),\n",
|
" source=ColumnDataSource(ust_memory_usage_dfs[tid]),\n",
|
||||||
" line_color=colours[i_colour],\n",
|
" line_color=colours[i_colour],\n",
|
||||||
" )\n",
|
" )\n",
|
||||||
|
" # Kernel\n",
|
||||||
|
" memory.line(\n",
|
||||||
|
" x='timestamp',\n",
|
||||||
|
" y='memory_usage',\n",
|
||||||
|
" legend=legend + ' (kernel)',\n",
|
||||||
|
" line_width=2,\n",
|
||||||
|
" source=ColumnDataSource(kernel_memory_usage_dfs[tid]),\n",
|
||||||
|
" line_color=colours[i_colour],\n",
|
||||||
|
" line_dash='dotted',\n",
|
||||||
|
" )\n",
|
||||||
" i_colour += 1\n",
|
" i_colour += 1\n",
|
||||||
"\n",
|
"\n",
|
||||||
"memory.title.align = 'center'\n",
|
"memory.title.align = 'center'\n",
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue