我们经常使用德国和美国的Windows 2003,2008和2008 R2服务器向我们的客户发送批量电子邮件(当然没有垃圾邮件,只是简报),以及我们管理的邮件数量小时在5.000到12.000之间变化,具体取决于我们是使用提取文件夹,本地SMTP还是商业SMTP服务器。我们使用标准.NET库或MailBee组件的简单直接脚本。
这样好吗?平均?坏? 是否有任何明显的瓶颈(即编写多线程脚本是否有意义,还是与邮件服务器的连接限制了速度?)?
答案 0 :(得分:2)
在您编写的任何代码之外,有一些事情会限制此过程的性能。
关于使用多线程加速,嗯,减速在哪里?
电子邮件发送(和接收)主要是I / O绑定任务。在这个问题上抛出线程可能会或很多都无法提高性能。这完全取决于是否存在瓶颈(在代码中)某些地方是否仅受服务器处理能力或带宽的限制。
看看这个SO post我回答了我提供可能有用的多线程解决方案的地方。本质上它使用称为“Data Parallel”的并行编程技术,其中工作负载基本上被分解为多个块,然后每个块由线程处理,保持块的数量与(或接近)的数量相同。机器上的核心。