Commit Graph

7601 Commits

Author SHA1 Message Date
Terence Rokop
9366e58d12
Introduce "Non-reentrant time" radio button
Add to the statistics view an option for "Non-reentrant
time", which displays the count of and time spent in zone
events which were the only appearances (at that time) of
their zones on their threads' stacks.

Besides the GUI changes, this involves:

- Introducing a tri-state accumulation mode to replace the
boolean "self time":  now there's "Self time only",
"Child time", and "Non-reentrant time".

- Removing the separate "selfTotal" from SrcLocZonesSlim,
making "total" represent whichever of the now three options
is active, which in turn requires keeping track of the
accumulation mode in StatisticsCache and invalidating that
cache when the accumulation mode changes.
2021-06-20 17:56:15 -07:00
Terence Rokop
66053e37f7
Add non-reentrant stats to SourceLocationZones
Extend SourceLocationZones with fields to track the count
and time of non-reentrant zone events -- that is, zone
events which were the only appearances (at the time) of
those zones on their threads' stacks.
2021-06-20 17:56:15 -07:00
Terence Rokop
c90e39e06e
Keep track of zone appearances on thread stacks
Start keeping track, using the previously-introduced
SrcLocCountMap, of the number of appearances of each zone
on each thread's stack at a given time.
2021-06-20 17:56:15 -07:00
Terence Rokop
1f0b4656f4
Introduce SrcLocCountMap
Add to ThreadData a map from source location to a counter,
which will be used to keep track of the number of
appearances of zones with the corresponding source locations
on each thread's stack.
2021-06-20 17:56:14 -07:00
Terence Rokop
0a8ec09566
Introduce View::IsZoneReentry()
These two methods can search a timeline to determine whether
a given ZoneEvent is the only appearance of the given zone
on the current thread stack, or a re-entry.
2021-06-20 17:53:38 -07:00
Bartosz Taudul
32b1e8dcb0
No kernel symbol on macos. 2021-06-20 19:35:05 +02:00
Bartosz Taudul
759dd39f77
Update manual. 2021-06-20 19:18:36 +02:00
Bartosz Taudul
0e0692b7f7
Don't display hw samples as time in selected lines summary. 2021-06-20 16:01:19 +02:00
Bartosz Taudul
e9aca02880
Make hw sample cost in source files relative to whole symbol. 2021-06-20 15:55:21 +02:00
Bartosz Taudul
846bde1a11
Narrow down search range. 2021-06-20 14:37:56 +02:00
Bartosz Taudul
15b42039bd
Add very early exit test. 2021-06-20 14:34:47 +02:00
Bartosz Taudul
d4b92e0fbe
Add early exit conditions. 2021-06-20 14:33:08 +02:00
Bartosz Taudul
a10d71b766
Switch loop order for better cache locality on the slow path. 2021-06-20 14:30:55 +02:00
Bartosz Taudul
a9a16b4d94
Narrow down search region. 2021-06-20 14:24:42 +02:00
Bartosz Taudul
22352dd29b
Select optimized path before entering loop. 2021-06-20 14:22:14 +02:00
Bartosz Taudul
5d86002f82
Calculate all CPU usage values in one go. 2021-06-20 14:19:18 +02:00
Bartosz Taudul
5efc03cdf9
Move cycles up in cost combo selector. 2021-06-20 12:50:13 +02:00
Bartosz Taudul
c445c3805c
Merge remote-tracking branch 'origin/master' into hw 2021-06-20 11:13:02 +02:00
Bartosz Taudul
d90758e92d
Merge pull request #235 from avoroshilov/fix-compilation-warning
Fix compilation warning
2021-06-20 10:57:17 +02:00
Andrey Voroshilov
5670493757 Fix compilation warning 2021-06-19 23:26:03 -07:00
Bartosz Taudul
13c103065a
Update NEWS. 2021-06-20 01:17:38 +02:00
Bartosz Taudul
7e17c8643c
Don't show hw events as time. 2021-06-20 01:08:18 +02:00
Bartosz Taudul
bc4016e97c
Don't depend on callstack frames to match hw samples to source. 2021-06-20 01:01:29 +02:00
Bartosz Taudul
2f3ee594f0
Use square root to make slow branches and cache less spiky. 2021-06-20 00:50:14 +02:00
Bartosz Taudul
3305ea2775
Keep raw hw sample data visually separate. 2021-06-20 00:46:29 +02:00
Bartosz Taudul
07fe0a5447
Use enum for cost selection. 2021-06-20 00:45:39 +02:00
Bartosz Taudul
3cc69b221e
Select Zstd compression when Zstd level is changed. 2021-06-20 00:25:30 +02:00
Bartosz Taudul
80e1b0c2cf
Don't display hw samples as time in files list. 2021-06-20 00:14:19 +02:00
Bartosz Taudul
52708268fe
Store 64-bit integers in AddrStat. 2021-06-20 00:08:25 +02:00
Bartosz Taudul
4e6a1bae22
Don't display time for hw samples. 2021-06-20 00:04:08 +02:00
Bartosz Taudul
326a2a70d8
Add indirect hw statistics. 2021-06-20 00:01:37 +02:00
Bartosz Taudul
ad2b6e932b
Don't scroll cost combo list. 2021-06-20 00:01:21 +02:00
Bartosz Taudul
a5991036dc
Add more hw stats as cost. 2021-06-19 23:43:46 +02:00
Bartosz Taudul
c7b3d42852
Calculating cost in cycles and retirements. 2021-06-19 23:39:33 +02:00
Bartosz Taudul
90149641df
Reset cost selection when no samples. 2021-06-19 23:17:24 +02:00
Bartosz Taudul
8d52d2acfd
Disable inline context if no inline symbols available. 2021-06-19 21:40:30 +02:00
Bartosz Taudul
2e3241ba54
Restrict hardware samples to inline function context. 2021-06-19 20:50:06 +02:00
Bartosz Taudul
6cc844abee
Display inline symbol address. 2021-06-19 20:20:52 +02:00
Bartosz Taudul
cb63b35cb1
Update NEWS. 2021-06-19 20:14:39 +02:00
Bartosz Taudul
748c22df8e
Darken assembly instructions which aren't in current context. 2021-06-19 20:11:53 +02:00
Bartosz Taudul
53111f9dd9
Save/load code symbol map. 2021-06-19 19:58:16 +02:00
Bartosz Taudul
ee13d3fa44
Retrieve address of symbol, not first instruction in line. 2021-06-19 19:52:33 +02:00
Bartosz Taudul
8045ceee5d
Display function assigned to assembly line. 2021-06-19 19:52:33 +02:00
Bartosz Taudul
ec3ee09f09
Add inline symbols map accessors. 2021-06-19 19:13:34 +02:00
Bartosz Taudul
654331a8c8
Create code address -> symbol map. 2021-06-19 19:07:57 +02:00
Bartosz Taudul
fe7db6db4e
Send symbol address in code information message. 2021-06-19 19:07:56 +02:00
Bartosz Taudul
3ce2f6209a
Return symbol address in DecodeCodeAddress(). 2021-06-19 19:02:08 +02:00
Bartosz Taudul
cc0ca341bb
Add cost criteria selection UI. 2021-06-19 18:16:11 +02:00
Bartosz Taudul
7ad9cafefb
Add child call samples hints to the UI. 2021-06-19 17:41:29 +02:00
Bartosz Taudul
6e8d57bc98
Update context switches look. 2021-06-19 16:50:25 +02:00