1. A system for analyzing execution of multi-threaded applications, the system comprising: one or more processors and one or more storage devices storing instructions that, when executed by the one or more processors, cause the one or more processors to implement: a portable inter-thread communication mechanism that allows messages to be passed among threads, the portable inter-thread communication mechanism provides each thread with a run method and a dispatch method as well as a queue to hold messages from one thread to another that are waiting to be executed; a profiling module that collects application execution information; and an application that reads execution logs of an application profiled by the profiling module, extracts profiling information, and creates a graphic representation of the profiled application's execution, wherein the profiling module includes a dispatch probe class, which measures the time between an instance of the class's creation and destruction.