在编译/连接窗口上的gcc / ld时,通过CIFS提高写入速度

当对象和目标DLL位于networking驱动器上时,我们的应用程序需要很长时间才能build立:我已经专注于创buildDLL,因为它需要400秒才能完成。

在本地驱动器上,DLL创build大约60秒。 两个驱动器共享相同的特征,我们的networking非常快。

我试图使用networking驱动器作为目标来复制/创build大文件,并且在写入大小足够大的情况下获得了很好的效果。 于是我用ProcessMonitor进行了调查,发现ld正在使用大量的2字节的WriteFile调用,最大的一次写入大小约为200。

所以我猜测CIFS对一系列无缓冲的小写操作反应很差,而本地驱动器不在意。

我可以要求我的基于gcc编译器的供应商通过一些缓冲的fwrite转换他的write调用,但是我们在CIFS写入caching参数上没有丢失什么?

我的意思是:如果在CIFS端有这样的caching,则会写入更大的块,并且性能接近于文件复制/创build。 有没有办法打印caching大小/改变它? (对于noob CIFS问题抱歉,但我已经search了像“SMB CIFS窗口写入caching大小”的东西,只能findLinux的东西。

如果可能的话,在您必须知道CIFS不适用于编译或其他小文件之后,使用具有最佳质量性能的iSCSI。

本地磁盘或SAN上的解决方案效率更高

DOK