On 2022-05-26 22:19, Ali Çehreli wrote:
On 5/26/22 12:54, Christian Köstlin wrote:

 > I want to be able to dump
 > tracings even while the program is still running. Then I would have to
 > collect the tls data of all still running threads.

I am not sure without testing but I am under the impression that mutexes can be very slow especially if the data collection is happening very frequently. The threads may not have breathing room to perform their tasks. Since dumping would be much slower compared to the performance penalty of grabbing a mutex that it can be measured as zero-cost in the dumping time. :) So, you may still want to collect per-thread and combine incrementally as you dump? Perhaps a premature optimization... Please test. :)

You are certainly right.. It really depends on the usecase. I also think my current approach is not good to e.g. do syscall tracing of something like read. I wonder how I can synchronize the "dumping" and the collection of the threads. Would be cool to have an efficient lockless implementation of appender ...


If you want to combine before dumping, then collector registration may be needed so that the dumper can contact each collector and say "please add your data".

 > __gshared does not put
 > the shared type attribute the the profiler.

Correct.
thanks!


 > If I use shared I would also
 > have to make all methods I call on the shared profiler shared and also
 > would have to have a shared appender (or cast shared away)?

Possibly. :/

Ali




---
Christian

Reply via email to