Erfordert der C-Standard eine schlechte Iostream-Leistung?
Obwohl behauptet wird, dass die Iostreams-Implementierung der C-Standardbibliothek unter intrinsischen Ineffizienzen leidet, ist die Realität so nuancierter.
Standard Anforderungen
Der technische Bericht zur C-Leistung von 2006 erkennt an, dass bestimmte iostreams-Aspekte einen zusätzlichen Implementierungsaufwand erfordern. Es wird jedoch auch betont, dass dieser Overhead durch Compiler-Optimierungen und Linker-Verbesserungen erheblich reduziert werden kann.
Compiler-Implementierungen
Verschiedene Compiler-Anbieter haben die iostreams-Bibliothek unterschiedlich implementiert. Einige Compiler bieten stark optimierte Versionen, während andere möglicherweise einen größeren Overhead aufweisen.
Benchmarks
Benchmarks, die iostreams mit benutzerdefinierten Implementierungen für die interne Pufferung vergleichen, zeigen eine Leistungslücke. Iostreams verursacht zusätzliche Kosten aufgrund von:
Abmildern Overhead
Optimierungen können angewendet werden, um den Iostreams-Overhead zu reduzieren:
Fazit
Obwohl der C-Standard nicht unbedingt eine schlechte iostream-Leistung erfordert, kann sein Design zu Ineffizienzen führen. Durch Compileroptimierungen und eine ordnungsgemäße Implementierung kann dieser Overhead jedoch minimiert werden, sodass iostreams in realistischen Szenarien mit der benutzerdefinierten Pufferverwaltung vergleichbar sind.
Das obige ist der detaillierte Inhalt vonSchreibt der C-Standard eine ineffiziente Iostream-Leistung vor?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!