Outlook非缓存模式下RDOMail.SaveAs保存RFC822格式邮件性能问题咨询
RDOMail.SaveAs()保存RFC822格式的性能瓶颈与优化疑问
我使用RDOMail.SaveAs()方法将邮件保存为RFC822(olRFC822_Redemption)格式时,发现关闭Outlook的缓存Exchange模式后,方法执行耗时长达5-10秒。即使开启缓存模式,对于早于Exchange账户缓存时长设置的邮件,也会出现同样的延迟问题。
已排除邮件大小影响(测试过小型邮件),且未在网上找到相关问题记录,现请教:
- 为何Outlook能快速打开这类邮件,但保存为RFC822格式却耗时许久?
- 如何提升保存为RFC822格式的性能?(已缓存/预下载的邮件保存无问题)
使用环境
- Redemption v5.27
- Windows 10 x64
- MS 365 Outlook 2208 Build 16.0.15601.20148 64位
性能测试结果
未缓存邮件的测试结果
| 格式类型 | #1 | #2 | #3 | #4 | #5 | Average |
|---|---|---|---|---|---|---|
| olTXT | 1233.9179 ms | 1605.0744 ms | 1067.1984 ms | 1087.7771 ms | 1036.7383 ms | 1206.14122 ms |
| olRTF | 1162.7081 ms | 1043.8742 ms | 1131.8348 ms | 1038.5895 ms | 1045.629 ms | 1084.52712 ms |
| olTemplate | 283.9979 ms | 607.3346 ms | 231.3278 ms | 253.0763 ms | 220.7174 ms | 319.2908 ms |
| olMSG | 193.0037 ms | 192.1193 ms | 175.8402 ms | 193.0315 ms | 183.844 ms | 187.56774 ms |
| olMSGUnicode | 238.9995 ms | 238.1113 ms | 217.5729 ms | 233.68 ms | 229.1856 ms | 231.50986 ms |
| olHTML | 2176.2175 ms | 2160.0654 ms | 1801.6547 ms | 1786.0087 ms | 1844.9965 ms | 1953.78856 ms |
| olMHTML | 2040.2919 ms | 2037.1368 ms | 2103.5237 ms | 2094.5258 ms | 2060.9724 ms | 2067.29012 ms |
| olMHTMLWithAddresses | 1662.0322 ms | 1716.8635 ms | 2458.9654 ms | 2093.9039 ms | 1714.7971 ms | 1929.31242 ms |
| olRFC822 | 4909.5307 ms | 4686.1674 ms | 4876.3511 ms | 4659.7755 ms | 4939.6519 ms | 4814.29532 ms |
| olRFC822_Redemption | 4556.5926 ms | 4661.7288 ms | 4836.586 ms | 4617.6806 ms | 4973.5898 ms | 4729.23556 ms |
| olRFC822_Tnef | 4941.2885 ms | 6016.8583 ms | 5222.8734 ms | 5148.6418 ms | 4840.2205 ms | 5233.9765 ms |
已缓存(预下载)邮件的测试结果
| 格式类型 | #1 | #2 | #3 | #4 | #5 | Average |
|---|---|---|---|---|---|---|
| olTXT | 37.0018 ms | 1.0009 ms | 1.0015 ms | 0.999 ms | 1 ms | 8.20064 ms |
| olRTF | 15.9999 ms | 6.9991 ms | 9.0003 ms | 19.0016 ms | 6.0024 ms | 11.40066 ms |
| olTemplate | 17.0064 ms | 17.9998 ms | 19.9996 ms | 23 ms | 17.9962 ms | 19.2004 ms |
| olMSG | 18.0006 ms | 17.9988 ms | 20.0005 ms | 18.0002 ms | 17.0016 ms | 18.20034 ms |
| olMSGUnicode | 21.9966 ms | 18.0003 ms | 19.0119 ms | 16.9994 ms | 19.0122 ms | 19.00408 ms |
| olHTML | 2.0028 ms | 2.0001 ms | 2.0023 ms | 1.0014 ms | 1.9973 ms | 1.80078 ms |
| olMHTML | 2 ms | 1.9992 ms | 2.0006 ms | 1.9987 ms | 2.0029 ms | 2.00028 ms |
| olMHTMLWithAddresses | 3.0004 ms | 2.9999 ms | 2.9999 ms | 2.0005 ms | 2.0024 ms | 2.60062 ms |
| olRFC822 | 871.1101 ms | 482.9009 ms | 475.6052 ms | 525.0308 ms | 475.5305 ms | 566.0355 ms |
| olRFC822_Redemption | 3.9994 ms | 2.9985 ms | 3.0021 ms | 4.0013 ms | 2.9988 ms | 3.40002 ms |
| olRFC822_Tnef | 8.0003 ms | 7.0002 ms | 8.0017 ms | 7.9987 ms | 8.9999 ms | 8.00016 ms |
内容的提问来源于stack exchange,提问作者Norbert Székely
相关产品推荐
相关产品推荐

