美文网首页
内存拷贝和free的性能

内存拷贝和free的性能

作者: gykimo | 来源:发表于2021-02-02 11:32 被阅读0次

在小米note5上的测试,频繁malloc和free

1080p

malloc: 33us
free: 22us
memset: 538us
GetByteArrayRegion: 1456us,从Java拷贝内存到C++
GetByteArrayElements: 10us,获得java内存对应的的C++地址
ReleaseByteArrayElements: 29us,和GetByteArrayElements要成对出现,释放使用的java内存。

640x480

malloc: 9us
free: 11us
memset: 84us
GetByteArrayRegion: 262us,从Java拷贝内存到C++
GetByteArrayElements: 7us,获得java内存对应的的C++地址
ReleaseByteArrayElements: 25us,和GetByteArrayElements要成对出现,释放使用的java内存。

分析

我们可以看到拷贝非常耗时,对性能影响比较大,所以内存能不拷贝就不拷贝
其次是memset,memset要远远多余malloc和free;一般情况下memset没有实际用处,所以能不能调用就不调用吧。
malloc和free的耗时并不高,但是随着调用的次数越多,理论上,产生的内存分片越多,malloc和free的耗时也越多。
free的耗时一般比malloc要多,因为free除了将内存还给系统外,可能还要将相邻的空闲内存合并,所以耗时多一些。
反而相对而言,malloc的耗时最少。

相关文章

  • 内存拷贝和free的性能

    在小米note5上的测试,频繁malloc和free 1080p malloc: 33usfree: 22usme...

  • 2 Linux 性能监测-free

    Linux性能监测-free free命令可以显示当前系统未使用的和已使用的内存数目,还可以显示被内核使用的内存缓...

  • JVM

    直接内存 使用场景:Unsafe类、NIO零拷贝、Netty的零拷贝、JNI 优点:性能更高 缺点:内存泄漏难排查...

  • java后端常用线上问题排查命令

    内存瓶颈 free free是查看内存使用情况,包括物理内存、交换内存(swap)和内核缓冲区内存。 free -...

  • 进程间通信binder

    android 一、Binder与传统IPC对比 Binder共享内存Socket性能需要拷贝一次无需拷贝需要拷贝...

  • Binder机制

    Binder Binder是什么?进程间通讯机制Binder共享内存Socket性能需要拷贝一次无需拷贝需要拷贝两...

  • webrtc 内存缓存池

    用途 内存缓存池,主要是解决频繁malloc和free内存时,会造成很大的性能开销;而且长时间运行后,会造成很多的...

  • 2018-10-31-性能测试001

    机器性能几个维度 cpu Memory IO Network free -g 内存 (以KB计), Total(全...

  • Binder核心机制分析,解密跨进程的实现原理

    性能方面共享内存 0次数据拷贝Binder 1次数据拷贝Socket/管道/消息队列 2次数据拷贝 稳定...

  • free命令详解

    free命令详解 free命令显示系统内存的使用情况,包括物理内存,交换内存(swap)和内核缓冲区内存 Mem ...

网友评论

      本文标题:内存拷贝和free的性能

      本文链接:https://www.haomeiwen.com/subject/nwtytltx.html