Convertir doble a char * en C ++ con alto rendimiento

Mi aplicación necesita convertir valores dobles a char * para escribir en una canalización que solo acepte caracteres. Las formas habituales de hacer esto son utilizando elsprintf () función o usoostringstream desde el archivo de cabecera iomanip.h

Resulta que ambos tienen un rendimiento realmente malo. Y mi aplicación necesita hacer esta conversión tan a menudo que se convierta en el principal cuello de botella.

¿Hay alguna otra función que pueda usar? ¿Qué lógica puedo usar para escribir una función de conversión eficiente? Lo único que he logrado llegar hasta ahora es sacar cada dígito individual usando las operaciones de división y mod, y agregar estos dígitos a un carácter * para obtener el valor doble completo. Sin embargo, este no parece ser un buen enfoque y probablemente tendrá un mal desempeño en sí mismo.

Gracias de antemano por tus pensamientos.

EDITAR: Existe cierta confusión sobre cómo se utilizará el char *. El char * será un argumento de la función fwrite que escribe en una canalización.

Respuestas a la pregunta(8)

Su respuesta a la pregunta