sysprof: filter the callgraph by the selected time span

This ensures the callgraph code has fewer items to look at. The first level
of filtering is done by the SysprofDocument bitset index for items
matching the type (via SysprofDocumentBitsetIndex). Then the new
SysprofTimeFilterModel filters the frames by time-span by binary searching
for the first and last indexes which match that time span, avoiding the
pathological case of linear search for the spans (which would inflate a
GObject for every element).
This commit is contained in:
Christian Hergert
2023-07-13 11:16:14 -07:00
parent f147cc6be0
commit 730f8f4d66

View File

@ -88,13 +88,22 @@
<lookup name="session">SysprofSamplesSection</lookup>
</lookup>
</binding>
<binding name="model">
<lookup name="samples" type="SysprofDocument">
<lookup name="document" type="SysprofSession">
<lookup name="session">SysprofSamplesSection</lookup>
</lookup>
</lookup>
</binding>
<property name="model">
<object class="SysprofTimeFilterModel">
<binding name="time-span">
<lookup name="selected-time" type="SysprofSession">
<lookup name="session">SysprofSamplesSection</lookup>
</lookup>
</binding>
<binding name="model">
<lookup name="samples" type="SysprofDocument">
<lookup name="document" type="SysprofSession">
<lookup name="session">SysprofSamplesSection</lookup>
</lookup>
</lookup>
</binding>
</object>
</property>
</object>
</property>
</object>