Was ist die schnellste Funktion zum Drucken von Text im Terminal in C++? [Duplikat]C++

Programme in C++. Entwicklerforum
Guest
 Was ist die schnellste Funktion zum Drucken von Text im Terminal in C++? [Duplikat]

Post by Guest »

Ich habe kürzlich eine konsolenbasierte Anwendung erstellt, die einen rotierenden Würfel in 3D anzeigt. Um diese Anwendung zu erstellen, musste ich ziemlich schnell Text auf der Konsole ausgeben. Ich habe mich gefragt, ob es eine schnellere Methode zum Drucken von Text auf einer Konsole gibt, die ich nicht kannte. Als ich das ursprünglich recherchierte, stieß ich auf einige Methoden, mit denen ich die Leistung der Verwendung des Very Sleepy-Profilers aufzeichnete, wie Pepijn Kramer vorgeschlagen hat.
printf:

Code: Select all

#include 
#include 

int main() {
int i;
HANDLE console = GetStdHandle(STD_OUTPUT_HANDLE);
CONSOLE_SCREEN_BUFFER_INFO screen;
GetConsoleScreenBufferInfo(console, &screen);
short columns = screen.srWindow.Right - screen.srWindow.Left + 1;
short rows = screen.srWindow.Bottom - screen.srWindow.Top + 1;
char characters[columns * rows + 1];
for (i = 0; i < columns * rows; i++) {
characters[i] = '.';
}
characters[columns * rows] = '\0';
for (i = 0; i < 5000; i++) {
printf(characters);
SetConsoleCursorPosition(console, (COORD){0, 0});
}
return 0;
}
Zeit: 192,2s
cout:

Code: Select all

#include 
#include 

int main() {
int i;
HANDLE console = GetStdHandle(STD_OUTPUT_HANDLE);
CONSOLE_SCREEN_BUFFER_INFO screen;
GetConsoleScreenBufferInfo(console, &screen);
short columns = screen.srWindow.Right - screen.srWindow.Left + 1;
short rows = screen.srWindow.Bottom - screen.srWindow.Top + 1;
char characters[columns * rows + 1];
for (i = 0; i < columns * rows; i++) {
characters[i] = '.';
}
characters[columns * rows] = '\0';
for (i = 0; i < 5000; i++) {
std::cout

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post