You want to use pprof “labels” and mark the frames. 

> On Jun 26, 2020, at 1:35 PM, michael.nis...@gmail.com wrote:
> 
> 
> Hello,
> 
> I'm trying to figure out how to do "frame" based profiling in GO and was 
> redirect to this mailing--list from the `r/golang` sub (topic). Would be 
> amazing if anyone here can help.
> 
> In short: I have a game server in Go and need to profile CPU costs of 
> individual frames but sadly can't find a way to do that properly. 
> 
> I thought that the `pprof` CPU profile should be the right tool. However, at 
> least the profile visualization tools always aggregate the methods execution 
> costs between `StartCPUProfile` and `StopCPUProfile`. While in some scenarios 
> this is great, we have currently have big spikes in for frame duration and 
> would love to see the difference in times per frame. Ideally in a flame-graph 
> like visualization but grouped by frames. So we'd somehow need to mark the 
> frame start/end and tell the visualization to use that.
> 
> Ideally, like the profiler in the Unity3D Editor does:
> 
> 
> Unity3D Profiling - Per frame method execution times
> 
> I tried use `Start/StopCPUProfile` at the beginning and end of a frame to 
> create an individual capture per frame. That's not ideal for comparison but 
> should be good enough and simple in concept. Sadly the cost of 
> `StartCPUProfile` is so high, we can't call that per frame.
> 
> Looking at the code, the the 100 millisecond sleep in `profileWriter` 
> explains that it. So what we'd need is a way to mark the frame start/end 
> somehow for visual grouping. Is that possible with `pprof`?
> 
> 
> pprof.go
> 
> Further, I wonder if it's even possible to profile a game server with a 
> simulation framerate of 120Hz. Since the 100Hz CPU profile rate is hard coded 
> in `StartCPUProfile` I would guess we even per frame aggregation it make not 
> work of a frame duration is usually below 1s / 120 or is that not relevant?
> 
> Best,
>  Michael
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "golang-nuts" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to golang-nuts+unsubscr...@googlegroups.com.
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/golang-nuts/d0e8b1ae-d992-44ed-bd9a-6a72e6526d4co%40googlegroups.com.

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/golang-nuts/36D99174-9694-4664-9493-416087FBBA91%40ix.netcom.com.

Reply via email to