我们有一组应用程序可以在同一网络中将数据从一个系统传输到另一个系统。它们使用WCF C#,并且可以连续地一次传输1000个对象。 (收到数据后,接收方应用程序通知发送方发送更多数据)
我想通过在给定时间内传输更多数据来优化流程,并且我在考虑以下哪两个选项更好:
显着增加转移数量。越大越好,使它像50000对象。通过批量处理,这将减少每个数据从用户进程空间转移到网卡所花费的时间。
使转移数量小于1460,这是我们的网络路径MTU。例如,如果一个对象是100个字节,则传输12个对象,留下一些http和soap标题的余量。这样可以避免重新组合TCP段并加快收据速度。 (它将避免过多的RAM使用问题)
你能告诉我哪个选项更好,或者我是否可以尝试其他一些想法来加速转移?
答案 0 :(得分:1)
我认为您的问题不在于转移到网卡的速度。
请告诉我们有关此数据迁移的更多信息 - 它来自平面文件吗? - 你在改变数据吗? - 另一端需要哪种类型的数据?
我猜 - 但我希望你必须改变数据。如果你只需要移动数据,有很多快速移动大文件的方法(例如ftp或其他标准)。
如果您要更改数据,可能是那个让您失望的过程 - 在您的程序上运行一个分析器并对其进行优化。