前两天写了服务器端下载文件到客户端的例子,有朋友发邮件过来说想讨论一下上传文件的效率。下面是个人的一点看法
使用FormSize=Request.TotalBytes
FormData=Request.BinaryRead(FormSize)
取得文件内容后,如果急于取得文件的字符形式,而使用st=f_bin2str(formdata)
然后对ST文件进行处理,效率奇低。分析国外的一些商业组件,他们都是采用一边读取文件一边处理的方法,所以处理效率非常高。大多在循环
while startline<stsize
wend
中,先提取二进制的行,然后进行字符转换,处理。
linelength=instrB(startline,formdata,clstr)-startline
linestrb=midb(formdata,startline,linelength)
改动不大,但是效率却成倍提高。
做的实验,同一文件,读完载处理的速度。。用了15分钟;而边读边处理只用了几秒。
效率差别也就显现出来了。
这里只说明我想到的方法,如果那位大虾有更高明的办法,欢迎赐教。