Performance 如果转换为异步控制器,文件上载控制器是否会获得性能优势?

Performance 如果转换为异步控制器,文件上载控制器是否会获得性能优势?,performance,asp.net-mvc-3,asynchronous,Performance,Asp.net Mvc 3,Asynchronous,我有一个控制器操作,它可以处理多个照片上传(使用)。对于上载的每个文件,控制器将执行以下操作: 创建照片的7个大小调整版本 将这7个版本上传到AmazonS3 将有关照片的信息保存到数据库中 此web应用程序的最终用户将一次上载多达100张高分辨率(~4mb)照片,因此性能是一个优先事项 在这种情况下,我会看到性能的提高吗(即等待应用程序处理上传的总时间)如果我将控制器更改为AsyncController?可能不会提高性能,但它可能会卸载一些工作线程,特别是在Amazon S3服务器上等待上

我有一个控制器操作,它可以处理多个照片上传(使用)。对于上载的每个文件,控制器将执行以下操作:

  • 创建照片的7个大小调整版本
  • 将这7个版本上传到AmazonS3
  • 将有关照片的信息保存到数据库中
此web应用程序的最终用户将一次上载多达100张高分辨率(~4mb)照片,因此性能是一个优先事项


在这种情况下,我会看到性能的提高吗(即等待应用程序处理上传的总时间)如果我将控制器更改为AsyncController?

可能不会提高性能,但它可能会卸载一些工作线程,特别是在Amazon S3服务器上等待上载时,这是一项IO绑定任务,您可以从I/O完成端口中获益。就调整大小而言,这是一项CPU受限的任务,因此除了改进算法之外,您没有什么可以做的。

它可能不会提高性能,但可能会卸载一些工作线程,特别是在Amazon S3服务器上等待上传时,这是一项IO受限的任务,您可以从I/O中获益完成端口。就调整大小而言,这是一项CPU受限的任务,因此除了改进算法之外,您没有什么可以做的。

因此,就总执行时间而言,多次同时上传到Amazon S3将是一个让我受益的地方?@jessegavin,您不会从任何总时间中受益:异步控制器仍然阻塞,用户必须等待。但是,由于I/O完成端口,其他操作的总体性能可能会提高,因为您将释放工作线程。这里有一篇很好的文章,你可能会读到:非常感谢Darin。我将把这个问题留待以后再回答。我很感激。因此,就总执行时间而言,多次同时上传到Amazon S3将是一个我认为有益的地方?@jessegavin,你不会从任何总时间中受益:异步控制器仍然阻塞,用户必须等待。但是,由于I/O完成端口,其他操作的总体性能可能会提高,因为您将释放工作线程。这里有一篇很好的文章,你可能会读到:非常感谢Darin。我将把这个问题留待以后再回答。我很感激。