I decided to remove the internal profiler since it had some hard to fix flaws:
It require conditional compilation (or querying .conf() in Python) in examples to print the results
It doesn't compose well since nesting is not allowed
It needs extra code to cope with mechanism.hpp
Need to pair PE/PL
Tracy on the other hand gives us
out of band data collection
native visualization
nested zones
RAII safety when marking zones
some niceties wrt threads
the ability to mark which mechanism we're updating
all in 3 macros.
I have some plans to add memory tracking later on, but I am reluctant to overload new and that
seems to be the only way of getting into std::vector and friends.
Here's the moment when we add spikes:
Some clean-up was done as well, mainly swapping std::shared_ptr{new T(...)} for std::make_shared<T>(...)
and same for unique_ptr.
I decided to remove the internal profiler since it had some hard to fix flaws:
.conf()
in Python) in examples to print the resultsmechanism.hpp
Tracy on the other hand gives us
all in 3 macros.
I have some plans to add memory tracking later on, but I am reluctant to overload
new
and that seems to be the only way of getting intostd::vector
and friends.Here's the moment when we add spikes:
Some clean-up was done as well, mainly swapping
std::shared_ptr{new T(...)}
forstd::make_shared<T>(...)
and same forunique_ptr
.