【发布时间】:2011-04-15 10:46:53
【问题描述】:
我正在编写一个 Java 服务器(java.net.Socket、java.net.ServerSocket、java.io.ObjectOutputStream、java.io.ObjectInputStream),我知道分配给它的带宽有限。
我已经为我的输出和输入流编写了一个装饰器对象,所以我可以计算有多少字节通过它来进行分析。但这不会让我知道我用于连接的开销量。
我预计不会太多,但我想为此做好准备。我不会尝试对其进行优化,我只是想知道出于后勤原因(我必须请求多少带宽等)它将需要多少。
我不是第一个尝试获取此信息的人,但我似乎无法找到有关 Java 套接字和 TCP/IP 开销的好资源。 (也许那是因为没有什么值得注意的发现......如果我们的速度是每分钟 kb 的数量级,这真的不是什么大问题,但我还是想知道!)
谢谢!
【问题讨论】:
-
您的带宽有限是因为服务器的连接速度很慢,还是因为您试图防止网络/服务器过载(或保持在上限)?
-
首要考虑的是将带宽成本保持在最低水平。
-
如果您的带宽有限,请不要使用 ObjectOutputStream,除非您非常小心,否则它非常冗长。 (通常这无关紧要)特定于应用程序的序列化可能会小几倍。
标签: java performance sockets tcp