使用zlib优化文件写入?

时间:2011-06-03 13:58:16

标签: c++ file-io zlib

我描述了我的应用程序,显然我应用程序中有37%的时间是在ostream :: write中。实际压缩它的次数少于7%(deflate_slow是它给我的函数名称)。

如何使用zlib优化文件IO?我应该写自己的fopen / fwrite / fread / fclose包装器吗?有存在的包装吗?我可以用缓冲区大小做一些事情(我希望它很大)。我该怎么做才能让写作更快?

1 个答案:

答案 0 :(得分:0)

首先,检查ostream::write被低效调用。根据您的平台,您应该使用:

  • Windows:procmon.exe(来自SysInternals Suite)
  • Linux:strace
  • Solaris:ktruss
  • NetBSD:ktrace

检查是否有多次调用WriteFile(Windows)或write(类似POSIX)只写了几个字节,即少于100个。如果找不到这些,可能不会帮助编写包装器。

上述工具还可以衡量您是否在操作系统内核或用户代码中浪费时间。这应该会给你一个提示,你可以在哪里提高性能。