Bartosz Taudul
f114ec3f80
Add code transfer from client to server.
2020-03-25 20:04:55 +01:00
Bartosz Taudul
3e0e120222
Add extra parameter to server queries.
2020-03-25 20:04:01 +01:00
Bartosz Taudul
c999a74d34
Symbol length transfer.
2020-03-25 18:32:36 +01:00
Bartosz Taudul
c603eaa1b6
Add symbol instruction pointers map accessor.
2020-03-25 01:08:29 +01:00
Bartosz Taudul
4068ab30e8
Build sampled instruction pointers map for symbols.
2020-03-24 23:54:30 +01:00
Bartosz Taudul
92e2597192
Fix ghost children times.
2020-03-19 00:35:18 +01:00
Bartosz Taudul
ac84e77333
Ghost zones display prototype.
2020-03-19 00:35:18 +01:00
Bartosz Taudul
adb45ed5df
Allow checking if ghost zones are ready.
2020-03-17 00:16:39 +01:00
Bartosz Taudul
b89874850f
Pack frame identifiers in ghost zones.
2020-03-16 23:05:07 +01:00
Bartosz Taudul
452341059b
Build ghost zones tree.
2020-03-16 23:05:06 +01:00
Bartosz Taudul
b8cc3f59d6
Count number of input and compressed frame image bytes.
2020-03-14 14:35:57 +01:00
Bartosz Taudul
e7240cb77d
Custom lock name transfer.
2020-03-08 13:47:38 +01:00
Bartosz Taudul
d25614d50f
Allow address/port retrieval from View.
2020-03-06 22:11:00 +01:00
Bartosz Taudul
aa0bf47ec3
Extract texture compression functionality.
2020-03-02 02:00:35 +01:00
Bartosz Taudul
d1ff99d6e3
Callstack frame map must not be touched by statistics.
2020-02-29 19:49:33 +01:00
Bartosz Taudul
8d5755521e
Fix no statistics build.
2020-02-29 19:31:51 +01:00
Bartosz Taudul
39361f71a1
Allow GetSymbolStats() to fail gracefully.
2020-02-29 18:59:01 +01:00
Bartosz Taudul
2589b45af0
Add accessors for new data.
2020-02-29 18:39:45 +01:00
Bartosz Taudul
90f5ae536c
Display count of parent call stacks and frames.
2020-02-29 16:32:33 +01:00
Bartosz Taudul
6cc4de8d28
Construct parent call stacks for sampled stack traces.
2020-02-29 16:24:15 +01:00
Bartosz Taudul
bdc86f5338
Process postponed samples when new frame data is available.
2020-02-29 14:12:04 +01:00
Bartosz Taudul
3412d2232f
Postpone processing incomplete sampled callstacks.
2020-02-29 13:45:50 +01:00
Bartosz Taudul
c5e8739435
Live update of sample statistics data.
2020-02-27 16:48:50 +01:00
Bartosz Taudul
8aa70211c0
Display inline functions.
2020-02-27 15:28:58 +01:00
Bartosz Taudul
7dd929a39e
Preserve symbol call location.
2020-02-27 15:07:29 +01:00
Bartosz Taudul
be5793987e
Don't send symbol name.
2020-02-27 12:49:48 +01:00
Bartosz Taudul
9d718eb1e8
Preserve inlined symbol names.
2020-02-27 12:39:05 +01:00
Bartosz Taudul
27466fc56b
Add callstack sampling statistics.
2020-02-27 02:08:20 +01:00
Bartosz Taudul
852e37c8dd
Calculate callstack sample data on trace load.
2020-02-27 01:22:36 +01:00
Bartosz Taudul
8288f7c6b7
No need to pack ZoneThreadData.
2020-02-27 01:00:41 +01:00
Bartosz Taudul
c99537c402
Provide default value for sourceLocationZonesReady.
2020-02-27 00:26:58 +01:00
Bartosz Taudul
75312c7bb6
Display count of symbols.
2020-02-26 23:02:39 +01:00
Bartosz Taudul
847069a59d
Expose symbol source location data.
2020-02-26 22:46:02 +01:00
Bartosz Taudul
26cee8acf0
Perform symbol information queries.
2020-02-26 22:35:15 +01:00
Bartosz Taudul
af58649113
Store symbol addresses.
2020-02-25 23:42:59 +01:00
Bartosz Taudul
ca894be51d
Store sampling period on server.
2020-02-25 23:13:28 +01:00
Bartosz Taudul
4273939cf5
Local threads must have at least one zone captured.
2020-02-22 18:52:38 +01:00
Bartosz Taudul
597911e5a8
Save/load callstack samples.
2020-02-22 18:52:38 +01:00
Bartosz Taudul
ca39c9877e
Display number of callstack samples.
2020-02-22 18:52:37 +01:00
Bartosz Taudul
437771ea85
Process callstack sample data.
2020-02-22 18:52:37 +01:00
Bartosz Taudul
ecc9369da2
Return zone extra during allocation.
2020-02-20 23:39:40 +01:00
Bartosz Taudul
4bf0af321f
Wrapper for allocation and retrieval of zone extra.
2020-02-20 23:37:55 +01:00
Bartosz Taudul
8e825d91e0
Keep refTime in a register.
2020-02-12 20:59:36 +01:00
Bartosz Taudul
e88df069bd
Load zone child number along with zone data.
2020-02-12 02:14:21 +01:00
Bartosz Taudul
53e5eb749d
Compress frame images using zstd.
...
Memory usage and trace load times:
!comp 587 MB, 439 ms -> 541 MB, 523 ms (92%, 119%)
android-vk 197 MB, 136 ms -> 188 MB, 178 ms (95%, 130%)
big2 4463 MB, 2.93 s -> 4198 MB, 3.65 s (94%, 124%)
fi 483 MB, 346 ms -> 416 MB, 409 ms (86%, 118%)
fi-big 3307 MB, 3.15 s -> 2985 MB, 3.53 s (90%, 112%)
large 19.74 GB, 10.05 s -> 19.28 GB, 11.16 s (97%, 110%)
2020-02-09 21:22:12 +01:00
Bartosz Taudul
7425cd7112
Also display non-user plot data count.
2020-02-05 23:41:53 +01:00
Bartosz Taudul
022528bb47
Use Martin Ankerl's robin hood unordered map.
...
ska::flat_hash_map has bugs and its development is dead.
2020-01-28 21:49:36 +01:00
Bartosz Taudul
1915a9e5f6
Display extra zone data count.
2020-01-26 17:28:37 +01:00
Bartosz Taudul
3e45e4abd9
Store zone children counts as uint32, not uint64.
...
This, along with the previous change has the following effect on trace
file sizes:
old/0.tracy (0.6.2) {6512 KB} -> new/0.tracy (0.6.3) {6518 KB} 100.10% size change
old/android.tracy (0.6.2) {488901 KB} -> new/android.tracy (0.6.3) {489710 KB} 100.17% size change
old/android-vk.tracy (0.6.2) {78049 KB} -> new/android-vk.tracy (0.6.3) {76570 KB} 98.10% size change
old/asset-new.tracy (0.6.2) {74224 KB} -> new/asset-new.tracy (0.6.3) {74181 KB} 99.94% size change
old/asset-new-id.tracy (0.6.2) {79900 KB} -> new/asset-new-id.tracy (0.6.3) {79875 KB} 99.97% size change
old/asset-old.tracy (0.6.2) {76245 KB} -> new/asset-old.tracy (0.6.3) {76420 KB} 100.23% size change
old/big.tracy (0.6.2) {922594 KB} -> new/big.tracy (0.6.3) {860068 KB} 93.22% size change
old/big2.tracy (0.6.2) {2028646 KB} -> new/big2.tracy (0.6.3) {1990121 KB} 98.10% size change
old/callstack.tracy (0.6.2) {14343 KB} -> new/callstack.tracy (0.6.3) {17707 KB} 123.45% size change
old/callstack-bsd.tracy (0.6.2) {14551 KB} -> new/callstack-bsd.tracy (0.6.3) {12652 KB} 86.94% size change
old/callstack-linux.tracy (0.6.2) {6953 KB} -> new/callstack-linux.tracy (0.6.3) {7012 KB} 100.86% size change
old/callstack-lua.tracy (0.6.2) {20439 KB} -> new/callstack-lua.tracy (0.6.3) {25889 KB} 126.66% size change
old/chicken.tracy (0.6.2) {311549 KB} -> new/chicken.tracy (0.6.3) {293828 KB} 94.31% size change
old/color.tracy (0.6.2) {865 KB} -> new/color.tracy (0.6.3) {866 KB} 100.13% size change
old/crash.tracy (0.6.2) {130 KB} -> new/crash.tracy (0.6.3) {130 KB} 99.85% size change
old/crash2.tracy (0.6.2) {1403 KB} -> new/crash2.tracy (0.6.3) {1327 KB} 94.56% size change
old/ctx.tracy (0.6.2) {3207 KB} -> new/ctx.tracy (0.6.3) {3203 KB} 99.89% size change
old/ctx-android.tracy (0.6.2) {88240 KB} -> new/ctx-android.tracy (0.6.3) {86209 KB} 97.70% size change
old/ctx-big.tracy (0.6.2) {88702 KB} -> new/ctx-big.tracy (0.6.3) {87038 KB} 98.12% size change
old/darkrl.tracy (0.6.2) {15458 KB} -> new/darkrl.tracy (0.6.3) {14560 KB} 94.19% size change
old/darkrl2.tracy (0.6.2) {7824 KB} -> new/darkrl2.tracy (0.6.3) {7435 KB} 95.02% size change
old/darkrl-light-big.tracy (0.6.2) {259652 KB} -> new/darkrl-light-big.tracy (0.6.3) {234625 KB} 90.36% size change
old/darkrl-old.tracy (0.6.2) {66299 KB} -> new/darkrl-old.tracy (0.6.3) {61883 KB} 93.34% size change
old/dxtc-bad.tracy (0.6.2) {7078 KB} -> new/dxtc-bad.tracy (0.6.3) {7048 KB} 99.57% size change
old/frameimages.tracy (0.6.2) {206425 KB} -> new/frameimages.tracy (0.6.3) {203537 KB} 98.60% size change
old/frameimages-big.tracy (0.6.2) {1177638 KB} -> new/frameimages-big.tracy (0.6.3) {1150496 KB} 97.70% size change
old/gn-opengl.tracy (0.6.2) {28587 KB} -> new/gn-opengl.tracy (0.6.3) {27355 KB} 95.69% size change
old/gn-vulkan.tracy (0.6.2) {28553 KB} -> new/gn-vulkan.tracy (0.6.3) {27050 KB} 94.74% size change
old/long.tracy (0.6.2) {1152078 KB} -> new/long.tracy (0.6.3) {1124731 KB} 97.63% size change
old/mem.tracy (0.6.2) {1187810 KB} -> new/mem.tracy (0.6.3) {1187668 KB} 99.99% size change
old/messages-callstack.tracy (0.6.2) {8743 KB} -> new/messages-callstack.tracy (0.6.3) {8608 KB} 98.46% size change
old/multi.tracy (0.6.2) {7735 KB} -> new/multi.tracy (0.6.3) {7304 KB} 94.43% size change
old/new.tracy (0.6.2) {1101 KB} -> new/new.tracy (0.6.3) {1076 KB} 97.79% size change
old/q3bsp-mt.tracy (0.6.2) {912230 KB} -> new/q3bsp-mt.tracy (0.6.3) {849329 KB} 93.10% size change
old/q3bsp-st.tracy (0.6.2) {227162 KB} -> new/q3bsp-st.tracy (0.6.3) {221594 KB} 97.55% size change
old/raytracer.tracy (0.6.2) {1105411 KB} -> new/raytracer.tracy (0.6.3) {977307 KB} 88.41% size change
old/selfprofile.tracy (0.6.2) {196894 KB} -> new/selfprofile.tracy (0.6.3) {184351 KB} 93.63% size change
old/tbrowser.tracy (0.6.2) {8776 KB} -> new/tbrowser.tracy (0.6.3) {7997 KB} 91.13% size change
old/test.tracy (0.6.2) {40498 KB} -> new/test.tracy (0.6.3) {39751 KB} 98.15% size change
old/topology.tracy (0.6.2) {3733 KB} -> new/topology.tracy (0.6.3) {3739 KB} 100.16% size change
old/topology-android.tracy (0.6.2) {5292 KB} -> new/topology-android.tracy (0.6.3) {5177 KB} 97.82% size change
old/tracy-dynamic.tracy (0.6.2) {672684 KB} -> new/tracy-dynamic.tracy (0.6.3) {608221 KB} 90.42% size change
old/tracy-static.tracy (0.6.2) {2310589 KB} -> new/tracy-static.tracy (0.6.3) {2136791 KB} 92.48% size change
old/virtualfile_hc.tracy (0.6.2) {72169 KB} -> new/virtualfile_hc.tracy (0.6.3) {72142 KB} 99.96% size change
old/vk-mt.tracy (0.6.2) {10815 KB} -> new/vk-mt.tracy (0.6.3) {10714 KB} 99.07% size change
old/zfile_hc.tracy (0.6.2) {39065 KB} -> new/zfile_hc.tracy (0.6.3) {39063 KB} 100.00% size change
2020-01-26 17:16:46 +01:00
Bartosz Taudul
f2a226407f
Store extra zone data separately.
...
Extra zone data consists of:
- custom zone name,
- zone text,
- zone callstack index.
If neither of these data values is stored in zone, 5 bytes are saved. If
any one of them is required, extra 4 bytes are added, for an index into
extra data array.
Memory savings:
android 2371 MB -> 2324 MB
big 7593 MB -> 6747 MB
chicken 1687 MB -> 1501 MB
drl-l-b 1119 MB -> 1013 MB
long 4289 MB -> 4190 MB
q3bsp-mt 4399 MB -> 3918 MB
q3bsp-st 1067 MB -> 1027 MB
raytracer 6057 MB -> 5342 MB
selfprofile 1177 MB -> 1079 MB
tracy-dynamic 4489 MB -> 4013 MB
tracy-static 16.2 GB -> 14.3 GB
2020-01-26 16:19:07 +01:00
Bartosz Taudul
23601904cd
Replace one more end validity check.
2020-01-23 18:50:13 +01:00
Bartosz Taudul
0137404449
Invalid source location should be 0, not UINT16_MAX (?).
2019-12-16 19:11:23 +01:00
Bartosz Taudul
ced47f227c
Add "import data" constructor to Worker.
2019-12-16 18:55:02 +01:00
Bartosz Taudul
db3e802643
Build reverse CPU topology map.
2019-11-29 22:46:57 +01:00
Bartosz Taudul
712403e9fd
Transfer, display, save CPU topology data.
2019-11-29 22:41:41 +01:00
Bartosz Taudul
4551553eb4
Implement setting client parameters from server.
2019-11-25 23:59:48 +01:00
Bartosz Taudul
fb6a92380d
Drop support for pre-v0.5 traces.
2019-11-21 21:48:35 +01:00
Bartosz Taudul
49945c7198
Process message callstacks.
2019-11-15 01:22:26 +01:00
Bartosz Taudul
b946c1d39e
Only enable magic fitted vectors in no-statistics builds.
...
Source location zones pointer fixup is just too slow to be feasible.
Note: no-statistics builds of the graphical profiler don't perform fixup
of view-related pointers (e.g. zone info window zone pointer). This
won't cause crashes, because the pointers are still valid, but the
displayed data will be incorrect and potentially changing in time, as
the pointer can be reused for completely other zone.
Memory usage of ToyPathTracer data, in various scenarios:
Capture + statistics: 7121 MB
Load + statistics: 6057 MB
Capture - statistics: 4876 MB
Load - statistics: 4521 MB
2019-11-11 00:20:33 +01:00
Bartosz Taudul
e1e3bbbe3e
Fixup source location zones pointers.
2019-11-11 00:20:33 +01:00
Bartosz Taudul
4f962d2fcc
Add ZoneEvent re-use pool.
2019-11-11 00:20:33 +01:00
Bartosz Taudul
d4a1168491
Messages are inserted for current thread context.
2019-11-10 17:23:04 +01:00
Bartosz Taudul
b1c88cd1f2
Cache ThreadData pointer for current thread context.
2019-11-10 17:17:07 +01:00
Bartosz Taudul
672093cf0e
Adapt WriteTimeline() to magic vectors.
2019-11-10 16:34:38 +01:00
Bartosz Taudul
f8edd3a37b
Zone statistics reconstructions has to use magic vectors.
2019-11-10 00:00:40 +01:00
Bartosz Taudul
ec895372b7
Thread is not needed in ReadTimeline().
2019-11-08 23:56:11 +01:00
Bartosz Taudul
6ec734c264
Split ReadTimelineUpdateStatistics().
2019-11-08 23:53:43 +01:00
Bartosz Taudul
ea2c329510
Input data *must not* be changed.
...
Not even for a short moment.
2019-11-07 01:29:11 +01:00
Bartosz Taudul
dfad9695d2
Compress frame image data right as it arrives.
...
This removes the need to store temporary uncompressed image buffers,
which involves constant memory allocation and freeing. Instead, just one
permanent buffer is used, and only because the input data cannot change
during processing.
2019-11-06 23:29:59 +01:00
Bartosz Taudul
46d33f45bf
Frame image packer doesn't care about width and height.
2019-11-06 22:53:01 +01:00
Bartosz Taudul
f53637891a
Remove LZ4 include from TracyWorker.hpp.
2019-11-06 01:25:38 +01:00
Bartosz Taudul
661c4a417b
Process and store plot value formatting.
2019-11-05 18:02:08 +01:00
Bartosz Taudul
50b96c757e
Context switch usage reconstruction skeleton.
2019-11-05 01:28:44 +01:00
Bartosz Taudul
0df29d1e0b
Use short ptr for source location payload data.
2019-11-02 16:54:12 +01:00
Bartosz Taudul
04c92f8d19
Use short ptr for callstack payload storage.
2019-11-02 16:54:12 +01:00
Bartosz Taudul
b0e52f20f8
Use short ptr for FrameImage storage.
2019-11-02 16:54:12 +01:00
Bartosz Taudul
72efbe28ed
Use short ptr for message data.
2019-11-02 16:54:12 +01:00
Bartosz Taudul
52062f96d0
Use short ptr for GPU context map.
2019-11-02 16:54:12 +01:00
Bartosz Taudul
a40bbacb17
Use short ptr for CPU zone data.
2019-11-02 16:54:12 +01:00
Bartosz Taudul
cb20bf01f9
Use short ptr for GPU zone data.
2019-11-02 16:54:11 +01:00
Bartosz Taudul
16bc862904
Save sizes of children vectors to prevent reallocation.
2019-11-02 12:38:32 +01:00
Bartosz Taudul
25b610a36f
Pack child into GPU start/end in GpuEvent (saves 4 bytes).
...
long 5152 MB -> 5061 MB
2019-10-30 23:50:37 +01:00
Bartosz Taudul
789b95f259
Force inline small functions.
2019-10-29 01:32:09 +01:00
Bartosz Taudul
8050622b0f
Read and decompress network data on a separate thread.
2019-10-28 23:22:50 +01:00
Bartosz Taudul
788ca2e5df
Spawn no-op network thread.
2019-10-28 22:45:10 +01:00
Bartosz Taudul
01985f50ef
Cache source location zones counter search.
2019-10-26 16:33:40 +02:00
Bartosz Taudul
1d0084aa28
Add cache for last accessed source location zones.
2019-10-25 21:29:55 +02:00
Bartosz Taudul
779063a18b
Cache last shrinked source location.
2019-10-25 21:07:28 +02:00
Bartosz Taudul
294793367f
Cache last CheckSourceLocation query.
...
Just knowing that the query was performed is enough here -- this
function adds a new source location entry, if there already isn't one.
2019-10-25 21:01:33 +02:00
Bartosz Taudul
0f2503d334
Send time deltas in GPU time events.
2019-10-25 19:52:01 +02:00
Bartosz Taudul
1ce25d3aef
Init cache in-place.
2019-10-25 19:19:35 +02:00
Bartosz Taudul
8fa5188176
Send delta times for context switches.
2019-10-25 19:13:11 +02:00
Bartosz Taudul
c8e5489e99
Group caches together.
2019-10-25 18:16:27 +02:00
Bartosz Taudul
d6a8a8532f
Prevent storing variable on stack.
2019-10-24 23:40:21 +02:00
Bartosz Taudul
1fe76be955
Don't reconstruct lock event time on insert.
2019-10-24 23:25:04 +02:00
Bartosz Taudul
45332fd837
Don't read memory when setting values.
2019-10-24 23:03:13 +02:00
Bartosz Taudul
5873561b54
Add cached thread retriever.
2019-10-24 22:33:48 +02:00
Bartosz Taudul
1cfb5adc44
Count transferred data size.
2019-10-24 00:47:16 +02:00
Bartosz Taudul
ba61a9ed84
Transfer time deltas, not absolute times.
...
This change significantly reduces network bandwidth requirements.
Implemented for:
- CPU zones,
- GPU zones,
- locks,
- plots,
- memory events.
2019-10-24 00:06:41 +02:00
Bartosz Taudul
3ae5c125f6
Implement counting CPU usage (ctx switch) at a given time.
2019-10-15 16:54:43 +02:00
Bartosz Taudul
eccb0b1e4a
Track max CPU present in context switch data.
2019-10-15 16:13:53 +02:00
Bartosz Taudul
1ae49c14a2
GPU zone count accessor.
2019-10-13 14:13:28 +02:00
Bartosz Taudul
5e1894dd79
Count GPU zones.
2019-10-13 14:13:04 +02:00
Bartosz Taudul
f0b957ec56
Store callstacks on 24 bits.
...
ZoneEvent is now 27 bytes.
Memory usage reduction on selected traces (sizes in MB):
big 9224 -> 9011 (97%)
chicken 2044 -> 2027 (99%)
drl-l-b 1443 -> 1383 (95%)
long 5327 -> 5253 (98%)
q3bsp-mt 5400 -> 5304 (98%)
selfprofile 1403 -> 1382 (98%)
2019-10-01 22:38:17 +02:00
Bartosz Taudul
717a212563
Save another 2 bytes per ZoneEvent.
...
ZoneEvent is not 28 bytes.
Memory usage reduction on selected traces (sizes in MB):
big 9527 -> 9224 (96%)
chicken 2107 -> 2044 (97%)
drl-l-b 1479 -> 1443 (97%)
long 5412 -> 5327 (98%)
q3bsp-mt 5592 -> 5400 (96%)
selfprofile 1443 -> 1403 (97%)
2019-10-01 01:05:37 +02:00
Bartosz Taudul
2470936050
Don't perform background tasks during trace upgrade.
2019-09-29 20:52:25 +02:00
Bartosz Taudul
d228bcb622
Pack StringIdx in 24 bits.
...
This reduces ZoneEvent size from 32 to 30 bytes.
Memory usage reduction on selected traces (sizes in MB):
big 9902 -> 9527 (96%)
chicken 2172 -> 2107 (97%)
ctx-big 311 -> 309 (99%)
drl-l-b 1570 -> 1479 (94%)
long 5496 -> 5412 (98%)
mem 6468 -> 6468 (100%)
q3bsp-mt 5784 -> 5592 (96%)
selfprofile 1486 -> 1443 (97%)
2019-09-29 20:32:42 +02:00
Bartosz Taudul
c91ae667d1
Add string count getter.
2019-09-29 19:22:15 +02:00
Bartosz Taudul
82cd667b30
Allow specifying network port in server.
2019-09-21 15:43:01 +02:00
Bartosz Taudul
e1e5d6bd47
Add const version of PackFrameImage().
...
Temporary buffer needs to be handled outside of the function.
2019-09-20 22:55:55 +02:00
Bartosz Taudul
ea6a0a58a7
Thread data accessor.
2019-09-08 14:07:16 +02:00
Bartosz Taudul
86cb477811
Pack ZoneThreadData.
...
This reduces struct size from 10 to 8 bytes. Assumes 48-bit pointers
(4-level paging)!
Memory savings (MB):
android 2766 -> 2757 (99%)
big 10.29 G -> 9902 (96%)
chicken 2244 -> 2172 (96%)
ctx-android 228 -> 224 (98%)
drl-l-b 1635 -> 1570 (96%)
gn-vulkan 244 -> 240 (98%)
long 5656 -> 5496 (97%)
q3bsp-mt 6043 -> 5784 (95%)
selfprofile 1554 -> 1486 (95%)
2019-08-31 00:55:51 +02:00
Bartosz Taudul
fd5014be6f
GetThreadString() is no longer used.
2019-08-28 20:08:16 +02:00
Bartosz Taudul
3c092b4bec
Add thread name getter combining local and external thread names.
2019-08-27 23:00:13 +02:00
Bartosz Taudul
1712431dfd
Compress external threads. Saves 4 bytes per ctx switch.
...
Dropped support for loading context switch data in previous versions of
traces.
2019-08-19 23:09:58 +02:00
Bartosz Taudul
21e7a4bb16
Extract thread compression into a separate class.
2019-08-19 22:56:58 +02:00
Bartosz Taudul
62dbe522c5
Add accessors.
2019-08-18 01:51:02 +02:00
Bartosz Taudul
103645c2fa
Calculate cpu thread data statistics.
2019-08-18 01:50:49 +02:00
Bartosz Taudul
20e8a5ecc8
Create tid to pid mapping.
2019-08-17 22:32:41 +02:00
Bartosz Taudul
678e942e9f
Transfer PID of profiled program.
2019-08-17 22:19:04 +02:00
Bartosz Taudul
414f903cc5
Collect thread wakeup data.
2019-08-17 17:05:29 +02:00
Bartosz Taudul
e975c4d7bf
Also retrieve external thread names.
2019-08-16 19:49:16 +02:00
Bartosz Taudul
fe7f56b022
Implement retrieval of external process names.
2019-08-16 19:22:23 +02:00
Bartosz Taudul
c212661714
Allow determining whether thread is local to profiled program.
2019-08-16 17:59:25 +02:00
Bartosz Taudul
cef7e4b8d0
Save/load per-cpu context switches.
2019-08-16 16:51:18 +02:00
Bartosz Taudul
8bc4258e29
Display count of per-cpu context switch data.
2019-08-16 16:51:18 +02:00
Bartosz Taudul
a92034d59d
CPU data accessor.
2019-08-16 16:51:18 +02:00
Bartosz Taudul
69527d2f71
Collect per-cpu context switch data.
2019-08-16 16:51:18 +02:00
Bartosz Taudul
41beff29a9
Remove redundant GetTimeBegin().
...
Traces now start at zero time.
2019-08-15 21:04:20 +02:00
Bartosz Taudul
bf3ad57456
Pack start time and srcloc together in ZoneEvent.
...
This reduces ZoneEvent struct size by 2 bytes. Memory savings on various
captures:
10.62 GB -> 10.29 GB
2342 MB -> 2276 MB
1706 MB -> 1635 MB
6277 MB -> 6085 MB
2019-08-15 20:17:36 +02:00
Bartosz Taudul
b322d20c19
Store received timestamps offset to 0.
2019-08-15 20:17:36 +02:00
Bartosz Taudul
659907c972
Store srcloc identifiers using 16 bit.
...
This reduces various structure sizes by 2 bytes. Memory usage reduction
on various traces:
big 11 GB -> 10.62 GB
chicken 2436 MB -> 2342 MB
drl-light-big 1761 MB -> 1706 MB
q3bsp-mt 6469 MB -> 6277 MB
2019-08-15 20:15:48 +02:00
Bartosz Taudul
416113fdcb
Drop support for ETC1 frame images.
2019-08-15 16:29:50 +02:00
Bartosz Taudul
a194c93740
Allow checking if context switch data is available.
2019-08-14 20:26:55 +02:00
Bartosz Taudul
9a364fe5fe
Cache context switch data queries.
2019-08-14 20:16:11 +02:00
Bartosz Taudul
9417ad994d
Save/load context switch data.
2019-08-13 13:10:37 +02:00
Bartosz Taudul
8c494eabbf
Display number of context switch regions.
2019-08-13 02:35:32 +02:00
Bartosz Taudul
0b03fed61c
Add context switch accessor.
2019-08-13 02:35:32 +02:00
Bartosz Taudul
419f74280d
Store context switches.
2019-08-13 02:35:32 +02:00
Bartosz Taudul
8aa0be39d5
Drop support for CPU id queries.
2019-08-12 23:05:34 +02:00
Bartosz Taudul
154c902e03
Handle legacy file versions.
2019-08-12 12:36:37 +02:00
Bartosz Taudul
a76622d17a
Cache last searched ThreadData.
2019-08-03 14:35:01 +02:00
Bartosz Taudul
12969ee497
Track thread context.
...
This change exploits the fact that events are processed in batches
originating from a single thread. A single message changing thread
context is enough to handle multiple messages, as opposed to inclusion
of thread identifier in each message.
2019-08-02 20:18:08 +02:00
Bartosz Taudul
a4e7a341c0
Proper handling of disconnect request.
2019-08-01 23:14:09 +02:00
Bartosz Taudul
8c9d46ef29
Display application info in info window.
2019-07-12 18:39:07 +02:00
Bartosz Taudul
d64ab7db5a
Store app info messages.
2019-07-12 18:34:46 +02:00
Bartosz Taudul
10bcc8c770
Switch to DXT1 textures in profiler utility.
2019-06-27 19:14:51 +02:00
Bartosz Taudul
7dc7ece2bd
Add staging area for frame images.
...
Compressing frame images on a separate thread may cause frame image
arrival before frames are sent. Fix this issue by creating a staging
area in which frame images will wait for frames to arrive.
This probably breaks playback functionality, as non-existent frames may
be queried, but this problem seems to be very hard to find, so let's
ignore it for now.
2019-06-27 13:24:35 +02:00
Bartosz Taudul
8f7be5a0fa
Allow only 2^32-1 frame images.
2019-06-22 14:11:45 +02:00
Bartosz Taudul
6a82f666a7
Cosmetics.
2019-06-22 14:05:18 +02:00
Bartosz Taudul
31a4a45b14
Ignore memory free faults if running on apple.
...
There's a case in MoltenVK initialization where overloading operator new
and operator delete works for std::string destruction, but not
construction.
2019-06-13 14:15:17 +02:00
Bartosz Taudul
38b76ea32d
Add frame images vector accessor.
2019-06-12 00:14:44 +02:00
Bartosz Taudul
2c780f1af4
Allow sending immediate termination query from server.
2019-06-09 16:10:49 +02:00
Bartosz Taudul
50cda7720f
Handle frame image instrumentation failures.
2019-06-09 13:44:53 +02:00
Bartosz Taudul
bef1988800
Compress frame images using LZ4.
2019-06-08 12:17:18 +02:00
Bartosz Taudul
646e7327b8
Show loading progress of frame images.
2019-06-06 23:40:37 +02:00
Bartosz Taudul
f8a4909c96
Display number of frame images in a trace.
2019-06-06 23:21:36 +02:00
Bartosz Taudul
6b2741ccdb
Save/load frame images.
2019-06-06 23:08:19 +02:00
Bartosz Taudul
af56f41e32
Add frame image accessor.
2019-06-06 22:14:51 +02:00
Bartosz Taudul
e5bb6011c5
Frame image transfer prototype.
2019-06-06 21:39:54 +02:00
Bartosz Taudul
5681096486
Track status of worker background tasks.
2019-06-02 15:00:38 +02:00
Bartosz Taudul
845f3a2ddf
Use std::shared_mutex for locking worker access.
2019-05-28 19:21:53 +02:00
Bartosz Taudul
b3812146cb
Fix atomics initialization.
2019-05-27 14:09:55 +02:00
Bartosz Taudul
efc54babe3
Transfer of colored messages.
2019-05-10 20:17:44 +02:00
Bartosz Taudul
20e6813461
Store send queue size in mbps block.
2019-04-01 19:55:37 +02:00
Bartosz Taudul
57dff0abc9
Add server query queue.
2019-04-01 19:26:50 +02:00
Bartosz Taudul
c07c6d11b7
Define server query packet.
2019-04-01 19:21:53 +02:00
Bartosz Taudul
a632d9e2a3
Add zone vector cache.
...
Zone children will be now collected in staging vectors. When the zone is
ended (and no children can be added anymore to it), a size-fitted vector
is allocated using slab allocation. The over-allocated vector is then
put into cache for use in future zones.
This is only active for vectors <= 8192 elements, or 64 KB (chosen
arbitrarily), to reduce time spent on copying memory.
Overall, this change should have the following effects:
- System memory allocation pressure reduction, due to re-usage of
vectors, which eliminates the need for constant growth.
- Reduction of memory usage, because children vectors are now fitted to
required size.
- Slight increase of zone processing time, due to memory copying?
2019-03-26 22:06:00 +01:00
Bartosz Taudul
11f4dcbf1e
Consistent variable naming.
2019-03-26 21:41:44 +01:00
Bartosz Taudul
71e20e7e7f
Store lock map as flat_hash_map with pointer values.
2019-03-16 02:50:51 +01:00
Bartosz Taudul
a0299cc63a
Optimize calculation of standard deviation.
2019-03-14 01:23:37 +01:00
Bartosz Taudul
f57cac9042
Initialize SourceLocationZones in-place.
2019-03-14 01:15:19 +01:00
Bartosz Taudul
ebf09bebae
Only one callstack may be in-flight at any time.
...
Save for the allocated callstack, but this will be solved in another
way. There's no need to keep pending callstacks in a map.
2019-03-05 19:44:08 +01:00
Bartosz Taudul
3e81e44d75
Separate processing for allocated callstacks.
...
Only native callstack is used for the moment.
2019-03-05 02:42:50 +01:00
Bartosz Taudul
dc74297439
Add missing const qualifiers.
2019-03-03 18:05:03 +01:00
Bartosz Taudul
bef31ba073
Separate message for zone begin with alloc src loc and callstack.
2019-03-03 18:05:03 +01:00
Bartosz Taudul
66b8a13e77
Store callstack alloc payloads.
2019-03-03 18:05:03 +01:00
Bartosz Taudul
9fc022346b
Replace frame pointers with callstack frame ids.
2019-03-03 18:05:03 +01:00
Bartosz Taudul
664847211c
Pack/unpack frame pointer to callstack frame id.
2019-03-03 18:05:03 +01:00
Bartosz Taudul
1feedb17ac
Add callstack frame identifier and the required plumbing.
2019-03-03 18:05:03 +01:00
Bartosz Taudul
42c94f7142
Handle discontinuous frame end mismatch failure.
2019-02-28 19:32:42 +01:00
Bartosz Taudul
e9baa80bf3
Process CPU usage reports.
2019-02-21 22:56:59 +01:00
Bartosz Taudul
4422fce55c
Don't decompress GpuZone threads while saving trace.
...
Saving the threads compressed in GPU zones and memory event has the
following result on trace dump sizes:
043/aa.tracy (0.4.3) {10055 KB} -> 044/aa.tracy (0.4.4) {9975 KB} 99.20% size change
043/android.tracy (0.4.3) {542739 KB} -> 044/android.tracy (0.4.4) {519248 KB} 95.67% size change
043/asset-new.tracy (0.4.3) {78403 KB} -> 044/asset-new.tracy (0.4.4) {75899 KB} 96.81% size change
043/asset-new-id.tracy (0.4.3) {84341 KB} -> 044/asset-new-id.tracy (0.4.4) {81771 KB} 96.95% size change
043/asset-old.tracy (0.4.3) {80688 KB} -> 044/asset-old.tracy (0.4.4) {78410 KB} 97.18% size change
043/big.tracy (0.4.3) {939577 KB} -> 044/big.tracy (0.4.4) {938427 KB} 99.88% size change
043/callstack.tracy (0.4.3) {14557 KB} -> 044/callstack.tracy (0.4.4) {14465 KB} 99.37% size change
043/callstack-linux.tracy (0.4.3) {6949 KB} -> 044/callstack-linux.tracy (0.4.4) {6942 KB} 99.90% size change
043/crash.tracy (0.4.3) {131 KB} -> 044/crash.tracy (0.4.4) {127 KB} 97.10% size change
043/crash2.tracy (0.4.3) {1422 KB} -> 044/crash2.tracy (0.4.4) {1412 KB} 99.29% size change
043/darkrl.tracy (0.4.3) {15767 KB} -> 044/darkrl.tracy (0.4.4) {15663 KB} 99.34% size change
043/darkrl2.tracy (0.4.3) {7947 KB} -> 044/darkrl2.tracy (0.4.4) {7886 KB} 99.23% size change
043/darkrl-old.tracy (0.4.3) {67448 KB} -> 044/darkrl-old.tracy (0.4.4) {67004 KB} 99.34% size change
043/deadlock.tracy (0.4.3) {5984 KB} -> 044/deadlock.tracy (0.4.4) {5986 KB} 100.03% size change
043/gn-opengl.tracy (0.4.3) {29005 KB} -> 044/gn-opengl.tracy (0.4.4) {28885 KB} 99.59% size change
043/gn-vulkan.tracy (0.4.3) {29352 KB} -> 044/gn-vulkan.tracy (0.4.4) {29257 KB} 99.68% size change
043/long.tracy (0.4.3) {1182800 KB} -> 044/long.tracy (0.4.4) {1176584 KB} 99.47% size change
043/mem.tracy (0.4.3) {1369067 KB} -> 044/mem.tracy (0.4.4) {1262406 KB} 92.21% size change
043/multi.tracy (0.4.3) {8004 KB} -> 044/multi.tracy (0.4.4) {7944 KB} 99.24% size change
043/new.tracy (0.4.3) {1108 KB} -> 044/new.tracy (0.4.4) {1099 KB} 99.18% size change
043/q3bsp-mt.tracy (0.4.3) {949855 KB} -> 044/q3bsp-mt.tracy (0.4.4) {937574 KB} 98.71% size change
043/q3bsp-st.tracy (0.4.3) {240347 KB} -> 044/q3bsp-st.tracy (0.4.4) {230092 KB} 95.73% size change
043/selfprofile.tracy (0.4.3) {197708 KB} -> 044/selfprofile.tracy (0.4.4) {197659 KB} 99.98% size change
043/tbrowser.tracy (0.4.3) {9503 KB} -> 044/tbrowser.tracy (0.4.4) {9503 KB} 100.00% size change
043/test.tracy (0.4.3) {40700 KB} -> 044/test.tracy (0.4.4) {40699 KB} 100.00% size change
043/virtualfile_hc.tracy (0.4.3) {72424 KB} -> 044/virtualfile_hc.tracy (0.4.4) {72304 KB} 99.83% size change
043/zfile_hc.tracy (0.4.3) {39419 KB} -> 044/zfile_hc.tracy (0.4.4) {39328 KB} 99.77% size change
2019-02-17 00:29:01 +01:00
Bartosz Taudul
92c1420c30
Improve handling of post-load background jobs.
...
Background tasks (source location zones sorting, reconstruction of
memory plot) are now started only after trace loading is finished.
Multithreaded sorting was previously impacting trace load times.
Only one thread is used to perform both jobs, one after another.
2019-02-14 01:17:37 +01:00
Bartosz Taudul
631f81e9dc
Use Vector to store children data instead of std::vector.
2019-02-13 02:32:25 +01:00
Bartosz Taudul
08642d034b
Preserve string length in string map.
2019-02-12 22:11:15 +01:00
Bartosz Taudul
76186f3221
Allow zone name retrieval from source location.
2019-02-10 16:45:19 +01:00
Bartosz Taudul
922993cbbb
Add placeholder worker disconnect command.
2019-01-24 18:51:55 +01:00
Bartosz Taudul
42af2d14cc
Calculate self min and max times of source location zones.
2019-01-23 14:24:22 +01:00
Bartosz Taudul
ddad475c19
Make it possible to store multiple frames at single frame address.
2019-01-20 19:11:48 +01:00
Bartosz Taudul
92f3a4bba0
Add ZoneText and ZoneName to the C API.
2019-01-16 02:10:21 +01:00
Bartosz Taudul
49e270d8a6
Detect zone end without begin failure.
2019-01-16 00:45:48 +01:00
Bartosz Taudul
708fdfea49
Track memory alloc+free matching failures.
2019-01-15 18:56:26 +01:00
Bartosz Taudul
76ab70a948
Simplify failure detection code.
2019-01-15 18:55:47 +01:00
Bartosz Taudul
9944a73444
Store failure reason strings in Worker.
2019-01-15 18:42:15 +01:00
Bartosz Taudul
c3246ca3b5
Gracefully store failure states.
2019-01-14 23:22:31 +01:00
Bartosz Taudul
c3b67e4482
Perform zone stack validation.
2019-01-14 23:08:34 +01:00
Bartosz Taudul
dcc6bee607
Process zone validation messages.
2019-01-14 22:56:10 +01:00
Bartosz Taudul
fbe8eb3585
Fix initialization of atomics.
2019-01-06 21:09:56 +01:00
Bartosz Taudul
980c54e349
Track trace loading time.
2019-01-06 19:09:50 +01:00