Skip to content

Commit a70a418

Browse files
committed
fix unused cache_size in loop
Add avg_hit_fitness_score to example/evolve_binary_arc_cache_fitness
1 parent 875e18a commit a70a418

File tree

1 file changed

+12
-3
lines changed

1 file changed

+12
-3
lines changed

examples/evolve_binary_arc_cache_fitness.rs

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,17 +33,20 @@ pub struct CachedExpensiveCount {
3333
pub micro_seconds: MicroSeconds,
3434
pub cache_pointer: Arc<RwLock<LruCache<GenesHash, FitnessValue>>>,
3535
pub cache_counter_pointer: Arc<RwLock<(usize, usize)>>,
36+
pub cache_hit_fitness_score: Arc<RwLock<isize>>,
3637
}
3738
impl CachedExpensiveCount {
3839
pub fn new(
3940
micro_seconds: MicroSeconds,
4041
cache_pointer: Arc<RwLock<LruCache<GenesHash, FitnessValue>>>,
4142
cache_counter_pointer: Arc<RwLock<(usize, usize)>>,
43+
cache_hit_fitness_score: Arc<RwLock<isize>>,
4244
) -> Self {
4345
Self {
4446
micro_seconds,
4547
cache_pointer,
4648
cache_counter_pointer,
49+
cache_hit_fitness_score,
4750
}
4851
}
4952
}
@@ -64,6 +67,7 @@ impl Fitness for CachedExpensiveCount {
6467

6568
if let Some(value) = maybe_value {
6669
self.cache_counter_pointer.write().unwrap().0 += 1;
70+
*self.cache_hit_fitness_score.write().unwrap() += value;
6771
// println!("cache-hit");
6872
Some(value)
6973
} else {
@@ -100,18 +104,20 @@ fn main() {
100104
// println!("{}", evolve);
101105

102106
for repeats in [1, 2, 4, 8, 16, 32, 64, 128] {
103-
for cache_size in [1000, 10_000, 100_000, 1_000_000] {
107+
for cache_size in [10, 100, 1000, 10_000, 100_000, 1_000_000] {
104108
let cache: LruCache<GenesHash, FitnessValue> =
105-
LruCache::new(NonZeroUsize::new(100_000_000).unwrap());
109+
LruCache::new(NonZeroUsize::new(cache_size).unwrap());
106110
let cache_pointer = Arc::new(RwLock::new(cache));
107111
let cache_counter_pointer = Arc::new(RwLock::new((0, 0)));
112+
let cache_hit_fitness_score = Arc::new(RwLock::new(0));
108113

109114
let _ = evolve_builder
110115
.clone()
111116
.with_fitness(CachedExpensiveCount::new(
112117
0,
113118
cache_pointer,
114119
cache_counter_pointer.clone(),
120+
cache_hit_fitness_score.clone(),
115121
))
116122
// .with_par_fitness(true)
117123
// .with_reporter(EvolveReporterSimple::new(100))
@@ -121,7 +127,10 @@ fn main() {
121127
let cache_misses = cache_counter_pointer.read().unwrap().1;
122128
let ratio = cache_hits as f32 / cache_misses as f32;
123129

124-
println! {"repeats: {}, cache_size: {}, cache_hits: {}, cache_misses: {}, ratio: {}", repeats, cache_size, cache_hits, cache_misses, ratio};
130+
let hit_fitness_score = *cache_hit_fitness_score.read().unwrap();
131+
let avg_hit_fitness_score = hit_fitness_score as f32 / cache_hits as f32;
132+
133+
println! {"repeats: {}, cache_size: {}, cache_hits: {}, cache_misses: {}, ratio: {}, avg_hit_fitness_score: {}", repeats, cache_size, cache_hits, cache_misses, ratio, avg_hit_fitness_score};
125134
}
126135
}
127136
}

0 commit comments

Comments
 (0)