| ▲ | cluckindan a day ago | |||||||
Then you still have the overhead of the log.trace function call and the lambda construction (which is not cheap because it has closure over the params being logged and is passed as a param to a function call, so probably gets allocated on the heap) | ||||||||
| ▲ | TZubiri a day ago | parent [-] | |||||||
>Then you still have the overhead of the log.trace function call That's not an overhead at all. Even if it were it's not compareable to string concatenation. Regarding overhead of lambda and copying params. Depends on the language, but usually strings are pass by ref and pass by values are just 1 word long, so we are talking one cycle per variable and 8 bytes of memory. Which were already paid anyways. That said, logging functions that just take a list of vars are even better, like python's print() > printtrace("var x and y",x,y) > def printtrace(*kwargs): >> print(kwargs) if trace else None Python gets a lot of slack for being a slow language, but you get so much expressiveness that you can invest in optimization after paying a flat cycle cost. | ||||||||
| ||||||||