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内存池大小快内存

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/351745.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Matlab归一化函数(mapminmax)

功能:将矩阵的每一行处理成[-1,1]区间。处理需要归一化的m*n矩阵X,归一化后的矩阵记为Y。 主要有5种调用形式 1.[Y,PS] mapminmax(X,YMIN,YMAX) 其中,YMIN是我们期望归一化后矩阵Y每行的最小值,YMAX是我们期望归一化后矩阵Y每…

ansible puppet saltstack三款自动化运维工具的对比

一、基础介绍 ansible基础介绍可参考:http://www.linuxidc.com/Linux/2017-12/149671.htm puppet基础介绍可参考:http://www.linuxidc.com/Linux/2017-12/149672.htm saltstack基础介绍可参考:http://www.linuxidc.com/Linux/2017-12/149675.…

Matlab repmat函数

repmat函数主要是以已知的数、向量或矩阵为基本元素,快速得产生一个大的矩阵,它的用法一般有下面几种: 1.使用相同元素初始化矩阵 A repmat(6,3,2) A 6 6 6 6 6 6 2.方块与矩形块格式 A diag([1 2 3]) b repm…

Linux虚拟地址空间布局

在多任务操作系统中,每个进程都运行在属于自己的内存沙盘中。这个沙盘就是虚拟地址空间(Virtual Address Space),在32位模式下它是一个4GB的内存地址块。在Linux系统中, 内核进程和用户进程所占的虚拟内存比例是1:3,而Windows系统为2:2(通过设…

我的方法在这方面看起来很大吗?

以下Java方法的大小是多少? public Collection getDescription() {SystemLibrary systemLib registry.get(SystemLibrary.class);Analysis analysis systemLib.getCurrentAnalysis(registry);return getDescription(analysis);}这个不起眼的方法查找某种系统库&a…

arduino 舵机接线图_求用5个电位器分别控制舵机的arduino的原码和连线图

按照上图连线,按照如下代码烧程序。123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960#define Sin_1 A0 //设置变阻器1路电压采集端口为A0#define Sin_2 A1 //设置变阻器2路电压采集端口为A…

Leetcode 152.乘机最大子序列

乘积最大子序列 给定一个整数数组 nums ,找出一个序列中乘积最大的连续子序列(该序列至少包含一个数)。 示例 1: 输入: [2,3,-2,4] 输出: 6 解释: 子数组 [2,3] 有最大乘积 6。 示例 2: 输入: [-2,0,-1] 输出: 0 解释: 结果不能为 2,…

Matlab sumsqr函数

功能:求矩阵所有元素的平方和 调用形式: [s,n] sumsqr(x) 例1 a [1 2 3;1 2 3]; [s,n] sumsqr(a) s 28 n 6 例2 c [1 2 3 4;1 2 3 4]; [m,n] sumsqr(c) A sumsqr(c) m 60 n 8 A 60 可以看出n返回值是矩阵元素个数

Kali linux安装漏洞扫描工具Nessus指南

引子:Nessus是著名信息安全服务公司tenable推出的一款漏洞扫描与分析软件,号称是"世界上最流行的漏洞扫描程序,全世界超过75,000个组织在使用它"。尽管这个扫描程序可以免费下载得到,但是要从Tenable更新到所有最新的威胁信息,每年…

*p++和*(p++)的区别_同是华为顶级旗舰,P系和Mate系谁最值得购买?明白这点很重要!...

近两年,华为手机凭借P系列和Mate系列的优异设计和销量口碑,已经毫无争议地成为了国产品牌高端代表。同时,华为自身也牢牢占据住中国大陆市场份额第一名宝座,在全球名次中以微弱差距排在第三,与第二名的苹果iPhone厮杀激…

Matlab xlim ylim zlim函数

xlim([xl xr]); 用于限定x轴上下限,其中, xl:x轴下限 xr:x轴上限 ylim([yl yr]);zlim([yl yr])同理。 例子 x [1:0.1:10]; y 3*sin(x); subplot(2,1,1); plot(x,y) subplot(2,1,2); plot(x,y); ylim([-1,1]); …

在Myeclipse buildpath 加server lib (server runtime)

使用Myeclipse,将eclipse下的工程复制过来后,发现提示Tomcat 7.0 unbound。缺少Server Runtime。 解决方法如下: 1,File->New->Other->Server->Server(注意在new时,需要勾上Show All Wizards),下一步,选择…

Go--4大基本数据类型之布尔类型

一:布尔类的定义 布尔类型只取值true和false,且布尔类型只占一个字节,多用于逻辑判断 二:使用举例 转载于:https://www.cnblogs.com/louis181214/p/10196338.html

Excel中数字、数值和文本的区别

数字包括文本型数字和数值型数字两种形式,数值型数字可以计算,文本型数字不能计算。 例1:文本型数字不能计算 例2:数值型数字可以计算 数值型数字如果输入大于11位数,则会显示为科学计数法。如果输入001,则…

单片机全局有必要封装_MCU-C程序基本编程规范(转)

为了提高源程序的质量和可维护性,从而最终提高软件产品生产力,特编写此规范。本标准规定了程序设计人员进行程序设计时必须遵循的规范。本规范主要针对单片机编程语言和08编译器而言,包括排版、注释、命名、变量使用、代码可测性、程序效率、…

The selected server is enabled,but is not configured pro

The selectedserver is enabled,but is not configured properly.Deployment to itwill not be permitted until the problem is corrected.Pleasenavigate to the server preference pages and verify the field withthe prompt:tomcat jdk name: 翻译:选定的服务器…

懒惰评估

最近,我正在编写log4j附加程序,并希望在自定义附加程序创建过程中使用logger记录一些诊断详细信息,但是log4j初始化仅在创建附加程序实例后才完成,因此该阶段记录的消息将被忽略。 我感到需要在自定义附加程序中进行延迟初始化&a…

python基础_格式化输出(%用法和format用法)

%用法 1、整数的输出 %o —— oct 八进制%d —— dec 十进制%x —— hex 十六进制 >>> print(%o % 20) 24 >>> print(%d % 20) 20 >>> print(%x % 20) 14 2、浮点数输出 2.1 格式化输出 %f ——保留小数点后面六位有效数字  %.3f,保留…

CSV大文件的处理(以ngsim数据为例):分割、导入与合并

逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本)。纯文本意味着该文件是一个字符序列&…

python用scrapy爬虫豆瓣_爬虫教程——用Scrapy爬取豆瓣TOP250

最好的学习方式就是输入之后再输出,分享一个自己学习scrapy框架的小案例,方便快速的掌握使用scrapy的基本方法。本想从零开始写一个用Scrapy爬取教程,但是官方已经有了样例,所以还是不写了,尽量分享在网上不太容易找到…