| ▲ | TZubiri a day ago | |
>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. | ||
| ▲ | jeeeb a day ago | parent [-] | |
That’s what most languages, including Java do. The problem the OP is pointing out is that some programmers are incompetent and do string concatenation anyway. A mistake which if anything is even easier in Python thanks to string interpolation. | ||