所以...问题如下:
我有两台需要交换数据的计算机。在其中一个(A)上以每秒约6,000个值的速度收集传感器数据。另一个(B)接收此数据,以便在绘图或其他内容中将其可视化。 A和B之间的通信是通过TCP / IP在LAN上完成的。因此,现在A使用缓冲区来临时保存 n 值,然后再将其发送给B。分别发送每个值将导致大量开销。将缓冲区大小 n 设置为6000会导致较大的延迟,因为B会以至少1秒的延迟接收缓冲区中的“最旧”值,但是该值应该在B处可用在较短的间隔内。另外,如果我选择更大的缓冲区大小,则从A到B的传输可能会花费更多时间。
我的意思是可以进行某种基准测试,但是我实际上对解决这一问题的数学方法感兴趣。
我已经想到的是一个根据缓冲区大小 n 计算开销的函数:
(6000 / n) * o
(n = buffer size, o = overhead in bytes)
但这并没有真正帮助找到最佳缓冲区大小 n ...
所以现在我的问题是:如何计算最佳缓冲区大小?基本上,我需要找到一个点,两个值(延迟与开销)处于最佳平衡,以便选择不同的缓冲区大小会使其中一个值变得更糟。我已经读过有关“帕累托”效率的文章,因为它似乎可以解决这个问题。但是我认为这不是正确的方法。也许我只是不知道正确的关键字,只能自己查找。这种优化问题对我来说似乎也很熟悉,但是我不知道到底要寻找什么。