Based on my understanding of Go, passing a copy (i.e., a raw struct) might involve some extra stack copying, but will actually result in zero garbage (in the garbage collection sense at least). Passing a pointer will force Go to allocate the value on the heap, resulting in more work for the GC. Furthermore, stack accesses are ~free (the stack is pretty much always in CPU cache) and heap accesses aren't, so unless your struct is really fat it's generally also faster to stack allocate anyways.

In any event, since you're only doing it once at boot time it's probably not even worth writing the benchmark for this—it's probably as good a reason as any that you get to drop a single `*` here and in all likelihood a single `&` on the other end of the function call.