The scope macros are designed to have minimal overhead. Sending a scope to FramePro requires recording the start and end time of the scope and sending a string for the scope name. In order to avoid having to send strings across the network, FramePro only sends string ids. For string literals the id is the same as the string pointer and no further work needs to be done. The FramePro app will do the lookup and request the string value if necessary. For synamic strings the string has to be looked up in a hash map. For this reason it is always preferable to use the string literal versions of the macros.