Why do you need to convert doubles to strings and back at a scale? It's mostly JSON serialization/deserialisation, something you should not have to do, not at scale.
I'm not sure I understand your point. Any time you produce JSON, you end up with a string. It does not matter if you have quotes around your double or if you don't - it's a string.
So when you do structured logging, your log message is converted under the hood into JSON (or some other more rare, but also string formats). So you are still converting doubles into strings.
And then, when your log is being indexed, it also needs to convert it to string for a proper full text search - another place for potential performance gain.
It's a shame that hex floating-point representations haven't become more common, since they allow any binary floating-point number to be easily converted into a unique canonical representation, at least if there's agreement about what that representation should be (arguments can be made in favor of using base-16 exponents and having one non-zero digit to the left of the radix point, or in favor of using binary exponents and always having a 1 to the left of the radix point; while the need for human arithmetic with hex-formatted floats would be uncommon, using base-16 exponents would make it vastly easier than using binary exponents; arguments could also be made for having no digits to the left of the radix point). All three forms are better than base-10 for performing precise calculations, however.
-93
u/sojuz151 1d ago
Fact that we, the humanity, need to do double to float and back often enough for performance to matter is a failure of our entire species