空间复杂度问题:ZipPatch() requires 4*(decompress stream memory) + ref old decompress memory + O(1), also ref old decompress can use temp disk file without memory;
Picasso1990 opened this issue · 5 comments
Picasso1990 commented
根据readme中看到空间复杂度为 4*解压流内存 + 引用旧文件解压内存 + O(1):
请问一般解压流大概是多少的呢?比如对1G的文件进行操作大概会占用多少内存呢?
我在Android上使用的时候进行合成一个1G的文件竟然没有发现占用的内存没有明显的变化,感到很奇怪
sisong commented
"4*解压流内存" 这一块的大小在ZipDiff的时候能看到: “used one lzma dictSize: ? ”
一般会显示4行,其dictSize的和就是patch时占用的解压缩内存;
“引用旧文件解压内存” 这块的byte大小在ZipDiff的时候也能看到: “ref old decompress: ... file (? byte!)”
这块的内存占用也可以选择指定一个临时文件来代替;
Picasso1990 commented
好的;
在Android使用的时候,合成的过程中使用AndroidStudio上的profile工具并没有看到内存有明显的改变,也没有看到有其他的进程启动,请问这个是什么原因呢?或者有什么方式可以检测到该内存的变化呢?
sisong commented
没有看到有其他的进程启动
这里应该是线程吧? 你用的是我编译好的.so还是自己编译的? 是否没有开启多线程环境? (我们的app在开启多线程patch后速度会快很多)
“检测到该内存的变化” android手机上的开发模式里面设置找找或者安装一个cpu等性能监测工具试试;
Picasso1990 commented
thx,已解决
Picasso1990 commented
thx,已解决