nginx内存池大小快内存_使用直接内存时可以更快
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. 池化技术 2. 内存池概念 二. 为什么要有内存池? 1. 内存碎片问题 2. 内存池带来的好处 三. 定长内存池设计 1. 定长内存池特点 2. 定长内存池基本 ...
- LwIP 之六 详解内存池(memp.c/h)动态内存管理策略
对于嵌入式开发来说,内存管理及使用是至关重要的,内存的使用多少.内存泄漏等时刻需要注意!合理的内存管理策略将从根本上决定内存分配和回收效率,最终决定系统的整体性能.LwIP 就提供了 动态内存堆管 ...
- 内存池——第一章 几种常用的内存池技术
几乎所有应用程序中都会有内存的分配和释放,而频繁的分配和释放内存无疑会产生内存碎片,降低系统性能,尤其对性能要求较高的程序比较明显.下面介绍几种常见的内存池技术. 一 环形缓存 环形 ...
- 怎么使计算机软件运行快w10,如何使win10系统运行的更快?
微软推出的新操作系统Windows 10越来越受到欢迎,用户越来越多,大家是不是会有这样的感觉:同一款电脑,同样的配置,为什么有的人的电脑用起来非常的流畅,而有的人就连打开个网页都卡的要命:有的人的电 ...
- 浏览器是直接加载二进制图片更快还是加载base64编码的图片更快?
问题对人有帮助,内容完整,我也想知道答案0问题没有实际价值,缺少关键内容,没有改进余地 浏览器是直接加载二进制图片更快还是加载base64编码的图片更快?哪个效率更高? 例如: <img src ...
- 安卓 background的图片随着textview的大小而改变_苹果4G内存吊打安卓8G内存?看看苹果是怎么虐安卓的!...
戳上面的蓝字关注我们哦! 大家好!我是小马哥! 精致有趣的科技数码体验与测评 尽在"来回科技" 有锁机全面科普 科普丨什么是有锁机/卡贴机 信号测试丨有锁机vs无锁机 全新来回商城 ...
- 微型计算机内存单位大小排列顺序,内存单位大小怎么排列_内存单位从小排到大是什么-系统城...
内存存储单位是一种计量单位,指的是以一个特点的量或者作为一个记录的,去定义另一个点.而内存单位有很多,那么它们之间从小到大应该怎么排列呢?接下来小编就给大家带来内存单位大小的排列. 具体如下: 1.电 ...
- 使用直接内存时可以更快
总览 使用直接内存不能保证提高性能. 考虑到它增加了复杂性,除非有充分的理由使用它,否则应避免使用它. 塞尔吉奥·奥利维拉(Sergio Oliveira Jr)的这篇出色文章表明,这不仅仅是使用直接 ...
- c语言内存池中 二维数组,C语言内存池使用模型-2 - Mr.南柯 - 51Testing软件测试网 51Testing软件测试网-软件测试人的精神家园...
51Testing软件测试网A(@B-BHcSd4l 五.内存池管理内存机制(单链表管理结构)51Testing软件测试网!d"ZpnNr3K8IM;jsx51Testing软件测试网!dB ...
最新文章
- 3月 致 -.-- -..- -
- 2018-2019 ACM-ICPC, Asia Xuzhou Regional Contest
- 串结构练习——字符串匹配 解题报告
- 【Android 异步操作】手写 Handler ( 循环者 Looper | Looper 初始化 | Looper 遍历消息队列 MessageQueue )
- [Jarvis OJ - PWN]——Typo(内涵peak小知识)
- linux进程通讯-纯文本文件
- FreeSql (四)实体特性 Fluent Api
- 详解TCP协议的服务特点以及连接建立与终止的过程(俗称三次握手四次挥手)
- oracle 新增加控制文件,Oracle增加控制文件副本
- springboot系列六、springboot配置错误页面及全局异常
- Flutter高级第3篇:底部 Tab 切换保持页面状态的几种方法
- 1.为什么 要需要变量。二进制,方便,2.变量是什么 ,3.声明变量
- mongodb-Configuration
- 《UNIX编程艺术》--读书笔记
- 6.ring3-ImportREC重建输入表
- 自动驾驶中的多种卡尔曼滤波算法及推导详解,值得一读!
- HCIE大师之路(二)——IPSec Over GRE综合实验
- c语言中if函数作用,c语言if函数的使用方法
- 伤感日志:时光远走,流年轻度
- Mysql(三)Mysql索引基本原理
热门文章
- jQuery 基础教程 (一)之jQuery的由来及简介
- 漫画:如何用Zookeeper实现分布式锁?
- java图片格式转化(例如jpg格式转化png)
- Java 8 HashMap键与Comparable接口
- 2018年不能错过的 14 个 Java 库
- 第二章jQuery选择器
- struts+hibernate+oracle+easyui实现lazyout组件的简单案例——Emp实体类和对应的配置信息
- java实现打印直角三角形
- 81. 搜索旋转排序数组 II---Leecode----java
- householder变换qr分解matlab_【基础教程】Matlab实现傅里叶变换