eug*_*ene 6 sockets iphone networking download
我需要我的客户端下载价值30Mb的文件.
以下是设置.
我没有看到许多客户端下载如此大量文件的情况,我怀疑这是由于服务器端的文件访问.
我还担心多路复用器(select/epoll)会被过多的网络请求处理所淹没.(我需要担心这个吗?)
由于上述怀疑,我将3000个文件压缩为30个文件.(总体大小变化不大,因为文件已经是压缩文件(png))
测试显示,下载3000个文件比下载和解压缩30个文件快25%.
我怀疑这是因为客户端设备在解压缩和插入数据库时无法下载,我正在手持设备上进行测试.. iPhone ..
(我已将线程解压缩+数据库操作与网络代码分开,但数据库操作似乎接管了整个系统.我描述了一下,解压缩不需要很长时间,数据库插入就行了.在服务器端,文件被压缩并预先放在内存中.)
我正在考虑切换回3000个文件下载,因为它对客户来说更快.
我想知道其他经验丰富的网络人士会说两种策略,
1.许多小数据
2.少量大数据和解压缩.
对于有经验的iphone开发人员,我正在使用NSOperationQueue进行数据库操作.
NSOperationQueue实际上是否很好?
我对它的表现非常怀疑.
- 我试过posix线程,没有显着差异..
我正在回答我自己的问题。
事实证明,在客户端中一次将许多图像插入到sqlite DB中需要很长时间,因此传输中的网络数据包无法足够快地传递到客户端。
http://www.sqlite.org/faq.html#q19
在我采纳了常见问题解答中加速“多次插入”的建议后,它实际上优于“多个文件单独下载策略”。