我正在从文件中读取一堆字节消息。 我想将每条消息读入缓冲区,进行一些解析,然后将消息存储到带有字段数据的对象中。
一般来说,最好使用全局引用分配一 block 内存并为我读取的每条消息重用它,还是为每条消息分配本地对象不同的内存块(这样它可以被垃圾收集,因为有没有全局引用)?
此外,是否有一些引用资料列出了良好的 Java 编程实践/设计,可能涵盖此技术以及构建 Java 代码所需的其他技术?我已经编写 Java 代码很长时间了,但不确定我的所有技术是否都是最理想的。
最佳答案
我建议您查看Creational Patterns一般来说。这应该为您提供一个良好的入门平台。
Five well-known design patterns that are parts of creational patterns are the
- Abstract factory pattern, which provides an interface for creating related or dependent objects without specifying the objects' concrete classes.
- Builder pattern, which separates the construction of a complex object from its representation so that the same construction process can create different representations.
- Factory method pattern, which allows a class to defer instantiation to subclasses. =4. Prototype pattern, which specifies the kind of object to create using a prototypical instance, and creates new objects by cloning this prototype.
- Singleton pattern, which ensures that a class only has one instance, and provides a global point of access to it.
这些创建模式通常用于高性能 Java 应用程序。但需要更多的细节和测试才能知道哪种模式可以提高您的个人表现。
单独,并且比简单地更好地管理对象生命周期更进一步。有诸如OpenHFT之类的库(高频交易)甚至可以让你 IPC 进入共享内存段。 不,这不是你想要的,我假设你没有计算微秒。但我认为这说明关闭 GC 并不像描述的那么牵强。
但如果我是你,我会尝试一种合适的创建模式来更好地管理我的对象生命周期。
关于java - 内存分配的最佳技术 - 重用一个全局内存或分配许多本地缓冲区并让它被垃圾收集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30834977/