Lines Matching refs:cache

86 def assert_metrics(cache, expected_value, expected_value_size=1, custom_hashtable=True):  argument
87 assert cache.used_size == expected_value[0], "Expected {}, Actual {}".format(
88 expected_value[0], cache.used_size
91 cache.miss_ratio_stats.num_accesses == expected_value[1]
93 expected_value[1], cache.miss_ratio_stats.num_accesses
96 cache.miss_ratio_stats.num_misses == expected_value[2]
98 expected_value[2], cache.miss_ratio_stats.num_misses
100 assert len(cache.table) == len(expected_value[3]) + len(
103 len(expected_value[3]) + len(expected_value[4]), cache.table.elements
107 val = cache.table.lookup("b{}".format(expeceted_k), expeceted_k)
109 val = cache.table["b{}".format(expeceted_k)]
111 expeceted_k, expected_value, cache.table
116 val = cache.table.lookup("g0-{}".format(expeceted_k), expeceted_k)
118 val = cache.table["g0-{}".format(expeceted_k)]
128 def test_cache(cache, expected_value, custom_hashtable=True): argument
243 cache.access(access)
245 cache,
253 cache.access(k4)
255 cache, expected_value, expected_value_size=1, custom_hashtable=custom_hashtable
259 def test_lru_cache(cache, custom_hashtable): argument
262 test_cache(cache, [3, 7, 4, [2, 3, 4], []], custom_hashtable)
290 def test_mix(cache): argument
291 print("Test Mix {} cache".format(cache.cache_name()))
332 cache.access(k)
333 assert cache.miss_ratio_stats.miss_ratio() > 0
334 if cache.cache_name() == "Trace":
335 assert cache.miss_ratio_stats.num_accesses == n
336 assert cache.miss_ratio_stats.num_misses == trace_num_misses
338 assert cache.used_size <= cache.cache_size
339 all_values = cache.table.values()
343 assert cached_size == cache.used_size, "Expeced {} Actual {}".format(
344 cache.used_size, cached_size
346 print("Test Mix {} cache: Success".format(cache.cache_name()))
408 cache = create_cache(cache_type, cache_size, downsample_size)
409 run(trace_file_path, cache_type, cache, 0, -1, "all")
410 cache_ms[cache_type] = cache
411 assert cache.miss_ratio_stats.num_accesses == n
414 cache = cache_ms[cache_type]
415 ms = cache.miss_ratio_stats.miss_ratio()
419 assert cache.used_size <= cache.cache_size
420 all_values = cache.table.values()
424 assert cached_size == cache.used_size, "Expeced {} Actual {}".format(
425 cache.used_size, cached_size
427 print("Test All {}: Success".format(cache.cache_name()))
433 def test_hybrid(cache): argument
434 print("Test {} cache".format(cache.cache_name()))
459 cache.access(k) # Expect a miss.
461 assert_metrics(cache, [1, 1, 1, [1], []])
465 cache.access(k) # k should be inserted.
466 assert_metrics(cache, [3, 2, 2, [1, 2], [1]])
469 cache.access(k) # k should not be inserted again.
470 assert_metrics(cache, [4, 3, 3, [1, 2, 3], [1]])
476 cache.access(k) # k should observe a hit. No block access.
477 assert_metrics(cache, [4, 4, 3, [1, 2, 3], [1]])
486 cache.access(k) # k should observe a miss. block 3 observes a hit.
487 assert_metrics(cache, [5, 5, 3, [1, 2, 3], [1, 2]])
495 cache.access(k) # k1 should observe a hit.
496 assert_metrics(cache, [5, 6, 3, [1, 2, 3], [1, 2]])
506 cache.access(k)
507 assert_metrics(cache, [5, 7, 3, [1, 2, 3], [1, 2]])
515 cache.access(k)
516 assert_metrics(cache, [7, 8, 4, [1, 2, 3, 5], [1, 2, 4]])
523 cache.access(k)
529 cache.access(k)
531 cache, [kSampleSize, 103, 99, [i for i in range(101 - kSampleSize, 101)], []]
533 print("Test {} cache: Success".format(cache.cache_name()))
538 cache = OPTCache(3)
566 cache.access(k)
568 cache, [1, 1, 1, [1], []], expected_value_size=1, custom_hashtable=False
573 cache.access(k)
575 cache, [2, 2, 2, [1, 2], []], expected_value_size=1, custom_hashtable=False
580 cache.access(k)
582 cache, [3, 3, 3, [1, 2, 3], []], expected_value_size=1, custom_hashtable=False
587 cache.access(k)
590 cache, [3, 4, 4, [1, 3, 4], []], expected_value_size=1, custom_hashtable=False
595 cache.access(k)
598 cache, [3, 5, 5, [1, 3, 5], []], expected_value_size=1, custom_hashtable=False
603 cache.access(k)
606 cache, [3, 6, 6, [1, 3, 6], []], expected_value_size=1, custom_hashtable=False
611 cache.access(k)
614 cache, [3, 7, 7, [1, 6, 7], []], expected_value_size=1, custom_hashtable=False
619 cache.access(k)
621 cache, [3, 8, 7, [1, 6, 7], []], expected_value_size=1, custom_hashtable=False
626 cache.access(k)
629 cache, [3, 9, 8, [6, 7, 8], []], expected_value_size=1, custom_hashtable=False
637 cache.access(k)
639 cache, [3, 10, 9, [10], []], expected_value_size=3, custom_hashtable=False
646 cache = TraceCache(0)
671 cache.access(k)
672 assert cache.miss_ratio_stats.num_accesses == 1
673 assert cache.miss_ratio_stats.num_misses == 0
675 cache.access(k)
676 assert cache.miss_ratio_stats.num_accesses == 2
677 assert cache.miss_ratio_stats.num_misses == 1