2013-05-29 26 views
0

我已经用Java编写了一个基本的服务器 - 客户机体系结构,并且我正在使用可序列化的类来进行数据包传输。我可能在一些关于stackoverflow的问题中看到了“tobytearray,frombyarray”函数。服务器工作并且必须实时工作,因此每秒钟发送的数据包几乎超过20-30个。当我读取一个数据包或写一个数据包时,我会序列化这个类,并且这个操作可能会花费很多,因为我经常创建一个新的ObjectOutputStream和一个ByteArrayOutputStream,如果您认为它每秒发生30次,它可能会切断性能。所以我想在主类中创建一个静态的ByteArrayOutputStream和ObjectOutputStream,所以每个数据包在序列化或反序列化时都会使用它们,这些已经创建好了,所以我将在一秒钟内分配30次的代价。但它会造成另一次性能下降吗?我应该每次刷新或重置ByteArrayStream?使用单个ByteArrayOut/InputStream和ObjectOut /输入进行多个操作

回答

1

当你认为它会发生30次在第二它可能砍的表现

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

与以往一样:

  • 定义的性能标准在开始编码
  • 写,你可以简单的代码来实现自己的目标正确
  • 测试对你指定的
  • 如果条件在演出前性能不理想,请在你的应用程序中找出最大瓶颈所在
  • 地址瓶颈,不失简洁仅在性能优势证明显著
  • 重复,直到你的代码满足性能标准

我的猜测是,你还没有开始测试的表现呢。你会惊讶计算机每秒可以做多少工作30次。

相关问题