文档章节

关于非堆内存申请的性能测试

愚民日记
 愚民日记
发布于 2017/07/20 13:31
字数 219
阅读 28
收藏 0

最近有朋友关于 Voovan 申请非堆内存后在连接关闭后进行释放的问题存在疑问,这里我进行了一个非对内存申请的测试.

测试代码如下:

public class UnsafePerformance {


    public static void main(String[] args) throws Exception {
        Logger.simple(TEnv.getCurrentPID());
        long address = 0;
        long start = 0;

        //切换这个标记,使用堆和堆外内存,观察性能情况
        boolean useStackMemory = false;

        for(int x=0;x<10;x++) {
            start = System.currentTimeMillis();
            for (int i = 0; i < 100000; i++) {
                if(useStackMemory) {
                    byte[] b = new byte[1024 * 50];
                } else {
                    address = TUnsafe.getUnsafe().allocateMemory(1024 * 50);
                    TUnsafe.getUnsafe().freeMemory(address);
                }
            }
            Logger.simple("=="+(System.currentTimeMillis() - start)+"==");
        }
    }
}

共申请 10次,每次10w 个 50k 的内存,并记录下每次10w 个申请的时间消耗.

结果如下:

平均没10w 个申请消耗的事件是26ms,锁非堆内存的申请和释放在任何情况下都完全不可能成为瓶颈.

 

 

© 著作权归作者所有

共有 人打赏支持
愚民日记
粉丝 69
博文 9
码字总数 14581
作品 4
乌鲁木齐
后端工程师
私信 提问
云上大数据系列2:如何最大化利用你的集群资源

本篇是云上大数据系列第二篇文章,主要介绍系统的基础调优,让集群的资源能够被充分利用起来。在后续的文章中,我们还将会分享更多关于云上大数据系统的性能分析和调优经验,敬请期待。 大数...

子淑
2018/07/21
0
0
C语言堆内存堆申请与文件读入的性能分析

前言: 对于C语言的学习者来说,对于内存的分析与管理是不得不接触到的问题。这篇文章我希望来讨论下对与C语言对堆内存的使用问题。写这篇博文的原因是由于最近在学习C的过程中的一个查字典的...

某程序猿
2014/07/22
0
7
java内存分析

Java内存泄露监控工具 http://wenku.baidu.com/view/cb7becb765ce050876321307.html 2. 性能测试总结之内存泄露和内存溢出 http://www.uml.org.cn/Test/200912106.asp 刚刚做完了一个项目的性...

Oscarfff
2015/12/10
153
0
JVM 内存模型

Young and Old Generation ![Young Generation and Old Genration][1] Xms = JVM初始分配的内存, def: 1/64 (SurviorRation> 0.7) Xmx = JVM最大分配的内存, def: 1/64 (SurviorRation<0.4)......

Finley.Hamilton
2014/11/28
193
0
.NET面试题解析(06)-GC与内存管理

转自:http://www.cnblogs.com/anding/p/5260319.html 常见面试题目: 1. 简述一下一个引用对象的生命周期? 2. 创建下面对象实例,需要申请多少内存空间? public class User{ } 3. 什么是垃圾...

莫问今朝乄
2018/02/01
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Linux下端口转发工具rinetd介绍

linux下简单好用的工具rinetd,实现端口映射/转发/重定向,针对TCP协议,不支持UDP。 官网地址 http://www.boutell.com/rinetd 里面介绍及使用齐全。 使用场景举例: 阿里云内网Redis连接问题...

ouhoo
8分钟前
0
0
Oracle学习日志-5(算数运算符,比较运算符和逻辑运算符)

因为有编程基础,所以对于这一章还是很好理解,只需要注意对NULL的运算。 操作的表格 算数运算符 查询商品名字和商品售价,并商品售价乘2 SELECT product_name,sale_price * 2 AS "sale_pri...

白话
20分钟前
0
0
搜索引擎(Lucene介绍、分词器详解)

Lucene介绍 Lucene简介 最受欢迎的java开源全文搜索引擎开发工具包。提供了完整的查询引擎和索引引擎,部分文本分词引擎(英文与德文两种西方语言)。Lucene的目的是为软件开发人员提供一个简...

这很耳东先生
25分钟前
0
0
quartz详细介绍

quartz常用api Scheduler 调度程序交互的主要API。 Job 希望由调度程序执行的组件实现的接口。 JobDetail 用于定义作业的实例。 JobDataMap 可以包含不限量的序列化数据,在job运行的时候可以...

大笨象会跳舞吧
25分钟前
0
0
kotlin使用jackson序列化enum

默认情况下,我们序列化与反序列化enum是它的name,事实上大部分情况下我们需要序列化的是我们自定义的value,那应该怎么做呢? 这种情况下我们就需要@JsonValue与@JsonCreator data class U...

weidedong
30分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部