zoukankan      html  css  js  c++  java
  • Webb.WAVE.Controls.Upload2已经完成,正在测试中。

    Webb.WAVE.Controls.Upload2已经完成,正在测试中。
    Upload2.JPG

    主要改进:
    1、上传文件数据处理的算法改进。在LAN上,最大速度可以达10MB/S,比起上个版本的最大速度3.5MB有很大的提高。
    2、内存的最小占用。在极坏的情况下,内存占用可能多一些(主要是在算法的处理上,当上传文件的所有数据的每个字节都为13时,内存可能会出现大量碎片)。 极好情况下,只占用缓存设定的内存。
    3、添加客户端脚本,上传进度条完全在客户端处理。其中上传速度,剩余时间等,都是用JS完成的,因此大大减少了服务器负担。
    4、空文件不再处理,即用用户上传文件中,有空文件或者不存在的文件时,将被忽略,不再处理它。
    5、可自行配置一些相关参数,如上传最大字节数,缓存字节数,临时目录等。

    当然,还有很多改进的地方,我自己也不记得了。估计这个版本会在下个星期发布测试版。

    Wednesday, June 07, 2006

    做了一个大的改动,使上传速度又有了一次飞越。这是上传稳定后的速度,最快的瞬时速度有15MB/S.
    Upload3.JPG

    改动说明:主要是上传的GUID处理上,原来是通过在页面里注册一个隐藏的表单变量,然后在上传的Module中处理这个GUID。
    原代码:

            /// <summary>
            
    /// Get value from preloaded entity body. Identified by name. You can get any value in the form. 
            
    /// But you can not get the file data by this function.
            
    /// But this function too waste time.
            
    /// </summary>
            
    /// <param name="preloadedEntityBody"></param>
            
    /// <param name="name"></param>
            
    /// <returns></returns>

            private string AnalysePreLoadedContent(string i_perLoadedData, string m_fiedName)
            
    {
            
    //    string preloadedContent = HttpContext.Current.Request.ContentEncoding.GetString(m_preLoadedData);
                if (i_perLoadedData.Length > 0)
                
    {
                    
    string    m_temp    = "name=\""+m_fiedName+"\"\r\n\r\n";
                    
    if(i_perLoadedData.IndexOf(m_temp)<=0return string.Empty;
                    
    int startIndex    = i_perLoadedData.IndexOf(m_temp)+m_temp.Length;
                    
    int endIndex    = i_perLoadedData.IndexOf("\r\n--",startIndex);
                    
    return i_perLoadedData.Substring(startIndex,endIndex-startIndex);
                }

                
    else
                
    {
                    
    return string.Empty;
                }

            }

    字符串的查找工作相对而言是比较慢的,为了解决这一问题,进度条的GUID没有存在页面的隐藏表单变量里,而是用在了临时的Cookie里,也就是浏览器Cookie。原来想在Session里使用,但HTTPModule里无法取得Session实例,虽然实现了IReadonlySession以及IRequrieSessonStatus也无法使用Session,所以就放弃了。

    上传进度条消失的问题,在上个版本中我们进行测试的时候遇到过。但我没能查到是什么原因。
    这个版本里有没有就还得测试了。


    Thursday, June 08, 2006

    压力测试结果。然而更大的文件上传,在压力测试下失败!而且失败原因不明。
    测试环境:
    服务器:Win2003+IIS6.0  CPU:P4 3G RAM:512MB
    客户端:WinXP+SP2 IE6.0
    网络:LAN
    测试工具:LoadRunner 7.5

    Load test result: for Webb.Upload only

    Thursday, June 08, 2006

     

    Scenario 1: 10-user array with 3.26 MB and no progress bar.

     Transaction Summary 



    Transaction Name

    Minimum

    Average

    Maximum

    Std

    90 Percent

    Pass

    Fail

    Stop

    Action1_Transaction

    7.438

    8.561

    9.453

    0.736

    9.417

    10

    0

    0

    vuser_end_Transaction

    0

    0

    0

    0

    0

    10

    0

    0

    vuser_init_Transaction

    0

    0

    0

    0

    0

    10

    0

    0

     HTTP Responses Summary 



    HTTP Responses

    Total

    Per second

    HTTP_200

    90

    7.5

    HTTP_304

    120

    10

     

    Scenario 2: 100-user array 3.26 MB and no progress bar.

     Transaction Summary 



    Transaction Name

    Minimum

    Average

    Maximum

    Std

    90 Percent

    Pass

    Fail

    Stop

    Action1_Transaction

    7.234

    32.879

    66.375

    19.201

    63.489

    100

    0

    0

    vuser_end_Transaction

    0

    0

    0

    0

    0

    100

    0

    0

    vuser_init_Transaction

    0

    0.001

    0.016

    0.003

    0

    100

    0

    0

     HTTP Responses Summary 




    HTTP Responses

    Total

    Per second

    HTTP_200

    900

    12.857

    HTTP_304

    1,200

    17.143

     虽然测试结果比上次的要好得多,100人同时上传3.26MB的文件可以在1分钟内完成,平均算下来,也有5MB/S,而10个用户同时上传,平均速度反而还少一些。当然,可能与服务器的一些配置相关。例如:应用程序没有分成独立的应用程序池,服务器同时运行着SQLServer等。


    不管怎样,结果可以参考一下。 


  • 相关阅读:
    无法访问计算机XXXX。错误是:库没有注册。
    Unix网卡重启命令
    教你如何进入有密码的 XP 系统
    巧妙恢复被破坏的Windows XP系统文件
    认识容灾备份 构筑一个避风港
    双机热备的实现模式 - 基于共享存储与纯软件方式
    玩大型游戏死机解决方法
    让windows xp开机跳过登陆界面
    在IE7中无法正常访问FTP的解决办法
    STL使用心得
  • 原文地址:https://www.cnblogs.com/WuCountry/p/418719.html
Copyright © 2011-2022 走看看