如何在慢速网络相关程序中增加CPU使用率? VB.net

时间:2014-08-19 14:44:22

标签: vb.net multithreading performance

我有一个网络繁重的程序。在我的visual studio中运行诊断/分析器之后,我发现瓶颈是重复使用Net.HttpWebResponse.GetResponse(),特别是它使用HTTP字符串对设备进行ping操作以获取信息。并重复许多设备响应通过pcapdotnet发出的广播数据包。

有三个不同的类与我的网络上的IP设备通信以获取信息。即"你的配置/日期/时间/分辨率,ip camera"。我通过将http请求缩小到每个类的一行或两行来加快速度,所以我只会尽可能少地将它发送出网络。

因此程序的时间很慢挂钟,但它使用的CPU很少。关于如何将速度提高到更高的CPU时钟以提高速度以补偿网络依赖性,有哪些想法?

我尝试了什么:所以我尝试多线程调用三个类(即Devicebrand1,devicebrand2,devicebrand3).start()的调用,并等到他们全部3线程完成。尽管如此,这并不能真正拯救我。背景工作者会更快吗?

编辑:有些人对我的措辞感到困惑。 " tl:dr"版本是如何让我的GetResponse()更快或我使用我的其他代码快多倍,以弥补GetResponse的速度问题。另一种可能性是如何更快地实现这些函数调用(有些人提到基本上只有多线程是可选的)。

1 个答案:

答案 0 :(得分:0)

你的问题标题相当令人困惑。您正试图加快程序速度并解决网络延迟问题,而不是人为地增加CPU使用率(这根本不会对您有所帮助)。

如果您确实需要所有网络访问权限,那么除了多线程之外您无能为力。多线程不会带来巨大的节省,因为你仍然拥有相同的整体流量,但它会有所不同,因为你可能会同时上传和下载,等待对于一个回应都可以一起发生。