我描述了我的应用程序,显然我应用程序中有37%的时间是在ostream :: write中。实际压缩它的次数少于7%(deflate_slow是它给我的函数名称)。
如何使用zlib优化文件IO?我应该写自己的fopen / fwrite / fread / fclose包装器吗?有存在的包装吗?我可以用缓冲区大小做一些事情(我希望它很大)。我该怎么做才能让写作更快?
答案 0 :(得分:0)
首先,检查ostream::write
被低效调用。根据您的平台,您应该使用:
procmon.exe
(来自SysInternals Suite)strace
ktruss
ktrace
检查是否有多次调用WriteFile
(Windows)或write
(类似POSIX)只写了几个字节,即少于100个。如果找不到这些,可能不会帮助编写包装器。
上述工具还可以衡量您是否在操作系统内核或用户代码中浪费时间。这应该会给你一个提示,你可以在哪里提高性能。