简
4年前
深度解读ArrayMap优势与缺陷
ArrayMap在内存使用上较HashMap更有优势,在Android开发中广为使用的基础API,也是大家所推荐的方法,但你是否想过Google如此重要的基础类存在缺陷?一、引言在移动设备端内存资源很珍贵,HashMap为实现快速查询带来了很大内存的浪费。为此,2013年5月20日Google工程师DianneHackborn在Android
Wesley13 Wesley13
3年前
java游戏服务器优化
最近游戏服务器经常是启动一段时间后gc很频繁,造成无法登陆游戏,原因无非就是临时内存增长速度很快,那么就是要分析内存飞涨原因先在本地启动游戏服务器,java环境用Jdk1.8先用jps查出java进程,然后执行 jmapdump:live,formatb,file<file\_name.hprof <pid得到游戏服务器内存d
Wesley13 Wesley13
3年前
java 常用命令
查看堆使用情况jmapheappid查看占用内存高的对象jmaphisto:livepid|headn100查看占用内存高的对象,dump成文件,线下分析jmapdump:live,formatb,filexxx.xxxpid查看进程的线程情况psppidLopcpu,pmem,p
Wesley13 Wesley13
3年前
Java NIO —— Buffer(缓冲区)
Buffer是一个抽象类,位于java.nio包中,主要用作缓冲区。注意:Buffer是非线程安全类。缓冲区本质上是一块可以写入数据,然后可以从中读取数据的内存。这块内存被包装成NIOBuffer对象,并提供了一组方法,用来方便的访问该块内存。NIO有以下几种Buffer类型:ByteBufferMappedByteBuff
Stella981 Stella981
3年前
Android low memory killer 机制
Android中,进程的生命周期都是由系统控制的。即使用户在界面上关掉一个应用,切换到了别的应用,那个应用的进程依然是存在于内存之中的。这样设计的目的是为了下次启动应用能更加快速。当然,随着系统运行时间的增长,内存中的进程可能会越来越多,而可用的内存则将会越来越少。AndroidKernel会定时执行一次检查,杀死一些进程,释放掉内存。那么,如何来判断
Stella981 Stella981
3年前
Redis 介绍
Redis的特点Redis本质上是一个KeyValue类型的内存数据库,很像memcached,整个数据库统统加载在内存当中进行操作,定期通过异步操作把数据库数据flush到硬盘上进行保存。 因为是纯内存操作,Redis的性能非常出色,每秒可以处理超过10万次读写操作,是已知性能最快的KeyValueDB。Redis的
Stella981 Stella981
3年前
Redis持久化的几种方式——深入解析RDB
Redis 的读写都是在内存中,所以它的性能较高,但在内存中的数据会随着服务器的重启而丢失,为了保证数据不丢失,我们需要将内存中的数据存储到磁盘,以便Redis重启时能够从磁盘中恢复原有的数据,而整个过程就叫做Redis持久化。!image.png(https://oscimg.oschina.net/oscnet/232e657dae2
Wesley13 Wesley13
3年前
C语言深入学习系列
用C语言写程序时需要知道是大端模式还是小端模式。所谓的大端模式,是指数据的低位保存在内存的高地址中,而数据的高位,保存在内存的低地址中;所谓的小端模式,是指数据的低位保存在内存的低地址中,而数据的高位保存在内存的高地址中。为什么会有大小端模式之分呢?这是因为在计算机系统中,我们是以字节为单位的,每个地址单元都对应着一个字节,
Docker容器只有JRE没有JDK使用Jattach导出内存快照
缘起目前生产环境(k8s部署的)发现某个服务被重启了,当前监控只有普罗米修斯,可以看到当时的内存和CPU都很高。服务接入了阿里的监控工具ARMS,但是没法导出当时的内存快照,ARMS虽然提供了手动导出的功能,但是人很难确定哪个时间点的内存快照是最合适的。虽
融云IM即时通讯 融云IM即时通讯
5个月前
融云IM干货丨如何优化插件以减少内存占用?
为了优化插件以减少内存占用,以下是一些具体的策略和方法:1.代码瓶颈优化:重写热点函数,采用更高效的算法和数据结构,减少不必要的计算和内存分配。2.资源瓶颈处理:实现分批处理和惰性加载机制,减少对内存和CPU的即时需求。3.插件加载优化:重构插件架构,使用