[video output=day266 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Adding a Top Clocks Profile View" vod_platform=youtube id=qYGNxUu6tjI annotator=Miblo] [1:35][A few words on using third-party debugging tools or reusing ones own across projects] [3:14][Launch the game and set the stage for the day] [7:08][handmade_debug.cpp: Provide the ability to print debug elements in descending order of cycle counts] [9:49][stb_truetype.h: Delete] [10:20][handmade_sort.cpp: Pull out the sort code from handmade_render_group.h and handmade_render.cpp] [14:52][handmade_debug_interface.h: Add DebugType_TopClocksList] [15:54][handmade_debug.cpp: Introduce DrawTopClocksList] [24:23][handmade_debug_ui.cpp: Introduce GetBaseline] [25:46][handmade_debug.h: Introduce debug_element_add_op for more fine-grained control of how elements are profiled] [31:11][Run the game and view our DrawTopClocksList ouput] [32:51][handmade.cpp: Do TopClocksList by default] [34:15][handmade_debug.cpp: Darken the list's background] [36:27][handmade_debug.cpp: Just print out the elements' names] [37:29][Note that the Win32 Message Processing takes drastically longer when the mouse is moved] [38:34][handmade_debug.h: Add Sum to debug_statistic] [41:23][handmade_debug.cpp: Provide DrawTopClocksList the ability to print out percentages] [46:53][handmade_debug.cpp: Prepare DrawTopClocksList for sorting] [51:44][Run the game and see our sorted TopClocksList] [52:44][handmade_debug.cpp: Add the Count and Percentage to the list] [55:03][Run the game and view our TopClocksList] [56:11]["We won't add up to 100%"][quote 469] [58:00][Q&A][:speech] [59:22][@gunngames][Can I avoid taxation by reinvesting into capital gains?] [59:44][@dudeinbasement1][Why won't we add to \~100%?] [1:00:42][@sssmcgrath][How would you self-update an exe? Right now I have a second exe that copies a file that overwrites the current exe. So main exe calls updateme.exe, closes itself, updateme sleeps for 1/2 second, then copies... There's gotta be something smarter] [1:01:27][@zamar037][Can the percentage support a decimal place?] [1:01:46][handmade_debug.cpp: Print the percentage as a float] [1:02:52][@Miblo][How may you go about investigating the cycle count increase for the Input Processing when the mouse is moved?] [1:03:49][Admire the profiler][quote 470] [1:06:07][win32_handmade.cpp: Bring PeekMessage out of the while condition and put it in a TIMED_BLOCK] [1:08:18][Owl of Shame Moment: The platform code does not get dynamically reloaded] [1:09:01][Compile and run and see PeekMessage in the profiler] [1:09:22][handmade.cpp: Move the FrameSlider into the Profile block] [1:11:15][@dudeinbasement1][%5.2f] [1:11:51][@sssmcgrath][My problem is the exe downloads a new exe, then I want it to replace itself, but I can't delete the running exe or even rename it while it's running. I'm fine with the game going down and coming back up, it's for updating players, not for development] [1:13:15][win32_handmade.cpp: Implement the ability to replace and auto-reload a running executable] [1:19:54][Internet: MoveFile[ref site="MSDN" page="MoveFile function" url="https://msdn.microsoft.com/en-us/library/windows/desktop/aa365239"]] [1:27:29][Try to replace handmade.exe with notepad.exe] [1:31:00][win32_handmade.cpp: Fix the condition of Win32TimeIsValid] [1:34:10][Try to replace handmade.exe with ColorCop.exe] [1:35:16][Debugger: Try to launch and kill][quote 471] [1:37:15][Wind things down][:speech] [1:38:27][Promote 4coder][:speech] [/video]