Setting multithread montoring in server application

Hi,
My coworker (with C# .net background :D ) made huge service module, almost with zero .free and then left for summer vacation.
How i can tell memoryprofiler to trace all threads? in code (not in gui)
This goes to xdataserver.
demo and or better documentation of in code operations would also be nice in future... :)

Found it
MemoryProfiler.DefaultFilter.MainThread := true;
MemoryProfiler.DefaultFilter.OtherThreads := true;

Actually I would be interested to hear what would be best way to trace only one service
with out getting all database connections to trace.
I tried adding memoryprofiler.active := true at the start of service and memoryprofiler.active := false at the end of service.
I got my UniConnections and all entities added to objectmanager during the service to trace also.
Adding filter would also exclude enties not added to manager.
@wlandgraf , any tips?

This is tricky because many objects are creating lazily. For example, the manager or the connection might be created during your service execution because they are only created when needed. But they are then destroyed at a later point.

One idea is to create a generic middleware. You then active the profiler, call Next to forward the execution, and then deactivate. This way the chance that everything that was created by XData is destroyed is greater.

1 Like

This topic was automatically closed 60 minutes after the last reply. New replies are no longer allowed.