gpt4 book ai didi

java - 使用单个 ByteArrayOut/InputStream 和 ObjectOut/Input 进行多个操作

转载 作者:行者123 更新时间:2023-12-01 14:31:56 25 4
gpt4 key购买 nike

我用 Java 编写了一个基本的服务器-客户端架构,并使用可序列化的类进行数据包传输。我可能在 stackoverflow 上的一些问题中看到了“tobytearray,frombytearray”函数。服务器工作并且必须实时工作,因此一秒钟发送的数据包接近 20-30 个以上。当我读取一个数据包或写入一个数据包时,我序列化该类,此操作可能会花费很大的成本,因为我不断地创建一个新的 ObjectOutputStream 和一个 ByteArrayOutputStream 用它,当你认为它在一秒钟内发生 30 次时,它可能会砍掉表现。所以我考虑在主类中创建一个静态的 ByteArrayOutputStream 和 ObjectOutputStream ,这样每个数据包在序列化或反序列化自身时都会使用它们,这些数据包已经创建了,这样我就可以避免每秒分配 30 次的代价。但这会导致性能再次受到影响吗?我应该每次刷新或重置 ByteArrayStream 吗?

最佳答案

when you think it happens 30 times in a second it is probably chopping the performance

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

一如既往:

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

我的猜测是您还没有开始测试性能。您会对计算机每秒可以完成 30 次的工作量感到惊讶。

关于java - 使用单个 ByteArrayOut/InputStream 和 ObjectOut/Input 进行多个操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16807872/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com