如何组建做网站的团队,公司网站建设怎么,网站职能建设论文,seo网站首页推广文章目录 LRU 是什么#xff1f;如何实现#xff1f;什么是堆内存#xff1f;参数如何设置#xff1f; LRU 是什么#xff1f;如何实现#xff1f;
最近最少使用策略 LRU#xff08;Least Recently Used#xff09;是一种缓存淘汰算法#xff0c;是一种缓存淘汰机制。… 文章目录 LRU 是什么如何实现什么是堆内存参数如何设置 LRU 是什么如何实现
最近最少使用策略 LRULeast Recently Used是一种缓存淘汰算法是一种缓存淘汰机制。 1使用双向链表实现的队列队列的最大容量为缓存的大小。在使用过程中把最近使用的页面移动到队列头最近没有使用的页面将被放在队列尾的位置 2使用一个哈希表把页号作为键把缓存在队列中的节点的地址作为值只需要把这个页对应的节点移动到队列的前面如果需要的页面在内存中此时需要把这个页面加载到内存中简单的说就是将一个新节点添加到队列前面并在哈希表中跟新相应的节点地 址如果队列是满的那么就从队尾移除一个节点并将新节点添加到队列的前面。
什么是堆内存参数如何设置
堆内存是指由程序代码自由分配的内存与栈内存作区分。 在 Java 中堆内存主要用于分配对象的存储空间只要拿到对象引用所有线程都可以访问堆内存。 1-Xmx, 指定最大堆内存。 如 -Xmx4g. 这只是限制了 Heap 部分的最大值为 4g。这个内存不包括栈内存也不包括堆外使用的内存。 2-Xms, 指定堆内存空间的初始大小。 如 -Xms4g。 而且指定的内存大小并不是操作系统实际分配的初始值而是 GC 先规划好用到才分配。 专用服务器上需要保持 –Xms 和 –Xmx 一致否则应用刚启动可能就有好几个 FullGC。当两者配置不一致时堆内存扩容可能会导致性能抖动。
3-Xmn, 等价于 -XX:NewSize使用 G1 垃圾收集器 不应该 设置该选项在其他的某些业务场景下可以设置。官方建议设置为 -Xmx 的 1/2 ~ 1/4. 4-XXMaxPermSizesize, 这是 JDK1.7 之前使用的。Java8 默认允许的 Meta 空间无限大此参数无效。 5-XXMaxMetaspaceSizesize, Java8 默认不限制 Meta 空间, 一般不允许设置该选项。 6-XXMaxDirectMemorySizesize系统可以使用的最大堆外内存这个参数跟 - Dsun.nio.MaxDirectMemorySize 效果相同。 7-Xss, 设置每个线程栈的字节数。 例如 -Xss1m 指定线程栈为 1MB与- XX:ThreadStackSize1m 等价