0

我已经用 Java 编写了一个基本的服务器-客户端架构,并且我正在使用可序列化的类进行数据包传输。我可能在stackoverflow的一些问题中看到了“tobytearray,frombytearray”函数。服务器工作并且必须实时工作,因此每秒发送的数据包几乎超过 20-30 个。当我读取一个数据包或写入一个数据包时,我对类进行序列化,这个操作可能会花费很多,因为我不断地用它创建一个新的 ObjectOutputStream 和一个 ByteArrayOutputStream,当你认为它在一秒钟内发生 30 次时,它可能会砍掉表现。所以我想在主类中创建一个静态的 ByteArrayOutputStream 和 ObjectOutputStream ,所以每个 Packet 在序列化或反序列化自己时都使用它们,它们已经创建了,所以我将摆脱每秒分配 30 次的代价。但它会导致另一个性能下降吗?我应该每次都刷新或重置 ByteArrayStream 吗?

4

1 回答 1

1

当您认为它在一秒钟内发生 30 次时,它可能会影响性能

真的吗?你知道,计算机速度很快。除非这些真的是巨大的字节数组,否则我非常怀疑这是一个问题。

如从前:

  • 在开始编码之前定义性能标准
  • 编写最简单的代码以正确实现目标
  • 根据您指定的标准测试性能
  • 如果性能不令人满意,请分析您的应用程序以找出最大的瓶颈所在
  • 解决瓶颈,仅在性能优势证明显着的情况下才失去简单性
  • 重复直到您的代码满足性能标准

我的猜测是你还没有开始测试性能。你会惊讶于一台计算机在一秒钟内可以完成 30 次的工作量。

于 2013-05-29T07:32:04.043 回答