最近有朋友关于 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,所以非堆内存的申请和释放在任何情况下都完全不可能成为瓶颈.

转载于:https://my.oschina.net/helyho/blog/1476258

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

  1. 增加myEclipse的非堆内存

    加大JVM的非堆内存 打开 myeclipse.ini  -startup  ../Common\plugins\org.eclipse.equinox.launcher_1.0.101.R34x_v ...

  2. JVM调优_堆内存溢出和非堆内存溢出

    文章目录 1. pom 2. MemoryController 3. User 对象 4. 动态生成class文件工具类 5. 启动项目 6. 测试连接 7. 异常信息 1. pom <!--动 ...

  3. java堆和非堆_java 堆与非堆 内存

    堆(Heap)和非堆(Non-heap)内存 按照官方的说法:"Java 虚拟机具有一个堆,堆是运行时数据区域,所有类实例和数组的内存均从此处分配.堆是在 Java 虚拟机启动时创建的.&q ...

  4. Java堆内存Heap与非堆内存Non-Heap简介和设置

    Java 开发对JVM(Java虚拟机)的了解很有必要,网上看到,收集整理转载一下,方便日后的懒人计划 堆(Heap)和非堆(Non-heap)内存 按照官方的说法:"Java 虚拟机具有一 ...

  5. Java堆内存Heap与非堆内存Non-Heap

    堆(Heap)和非堆(Non-heap)内存     按照官方的说法:"Java 虚拟机具有一个堆,堆是运行时数据区域,所有类实例和数组的内存均从此处分配.堆是在 Java 虚拟机启动时创建 ...

  6. java non-heap_Java堆内存Heap与非堆内存Non-Heap简介和设置

    Java 开发对JVM(Java虚拟机)的了解很有必要,网上看到,收集整理转载一下,方便日后的懒人计划 堆(Heap)和非堆(Non-heap)内存 按照官方的说法:"Java 虚拟机具有一 ...

  7. JVM堆内存与非堆内存(heap)官方详解

    JVM堆内存与非堆内存(heap)官方详解 JAVA堆内存管理是影响性能主要因素之一. 堆内存溢出是JAVA项目非常常见的故障,在解决该问题之前,必须先了解下JAVA堆内存是怎么工作的. 先看下JAV ...

  8. java非堆内存_java – 监视JVM的非堆内存使用情况

    我们通常处理OutOfMemoryError问题,因为堆或permgen大小配置问题. 但是所有的JVM内存不是permgen或者heap. 据我所知,它也可以与Threads / Stacks,本地 ...

  9. malloc申请堆内存

    1.malloc申请的空间,是否记录空间大小?若是记录,那所记录的空间大小在哪呢?为什么利用free释放不需要空间大小参数呢? malloc申请空间时,记录其空间大小(其空间上方,有一个数据头,头部信 ...

  10. java为什么内存会无限增大_Java进程的内存无限增长,但是MemoryMXBean报告稳定堆和非堆大小...

    我正在与一个开发在1GB Linux目标系统上运行的Java GUI应用程序的团队合作. 我们有一个问题,我们的java进程使用的内存无限期地增长,直到Linux终于杀死了java进程. 我们的堆内存 ...

最新文章

  1. 无线信标功能初步测试
  2. copy,mutableCopy,retain区别
  3. jQuery学习笔记--目录
  4. Python中通常不应该犯的7个错误
  5. 怎样用c语言输出一个函数图像,请教 怎么才能用C输出一个函数的图像?大侠 帮帮忙啊...
  6. 图像的抽线、抽丝、抽图 神马是alpha通道
  7. AutoX创始人肖健雄来信:无人车量产的4大技术储备
  8. 创建和销毁对象(1)
  9. 前景检测算法(五)--GMM,GMM2,GMG
  10. 【LwM2M】LwM2M相关的开源项目
  11. 《小岛经济学》读书笔记摘录
  12. jdbc驱动加载失败
  13. 网站打不开的原因及解决办法
  14. java声卡录音_win10下程序无法录音或使用麦克风
  15. 开关电源模块 遥控开/关电路
  16. 微信公众平台的设计与开发之道
  17. StringBuffer之间的比较、String和StringBuffer的比较
  18. Java中的CAS(compare and swap)
  19. linux打地鼠课程设计,数字电路课程设计打地鼠.doc
  20. java中 引用传递_Java中的引用传递

热门文章

  1. 2022电工杯B题思路模型分析
  2. java培训韩顺平_java韩顺平视频教程
  3. 微信小程序官方开发文档
  4. php磁力链播放源码,Bt种子转磁力链 PHP源码
  5. 标准正态分布怎么算_标准正态分布表怎么看
  6. 软件工程导论--软件工程概述
  7. NFine框架因新增页面而显示无法链接资源
  8. 58同城推荐系统设计与实现
  9. 各尺寸学术会议海报模板[转]
  10. GitHub项目推荐