C# 并行上传到S3的速度非常慢

C# 并行上传到S3的速度非常慢,c#,multithreading,file-upload,amazon-web-services,amazon-s3,C#,Multithreading,File Upload,Amazon Web Services,Amazon S3,我很难想出如何在我的C#应用程序中优化AmazonS3的上传速度 我创建了一个循环来测试15次同步上传(在同一个图像文件上运行) 1图像上传:平均4秒 5次并发图像上载:平均5秒 15次并发图像上传:7-13秒您的带宽肯定是一个限制因素,并行上传会加剧这一因素。假设您有X带宽,根据并发上载的数量,每次上载的图像都会占用该值的一小部分。谢谢,我将使用2KB图像进行测试本地上载1.5K图像:15(5-7秒),30(约11秒)。同样的结果是非常小的图片,而且我有一个非常快的互联网连接。如果你同时上传文

我很难想出如何在我的C#应用程序中优化AmazonS3的上传速度

我创建了一个循环来测试15次同步上传(在同一个图像文件上运行)

1图像上传:平均4秒

5次并发图像上载:平均5秒


15次并发图像上传:7-13秒

您的带宽肯定是一个限制因素,并行上传会加剧这一因素。假设您有X带宽,根据并发上载的数量,每次上载的图像都会占用该值的一小部分。谢谢,我将使用2KB图像进行测试本地上载1.5K图像:15(5-7秒),30(约11秒)。同样的结果是非常小的图片,而且我有一个非常快的互联网连接。如果你同时上传文件,它们需要更长的时间来完成也就不足为奇了。但无论如何,这通常不是一个有趣的因素——比较在k个线程中上传X张图片的总时间,并检查这些时间是如何变化的。
HttpPostedFile file = HttpContext.Current.Request.Files[0];

for(int i=0; i<15; i++){

    AmazonS3 client = Amazon.AWSClientFactory.CreateAmazonS3Client(accessKey, secretKey);
    TransferUtility tu = new TransferUtility(client);

    new Thread(() =>
     {
        // timer starts here
        Thread.CurrentThread.IsBackground = true; 
        tu.Upload(ur); // upload file synchronously 
       // timer stops here
     }
}
 new Thread(() =>
  {
    // stopWatch stopped at the FinishedAsyncUpload function
    tempObj.StopWatch = new Stopwatch();
    tempObj.StopWatch.Restart();

    Thread.CurrentThread.IsBackground = true; 
    IAsyncResult ar =  tu.BeginUpload(ur, new AsyncCallback(FinishedAsyncUploadToTempFolder), tempObj);


                }).Start();