【发布时间】:2013-02-21 12:26:38
【问题描述】:
我目前有一个自定义类的数组,如下所示:
Phy[] memory = new Phy[256];
在我的Phy 类中,我具有以下功能:
- 获取时间戳(返回时间戳)
- 更新时间戳(使用系统时间,获取自 1970 年以来的毫秒并设置)
当涉及到 LRU 部分来查找 LRU 类时,我会这样做:
public int getLeastRecentlyUsed(){
long leastUsed = memory[0].getTimeStamp();
int leastUsedPosition = 0;
for(int i = 0; i < memory.length; i++){
if(memory[i].getTimeStamp() < leastUsed){
leastUsed = memory[i].getTimeStamp();
leastUsedPosition = i;
}
}
return leastUsedPosition;
}
这基本上是寻找最旧的时间戳。
我刚刚意识到的问题是,处理器可以在 MS 中执行许多这样的操作,而留下一个无用的算法。
我该怎么做才能排序?
【问题讨论】: