代码比较 - 哪个在运行时更好?

Code Comparison - Which is better in terms of runtime?

代码 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 循环最后一次执行时中断(不必要的循环步骤)。

P.S.- 我知道在循环的最后一步节省时间对运行时间几乎没有任何影响,但我只是想知道哪个更好。

注意:由于学校原因,我使用 TurboC++。

您的探查器告诉您什么?

在现代操作系统上,更快的解决方案(由于开销最少)是将文件映射到内存中,从而完全避免 read/seek 调用。