nginx内存池大小快内存

总览

使用直接内存不能保证提高性能。 考虑到它增加了复杂性,除非有充分的理由使用它,否则应避免使用它。

塞尔吉奥·奥利维拉(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

nginx内存池大小快内存

nginx内存池大小快内存_使用直接内存时可以更快相关推荐

  1. 【高并发内存池】第一篇:定长内存池设计

    文章目录 一. 什么是内存池? 1. 池化技术 2. 内存池概念 二. 为什么要有内存池? 1. 内存碎片问题 2. 内存池带来的好处 三. 定长内存池设计 1. 定长内存池特点 2. 定长内存池基本 ...

  2. LwIP 之六 详解内存池(memp.c/h)动态内存管理策略

      对于嵌入式开发来说,内存管理及使用是至关重要的,内存的使用多少.内存泄漏等时刻需要注意!合理的内存管理策略将从根本上决定内存分配和回收效率,最终决定系统的整体性能.LwIP 就提供了 动态内存堆管 ...

  3. 内存池——第一章 几种常用的内存池技术

    几乎所有应用程序中都会有内存的分配和释放,而频繁的分配和释放内存无疑会产生内存碎片,降低系统性能,尤其对性能要求较高的程序比较明显.下面介绍几种常见的内存池技术.     一  环形缓存     环形 ...

  4. 怎么使计算机软件运行快w10,如何使win10系统运行的更快?

    微软推出的新操作系统Windows 10越来越受到欢迎,用户越来越多,大家是不是会有这样的感觉:同一款电脑,同样的配置,为什么有的人的电脑用起来非常的流畅,而有的人就连打开个网页都卡的要命:有的人的电 ...

  5. 浏览器是直接加载二进制图片更快还是加载base64编码的图片更快?

    问题对人有帮助,内容完整,我也想知道答案0问题没有实际价值,缺少关键内容,没有改进余地 浏览器是直接加载二进制图片更快还是加载base64编码的图片更快?哪个效率更高? 例如: <img src ...

  6. 安卓 background的图片随着textview的大小而改变_苹果4G内存吊打安卓8G内存?看看苹果是怎么虐安卓的!...

    戳上面的蓝字关注我们哦! 大家好!我是小马哥! 精致有趣的科技数码体验与测评 尽在"来回科技" 有锁机全面科普 科普丨什么是有锁机/卡贴机 信号测试丨有锁机vs无锁机 全新来回商城 ...

  7. 微型计算机内存单位大小排列顺序,内存单位大小怎么排列_内存单位从小排到大是什么-系统城...

    内存存储单位是一种计量单位,指的是以一个特点的量或者作为一个记录的,去定义另一个点.而内存单位有很多,那么它们之间从小到大应该怎么排列呢?接下来小编就给大家带来内存单位大小的排列. 具体如下: 1.电 ...

  8. 使用直接内存时可以更快

    总览 使用直接内存不能保证提高性能. 考虑到它增加了复杂性,除非有充分的理由使用它,否则应避免使用它. 塞尔吉奥·奥利维拉(Sergio Oliveira Jr)的这篇出色文章表明,这不仅仅是使用直接 ...

  9. c语言内存池中 二维数组,C语言内存池使用模型-2 - Mr.南柯 - 51Testing软件测试网 51Testing软件测试网-软件测试人的精神家园...

    51Testing软件测试网A(@B-BHcSd4l 五.内存池管理内存机制(单链表管理结构)51Testing软件测试网!d"ZpnNr3K8IM;jsx51Testing软件测试网!dB ...

最新文章

  1. 3月 致 -.-- -..- -
  2. 2018-2019 ACM-ICPC, Asia Xuzhou Regional Contest
  3. 串结构练习——字符串匹配 解题报告
  4. 【Android 异步操作】手写 Handler ( 循环者 Looper | Looper 初始化 | Looper 遍历消息队列 MessageQueue )
  5. [Jarvis OJ - PWN]——Typo(内涵peak小知识)
  6. linux进程通讯-纯文本文件
  7. FreeSql (四)实体特性 Fluent Api
  8. 详解TCP协议的服务特点以及连接建立与终止的过程(俗称三次握手四次挥手)
  9. oracle 新增加控制文件,Oracle增加控制文件副本
  10. springboot系列六、springboot配置错误页面及全局异常
  11. Flutter高级第3篇:底部 Tab 切换保持页面状态的几种方法
  12. 1.为什么 要需要变量。二进制,方便,2.变量是什么 ,3.声明变量
  13. mongodb-Configuration
  14. 《UNIX编程艺术》--读书笔记
  15. 6.ring3-ImportREC重建输入表
  16. 自动驾驶中的多种卡尔曼滤波算法及推导详解,值得一读!
  17. HCIE大师之路(二)——IPSec Over GRE综合实验
  18. c语言中if函数作用,c语言if函数的使用方法
  19. 伤感日志:时光远走,流年轻度
  20. Mysql(三)Mysql索引基本原理

热门文章

  1. jQuery 基础教程 (一)之jQuery的由来及简介
  2. 漫画:如何用Zookeeper实现分布式锁?
  3. java图片格式转化(例如jpg格式转化png)
  4. Java 8 HashMap键与Comparable接口
  5. 2018年不能错过的 14 个 Java 库
  6. 第二章jQuery选择器
  7. struts+hibernate+oracle+easyui实现lazyout组件的简单案例——Emp实体类和对应的配置信息
  8. java实现打印直角三角形
  9. 81. 搜索旋转排序数组 II---Leecode----java
  10. householder变换qr分解matlab_【基础教程】Matlab实现傅里叶变换