我需要让客户下载30MB的文件。
以下是设置:
1.它们由3000个小文件组成。
2.通过tcp bsd套接字下载。
3.它们在客户端的数据库中存储,因为它们被下载。
4.服务器可以将所有必要的文件存储在内存中。(服务器端没有文件访问)
我没有看到很多情况下客户端下载如此大量的文件,我怀疑这是由于服务器端的文件访问。我也担心多路复用器(select/epoll)会被过多的网络请求处理而不堪重负。(我需要担心这个吗?)
基于以上怀疑,我将3000个文件压缩成了30个文件。(总体大小变化不大,因为这些文件已经是压缩文件(png))
测试显示,下载3000个文件比下载和解压缩30个文件快25%。(我怀疑这是因为客户设备无法在解压缩和插入数据库时下载,我正在手持设备上测试.. iPhone..)(我将解压缩+DB操作与网络代码分开线程,但是DB操作似乎占据了整个系统。我进行了一些剖析,发现解压缩不需要太长时间,DB插入需要时间。在服务器端,文件被压缩并预先放置在内存中。)
我正在考虑切换回下载3000个文件,因为它对客户端更快。
我想知道其他有经验的网络人士对这两种策略的看法,
1.许多小数据
2.少量大数据和解压缩。
编辑:
对于有经验的iPhone开发人员,我正在使用NSOperationQueue线程化DB操作。
NSOperationQueue是否真正线程化?
我非常怀疑它的性能。
- 我尝试过posix线程,没有明显的区别..
以下是设置:
1.它们由3000个小文件组成。
2.通过tcp bsd套接字下载。
3.它们在客户端的数据库中存储,因为它们被下载。
4.服务器可以将所有必要的文件存储在内存中。(服务器端没有文件访问)
我没有看到很多情况下客户端下载如此大量的文件,我怀疑这是由于服务器端的文件访问。我也担心多路复用器(select/epoll)会被过多的网络请求处理而不堪重负。(我需要担心这个吗?)
基于以上怀疑,我将3000个文件压缩成了30个文件。(总体大小变化不大,因为这些文件已经是压缩文件(png))
测试显示,下载3000个文件比下载和解压缩30个文件快25%。(我怀疑这是因为客户设备无法在解压缩和插入数据库时下载,我正在手持设备上测试.. iPhone..)(我将解压缩+DB操作与网络代码分开线程,但是DB操作似乎占据了整个系统。我进行了一些剖析,发现解压缩不需要太长时间,DB插入需要时间。在服务器端,文件被压缩并预先放置在内存中。)
我正在考虑切换回下载3000个文件,因为它对客户端更快。
我想知道其他有经验的网络人士对这两种策略的看法,
1.许多小数据
2.少量大数据和解压缩。
编辑:
对于有经验的iPhone开发人员,我正在使用NSOperationQueue线程化DB操作。
NSOperationQueue是否真正线程化?
我非常怀疑它的性能。
- 我尝试过posix线程,没有明显的区别..