我知道这是一个普遍的问题。
我要编写一个编译器,我想知道在读取文件时获取语言的标记是否更好(即,首先打开文件,然后在读取时提取标记,最后关闭文件)还是读取文件首先,关闭它,然后使用变量中的数据。伪代码类似于:
file = open(filename);
textVariable = read(file);
close(file);
getTokens(textVariable);
第一个选项类似于:
file = open(filename);
readWhileGeneratingTokens(file);
close(file);
我想第一个选项看起来更好,因为在主内存方面没有额外的成本。但是,我认为使用第二个选项可能会有一些好处,因为我可以最大限度地减少文件打开的时间。