课程咨询 :0571-56020834 QQ:3163902815

杭州软件测试培训

杭州软件测试培训 > 达内新闻 > 达内:Java直接内存与非直接内存性能测试
  • 达内:Java直接内存与非直接内存性能测试

    发布:杭州软件测试培训      来源:51测试网      时间:2016-03-16


  •     杭州达内软件测试培训专家介绍一下直接内存与非直接内存的区别,以及两者在性能测试上的差异。

        byte byffer可以是两种类型,一种是基于直接内存(也就是非堆内存);另一种是非直接内存(也就是堆内存)。

        对于直接内存来说,JVM将会在IO操作上具有更高的性能,因为它直接作用于本地系统的IO操作。而非直接内存,也就是堆内存中的数据,如果要作IO操作,会先复制到直接内存,再利用本地IO处理。

        从数据流的角度,非直接内存是下面这样的作用链:

        本地IO-->直接内存-->非直接内存-->直接内存-->本地IO

        而直接内存是:

        本地IO-->直接内存-->本地IO

        很明显,再做IO处理时,比如网络发送大量数据时,直接内存会具有更高的效率。

        直接内存使用allocateDirect创建,但是它比申请普通的堆内存需要耗费更高的性能。不过,这部分的数据是在JVM之外的,因此它不会占用应用的内存。

        所以呢,当你有很大的数据要缓存,并且它的生命周期又很长,那么就比较适合使用直接内存。只是一般来说,如果不是能带来很明显的性能提升,还是推荐直接使用堆内存。

        关于直接内存需要注意的,就是上面两点了,其他的关于视图啊、作用链啊,都是使用上的问题了。如果有兴趣,可以参考官方API ,重要的一些用法,还得自己摸索。

    使用场景

        通过上面的官方文档,与一些资料的搜索。可以总结下,直接内存的使用场景:

        1 有很大的数据需要存储,它的生命周期又很长

        2 适合频繁的IO操作,比如网络并发场景






    原文链接:http://www.51testing.com/html/65/n-3707565.html
    推荐文章

上一篇:达内:功能测试之时间测试

下一篇:2016年的自动化测试15大趋势(上)

最新开班日期  |  更多

国际软件测试工程师精品班

国际软件测试工程师精品班

开班日期:每月底

国际软件测试工程师提升班

国际软件测试工程师提升班

开班日期:每月底

国际软件测试工程师就业班

国际软件测试工程师就业班

开班日期:每月底

国际软件测试工程师就业班

国际软件测试工程师就业班

开班日期:每月底

  • 地址:杭州市西湖区文三路199号创业大厦4楼
  • 课程培训电话:0571-56020834 QQ:3163902815     全国服务监督电话:400-827-0010
  • 服务邮箱 ts@tedu.cn
  • 2001-2016 达内国际公司(TARENA INTERNATIONAL,INC.) 版权所有 京ICP证08000853号-56