在windows上编译/链接gcc/ld时,通过CIFS协议提高写速度



当对象&目标DLL位于网络驱动器上:我专注于DLL创建,因为它需要400秒才能完成。

在本地驱动器上,创建DLL大约需要60秒。两个驱动器共享相同的特性,我们的网络非常快。

我已经尝试使用网络驱动器作为目标复制/创建大文件,并在写入大小足够大时获得了良好的结果。所以我用ProcessMonitor进行了调查,发现ld使用了大量的2字节的WriteFile调用,最大的一次写入大小约为200。

所以我猜CIFS对一系列未缓冲的小写的反应非常差,而本地驱动器并不关心。

我可以要求我的基于gcc编译器的供应商通过一些缓冲的fwrite转换他的write调用,但是我们在CIFS写缓存参数上缺少一些东西吗?

我的意思是:如果在CIFS端有这样一个缓存,更大的块将被写入,性能将接近文件复制/创建。有没有办法打印缓存大小/改变它?(很抱歉我问了个菜鸟CIFS的问题,但是我在谷歌上搜索了"SMB CIFS windows写缓存大小"之类的东西,只找到了Linux的东西。

如果可能的话,使用iSCSI你将有最好的质量性能之后你必须知道CIFS不是用来编译或者其他小文件的。

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

最新更新