使用zlib优化文件写入

optimizing file writes with zlib?

本文关键字:文件 优化 zlib 使用      更新时间:2023-10-16

我分析了我的应用程序,显然我的应用中37%的时间都在ostream::write中。只有不到7%的人在压缩它(deflate_slow是它给我的函数名)。

如何使用zlib优化文件IO?我应该写我自己的fopen/fwrite/frad/flose包装吗?存在包装器吗?我能对缓冲区的大小做点什么吗(我想要大一点)。我能做些什么来使写作更快?

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

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

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

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