杭州软件测试培训
达内杭州软件测试培训中心

18357109557

热门课程

达内:Java直接内存与非直接内存性能测试

  • 时间:2016-03-16
  • 发布:杭州美工培训
  • 来源:51测试网


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

    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大趋势(上)

WEB安全探测框架——Recon-ng

达内:测试用例中的电子邮箱文本框

达内介绍iOS功能性UI测试框架EarlGrey

达内:python的web应用开发与测试

选择城市和中心
贵州省

广西省

海南省