コード 1
while(fin.eof()==false) {
fin.read((char*)& Object_2, sizeof(Object_2)); //Reads a record for printing
class_object.display();
fin.read((char*)& Object_2, sizeof(Object_2)); //Reads the next record space for eof detection
if(fin.eof() == true)
break; //Break out of the loop on encountering eof
else
fin.seekg(-signed(sizeof(Object_1)), ios :: cur); //File Pointer Correction
}
コード 2
while(fin.eof()==false) {
fin.read((char*)& Object_2, sizeof(Object_2)); //Reads a record for printing
if(fin.eof() == true)
break;
else
class_object.display();
実行時間に関しては、どちらが優れていますか? CODE1 は、while ループで不要なループ ステップを実行することを許可していません。一方、CODE2 は、while ループが最後に実行されたときに (不要なループ ステップ) 中断するだけです。
PS-ループの最後のステップで節約しても、実行時間にほとんど違いがないことは理解していますが、どちらが優れているかについては興味があります。
注: 学校の都合で TurboC++ を使用しています。
プロファイラーは何を教えてくれますか?
最新のオペレーティング システムでは、(オーバーヘッドが最小になるため) より高速なソリューションは、ファイルをメモリにマップし、読み取り/シーク呼び出しを完全に回避することです。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加