我一直在尝试解析directx .x文件而不使用directX API来仅加载模型的几何体。我首先尝试使用C ++流,但解析800Kb文件花了将近3秒钟。所以我试着用C I / O函数做同样的事情,现在需要大约120毫秒。 问题是,使用DX API加载相同的文件需要相同或几乎相同的时间,但它也会加载所有内容,而不仅仅是几何体。所以我认为我的解析器效率低下,只加载几何体。使用分析器我注意到大部分时间花在fscanf()上,我用它来解析顶点和索引。我也尝试在缓冲区上获取每一行然后使用sscanf,但时间是一样的。我没有使用STL。 有关如何更快地解析避免使用fscanf的任何建议?请不要说“使用像Assimp这样的另一个图书馆”,因为我想自己这样做。 提前谢谢。
答案 0 :(得分:1)
单独阅读扫描,例如首先将整个文件读入内存(或使用内存映射),然后使用sscanf或其他任何内容进行扫描(boost :: spirit,为什么不呢?)