mirror of
https://github.com/Snailclimb/JavaGuide
synced 2025-08-01 16:28:03 +08:00
Compare commits
6 Commits
ff1db4debb
...
22a081dedf
Author | SHA1 | Date | |
---|---|---|---|
|
22a081dedf | ||
|
82940449fe | ||
|
7a31e22f8e | ||
|
55f7390375 | ||
|
f87f16a081 | ||
|
2605c41e13 |
@ -282,7 +282,7 @@ TLB 的设计思想非常简单,但命中率往往非常高,效果很好。
|
|||||||

|

|
||||||
|
|
||||||
1. **最佳页面置换算法(OPT,Optimal)**:优先选择淘汰的页面是以后永不使用的,或者是在最长时间内不再被访问的页面,这样可以保证获得最低的缺页率。但由于人们目前无法预知进程在内存下的若干页面中哪个是未来最长时间内不再被访问的,因而该算法无法实现,只是理论最优的页面置换算法,可以作为衡量其他置换算法优劣的标准。
|
1. **最佳页面置换算法(OPT,Optimal)**:优先选择淘汰的页面是以后永不使用的,或者是在最长时间内不再被访问的页面,这样可以保证获得最低的缺页率。但由于人们目前无法预知进程在内存下的若干页面中哪个是未来最长时间内不再被访问的,因而该算法无法实现,只是理论最优的页面置换算法,可以作为衡量其他置换算法优劣的标准。
|
||||||
2. **先进先出页面置换算法(FIFO,First In First Out)** : 最简单的一种页面置换算法,总是淘汰最先进入内存的页面,即选择在内存中驻留时间最久的页面进行淘汰。该算法易于实现和理解,一般只需要通过一个 FIFO 队列即可需求。不过,它的性能并不是很好。
|
2. **先进先出页面置换算法(FIFO,First In First Out)** : 最简单的一种页面置换算法,总是淘汰最先进入内存的页面,即选择在内存中驻留时间最久的页面进行淘汰。该算法易于实现和理解,一般只需要通过一个 FIFO 队列即可满足需求。不过,它的性能并不是很好。
|
||||||
3. **最近最久未使用页面置换算法(LRU ,Least Recently Used)**:LRU 算法赋予每个页面一个访问字段,用来记录一个页面自上次被访问以来所经历的时间 T,当须淘汰一个页面时,选择现有页面中其 T 值最大的,即最近最久未使用的页面予以淘汰。LRU 算法是根据各页之前的访问情况来实现,因此是易于实现的。OPT 算法是根据各页未来的访问情况来实现,因此是不可实现的。
|
3. **最近最久未使用页面置换算法(LRU ,Least Recently Used)**:LRU 算法赋予每个页面一个访问字段,用来记录一个页面自上次被访问以来所经历的时间 T,当须淘汰一个页面时,选择现有页面中其 T 值最大的,即最近最久未使用的页面予以淘汰。LRU 算法是根据各页之前的访问情况来实现,因此是易于实现的。OPT 算法是根据各页未来的访问情况来实现,因此是不可实现的。
|
||||||
4. **最少使用页面置换算法(LFU,Least Frequently Used)** : 和 LRU 算法比较像,不过该置换算法选择的是之前一段时间内使用最少的页面作为淘汰页。
|
4. **最少使用页面置换算法(LFU,Least Frequently Used)** : 和 LRU 算法比较像,不过该置换算法选择的是之前一段时间内使用最少的页面作为淘汰页。
|
||||||
5. **时钟页面置换算法(Clock)**:可以认为是一种最近未使用算法,即逐出的页面都是最近没有使用的那个。
|
5. **时钟页面置换算法(Clock)**:可以认为是一种最近未使用算法,即逐出的页面都是最近没有使用的那个。
|
||||||
|
@ -239,7 +239,7 @@ for (int binCount = 0; ; ++binCount) {
|
|||||||
// 遍历到链表最后一个节点
|
// 遍历到链表最后一个节点
|
||||||
if ((e = p.next) == null) {
|
if ((e = p.next) == null) {
|
||||||
p.next = newNode(hash, key, value, null);
|
p.next = newNode(hash, key, value, null);
|
||||||
// 如果链表元素个数大于等于TREEIFY_THRESHOLD(8)
|
// 如果链表元素个数大于TREEIFY_THRESHOLD(8)
|
||||||
if (binCount >= TREEIFY_THRESHOLD - 1) // -1 for 1st
|
if (binCount >= TREEIFY_THRESHOLD - 1) // -1 for 1st
|
||||||
// 红黑树转换(并不会直接转换成红黑树)
|
// 红黑树转换(并不会直接转换成红黑树)
|
||||||
treeifyBin(tab, hash);
|
treeifyBin(tab, hash);
|
||||||
|
@ -57,7 +57,7 @@ IoC 的思想就是两方之间不互相依赖,由第三方容器来管理相
|
|||||||
|
|
||||||

|

|
||||||
|
|
||||||
使用 IoC 的思想,我们将对象的控制权(创建、管理)交有 IoC 容器去管理,我们在使用的时候直接向 IoC 容器 “要” 就可以了
|
使用 IoC 的思想,我们将对象的控制权(创建、管理)交由 IoC 容器去管理,我们在使用的时候直接向 IoC 容器 “要” 就可以了
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user