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等。


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


  • 相关阅读:
    pat00-自测5. Shuffling Machine (20)
    Spiral Matrix
    Search in Rotated Sorted Array II
    Search in Rotated Sorted Array
    Best Time to Buy and Sell Stock II
    4Sum
    3Sum Closest
    3Sum
    MySQL存储过程、函数和游标
    Word Ladder
  • 原文地址:https://www.cnblogs.com/WuCountry/p/418719.html
Copyright © 2011-2022 走看看