What is memory profiling and how to detect a memory leak in an asynchronous application? What is the difference between the tracemalloc tool from the standard library and objgraph, and which one is more effective for finding cyclic references stuck in memory?