政务网站集约化建设,南京快速建站公司,带会员中心的淘宝客wordpress,织梦做仿站时 为何会发生本地地址跳转网站地址总览 使用直接内存不能保证提高性能。 考虑到它增加了复杂性#xff0c;除非有充分的理由使用它#xff0c;否则应避免使用它。 塞尔吉奥奥利维拉#xff08;Sergio Oliveira Jr#xff09;的这篇出色文章表明#xff0c;这不仅仅是使用直接内存来提高性能的问题#x… 总览 使用直接内存不能保证提高性能。 考虑到它增加了复杂性除非有充分的理由使用它否则应避免使用它。 塞尔吉奥·奥利维拉Sergio Oliveira Jr的这篇出色文章表明这不仅仅是使用直接内存来提高性能的问题 哪个更快Java堆还是本机内存 当您有大量数据和/或必须对这些数据执行一些IO时直接内存和内存映射文件可以提供帮助。 时间序列数据。 时间序列数据往往具有大量条目并且需要IO来加载和存储数据。 这使其成为内存映射文件和直接内存的理想选择。 我在这里提供了一个例子。 main和测试 对常规对象和内存映射文件执行相同的操作。 注意我不建议访问对象的速度很慢但是使用对象的开销是个问题。 例如加载创建对象标题的大小垃圾回收和保存对象。 该测试将时间和时间两列买入价和卖价以int值标准化加载到时间序列数据中该数据用于计算和保存简单的中间价格基点移动。 该测试执行一个GC以包括管理所涉及对象的开销。 存储 百万 千万 3000万 1亿 2.5亿 对象 0.55秒 4.4秒 16.7秒 86.7秒 225秒 地图 0.056秒 0.46秒 1.3秒 4.5秒 11秒 完整结果 对于较小的数据集内存映射数据不仅速度快10倍对于较大的数据量它的伸缩性也更好因为 内存映射的数据一旦映射到内存中就可以使用 它仅创建少量对象几乎没有堆脚印从而减少了GC时间。 您可以根据需要将其安排在内存中因为每行没有对象因此可以减少每行的开销。 不必额外做任何事情来保存数据。 使用直接内存和内存映射文件并不像使用Java对象那样简单但是如果您有大量数据需求则可能会有很大的不同。 我已经在之前的文章中讨论过对于低延迟要求使用直接内存和内存映射文件也可以有很大的不同。 参考 使用 Vanilla Java博客的JCG合作伙伴 Peter Lawrey 可以更快地使用直接内存 。 翻译自: https://www.javacodegeeks.com/2012/11/when-using-direct-memory-can-be-faster.html