优化前后的两个数
运行下面这段程序,填写它打印出来的结果。
BLK = 4
LINES = 4
def sim(addrs, ways=1):
sets = LINES // ways
tags = [[None] * ways for _ in range(sets)]
order = [[] for _ in range(sets)]
hit = 0
miss = 0
for a in addrs:
b = a // BLK
s = b % sets
if b in tags[s]:
hit = hit + 1
order[s].remove(b)
order[s].append(b)
else:
miss = miss + 1
if None in tags[s]:
tags[s][tags[s].index(None)] = b
else:
old = order[s].pop(0)
tags[s][tags[s].index(old)] = b
order[s].append(b)
return hit, miss
before = sim(list(range(32)) * 2)
after = sim(list(range(16)) * 2 + list(range(16, 32)) * 2)
print(str(before[1]) + "/" + str(after[1]) + "/"
+ str(before[1] // after[1]))
全部评论