Wesley13 Wesley13
3年前
java虚拟机(三)
普通对象的创建(不包括数组和class对象):当虚拟机遇到new指令时,会在常量池中检查是否包含这个类的符号引用(全限定名),通过这个确定是否经过类加载的过程,如果true,为该对象分配内存,对象大小在类加载过程就已经确定。如果false,需要进行类加载。分配内存1、分配内存的方式:指针碰撞:如果内存
Wesley13 Wesley13
3年前
Java内存分析工具MAT
MAT是一个强大的内存分析工具,可以快捷、有效地帮助我们找到内存泄露,减少内存消耗分析工具。内存中堆的使用情况是应用性能监测的重点,而对于堆的快照,可以dump出来进一步分析,总的来说,一般我们对于堆dump快照有三种方式:添加启动参数发生OOM时自动dump:java应用的启动参数一般最好都加上XX:HeapDumpOnOutOfMe
Wesley13 Wesley13
3年前
CPU缓存和内存屏障
CPU性能优化手段缓存为了提高程序运行的性能,现代CPU在很多方面对程序进行了优化。例如:CPU高速缓存。尽可能地避免处理器访问主内存的时间开销,处理器大多会利用缓存(cache)以提高性能。!(https://oscimg.oschina.net/oscnet/bbe04d9c9b6eb586bfccbd23808
Wesley13 Wesley13
3年前
C++调用Go方法的字符串传递问题及解决方案
摘要:C调用Go方法时,字符串参数的内存管理需要由Go侧进行深度值拷贝。现象在一个APP技术项目中,子进程按请求加载Go的ServiceModule,将需要拉起的ServiceModule信息传递给Go的Loader,存在C调用Go方法,传递字符串的场景。方案验证时,发现有奇怪的将std::string对象的内容传递给G
Stella981 Stella981
3年前
Netty如何监控内存泄露
Netty如何监控内存泄露\TOC\前言一般而言,在Netty程序中都会采用池化的ByteBuf,也就是PooledByteBuf以提高程序性能。但是PooledByteBuf需要在使用完毕后手工释放,否则就会因为PooledByteBuf申请的内存空间没有归还进而造成内存泄露,最终OOM。而一旦
Wesley13 Wesley13
3年前
32位CPU最多支持4G内存是怎么算出来的?(解惑篇)
文章目录前言一、对2^32^4BG的疑惑二、聊一下内存1.内存的特性2.内存的基本结构3.内存地址的概念总结前言这两天在研究java指针压缩的原理,在研究过程中就涉及到了cpu寻址相关方面的知识,为了弄明白原理,所以又查了很多资料,在这个过
Wesley13 Wesley13
3年前
MongoDB分片
分片mongos把分片的mongod管理起来何时分片单个节点磁盘不足单个mongod不能满足写数据的性能要求将大量数据放到内存中提高性能什么是片键选择递增(分布不均匀,查询比较好)还是随机片键片键对操作和性能的影响实施分片启动配置服务器启动mongos添加mongod实例对数据库启
待兔 待兔
11个月前
Java内存的可见性
Java内存的可见性可见性:一个线程对共享变量的修改,能够及时被其它线程看到共享变量:如果一个变量在多个线程的工作内存中都存在副本,那么这个变量就是这几个线程的共享变量Java内存模型(JMM):描述了Java程序中各种线程共享变量的访问规则,以及在JVM
京东云开发者 京东云开发者
6个月前
学习下Redis内存模型
作者:京东零售吴佳前言redis,对于一个java开发工程师来讲,其实算不得什么复杂新奇的技术,但可能也很少人去深入了解学习它的底层的一些东西。下面将通过对内存统计、内存划分、存储细节、对象类型&内部编码这四个模块来学习学习redis的内存模型,手字笔录,
码农较瘦 码农较瘦
1个月前
鸿蒙Ability对比Android的Fragment
鸿蒙通过Ability和动态组件(NodeController)实现类似AndroidFragment的模块化UI,采用声明式开发,生命周期更简洁(onStart/Active/Inactive/Stop)。相比Fragment,鸿蒙在资源占用、渲染效率(支持Vulkan)、跨设备适配及权限管理方面更优,支持多设备无缝流转。Android依赖FragmentTransaction,生态成熟但内存消耗较高。鸿蒙系统以轻量化、高效能见长,兼顾开发效率与多终端适配。