Konvertieren von double nach char * in C ++ mit hoher Leistung

Meine Anwendung muss doppelte Werte in char * konvertieren, um in eine Pipe zu schreiben, die nur Zeichen akzeptiert. Die üblichen Methoden hierfür sind diesprintf () Funktion oder mitostringstream von iomanip.h Header-Datei.

Es stellt sich heraus, dass beide eine wirklich schlechte Leistung haben. Und meine Anwendung muss diese Konvertierung so oft durchführen, dass sie zum primären Engpass wird.

Gibt es eine andere Funktion, die ich verwenden könnte? Mit welcher Logik kann ich eine effiziente Konvertierungsfunktion schreiben? Das einzige, was ich bisher geschafft habe, ist, jede einzelne Ziffer mit Divisions- und Modifikationsoperationen herauszuholen und diese Ziffern an ein Zeichen * anzuhängen, um den gesamten doppelten Wert zu erhalten. Dies scheint jedoch kein guter Ansatz zu sein und wird wahrscheinlich selbst eine schlechte Leistung haben.

Vielen Dank im Voraus für Ihre Gedanken.

EDIT: Es gibt einige Verwirrung darüber, wie das Zeichen * verwendet wird. Das Zeichen * ist ein Argument für die Funktion fwrite, die in eine Pipe schreibt.

Antworten auf die Frage(8)

Ihre Antwort auf die Frage