Differences

This shows you the differences between two versions of the page.

Link to this comparison view

ep:labs:07:contents:tasks:ex3 [2025/05/04 03:10]
radu.mantu
ep:labs:07:contents:tasks:ex3 [2025/05/06 15:01] (current)
radu.mantu
Line 1: Line 1:
 ==== 03. [25p] Tracy ==== ==== 03. [25p] Tracy ====
  
-TODOintro & maybe GLFW frame recording+**Tracy** is a feature-rich profiler that functions based on a client-server paradigm. The Server component is standalone and is used to analyze in real-time data collected during the execution of a program. When first started, the server will listen of a user-specified interface (defaultloopback iface) for incoming connections from clients. The Client component must be embedded into your application. In other words, you must consciously designate the regions that need to be analyzed and the metrics that you want observed. The client code will continuously collect runtime information and send it to the server. 
 + 
 +In this exercise we will walk through the process of adding **Tracy** support in an existing application,​ namely the OpenGL demo from the I/O monitoring lab. Specifically,​ we will observe the impact that doubling the number of vertices has on the CPU and GPU.
  
 Because time is short and we can't explore each feature of **Tracy**, check out this [[https://​tracy.nereid.pl/​|interactive demo]] offered by the authors as a web-based Server with a pre-loaded trace. Because time is short and we can't explore each feature of **Tracy**, check out this [[https://​tracy.nereid.pl/​|interactive demo]] offered by the authors as a web-based Server with a pre-loaded trace.
Line 13: Line 15:
 $ cmake --build profiler/​build --config Release --parallel $ cmake --build profiler/​build --config Release --parallel
 </​code>​ </​code>​
 +
 +<note important>​
 +If the compilation process takes up too much RAM, try to reduce the parallelization.
 +</​note>​
  
 So far so good. Once we're done with the integration of the Client into our demo application,​ the Server will collect the trace data and process it for us. But first things first... So far so good. Once we're done with the integration of the Client into our demo application,​ the Server will collect the trace data and process it for us. But first things first...
Line 26: Line 32:
 Recompile the project and make sure you don't have any errors. Recompile the project and make sure you don't have any errors.
  
-=== [5p] Task C - Add trace marksers ​===+=== [5p] Task C - Add trace markers ​===
  
 Now that we have the **Tracy** client code compiled into our application,​ it's time to add some markers. Because we defined the **TRACY_ENABLE** macro at a global scale, the **FrameMark** macro has the following definition in ''​Tracy.hpp'':​ Now that we have the **Tracy** client code compiled into our application,​ it's time to add some markers. Because we defined the **TRACY_ENABLE** macro at a global scale, the **FrameMark** macro has the following definition in ''​Tracy.hpp'':​
ep/labs/07/contents/tasks/ex3.1746317410.txt.gz · Last modified: 2025/05/04 03:10 by radu.mantu
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0