Skip to content

Commit 6534ddd

Browse files
committed
lru fixes
1 parent 8f988b1 commit 6534ddd

File tree

10 files changed

+569
-1075
lines changed

10 files changed

+569
-1075
lines changed

bench/algorithm/coro-prime-sieve/1000_out

Lines changed: 0 additions & 1000 deletions
This file was deleted.
Lines changed: 100 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,100 @@
1+
2
2+
3
3+
5
4+
7
5+
11
6+
13
7+
17
8+
19
9+
23
10+
29
11+
31
12+
37
13+
41
14+
43
15+
47
16+
53
17+
59
18+
61
19+
67
20+
71
21+
73
22+
79
23+
83
24+
89
25+
97
26+
101
27+
103
28+
107
29+
109
30+
113
31+
127
32+
131
33+
137
34+
139
35+
149
36+
151
37+
157
38+
163
39+
167
40+
173
41+
179
42+
181
43+
191
44+
193
45+
197
46+
199
47+
211
48+
223
49+
227
50+
229
51+
233
52+
239
53+
241
54+
251
55+
257
56+
263
57+
269
58+
271
59+
277
60+
281
61+
283
62+
293
63+
307
64+
311
65+
313
66+
317
67+
331
68+
337
69+
347
70+
349
71+
353
72+
359
73+
367
74+
373
75+
379
76+
383
77+
389
78+
397
79+
401
80+
409
81+
419
82+
421
83+
431
84+
433
85+
439
86+
443
87+
449
88+
457
89+
461
90+
463
91+
467
92+
479
93+
487
94+
491
95+
499
96+
503
97+
509
98+
521
99+
523
100+
541
Lines changed: 200 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,200 @@
1+
2
2+
3
3+
5
4+
7
5+
11
6+
13
7+
17
8+
19
9+
23
10+
29
11+
31
12+
37
13+
41
14+
43
15+
47
16+
53
17+
59
18+
61
19+
67
20+
71
21+
73
22+
79
23+
83
24+
89
25+
97
26+
101
27+
103
28+
107
29+
109
30+
113
31+
127
32+
131
33+
137
34+
139
35+
149
36+
151
37+
157
38+
163
39+
167
40+
173
41+
179
42+
181
43+
191
44+
193
45+
197
46+
199
47+
211
48+
223
49+
227
50+
229
51+
233
52+
239
53+
241
54+
251
55+
257
56+
263
57+
269
58+
271
59+
277
60+
281
61+
283
62+
293
63+
307
64+
311
65+
313
66+
317
67+
331
68+
337
69+
347
70+
349
71+
353
72+
359
73+
367
74+
373
75+
379
76+
383
77+
389
78+
397
79+
401
80+
409
81+
419
82+
421
83+
431
84+
433
85+
439
86+
443
87+
449
88+
457
89+
461
90+
463
91+
467
92+
479
93+
487
94+
491
95+
499
96+
503
97+
509
98+
521
99+
523
100+
541
101+
547
102+
557
103+
563
104+
569
105+
571
106+
577
107+
587
108+
593
109+
599
110+
601
111+
607
112+
613
113+
617
114+
619
115+
631
116+
641
117+
643
118+
647
119+
653
120+
659
121+
661
122+
673
123+
677
124+
683
125+
691
126+
701
127+
709
128+
719
129+
727
130+
733
131+
739
132+
743
133+
751
134+
757
135+
761
136+
769
137+
773
138+
787
139+
797
140+
809
141+
811
142+
821
143+
823
144+
827
145+
829
146+
839
147+
853
148+
857
149+
859
150+
863
151+
877
152+
881
153+
883
154+
887
155+
907
156+
911
157+
919
158+
929
159+
937
160+
941
161+
947
162+
953
163+
967
164+
971
165+
977
166+
983
167+
991
168+
997
169+
1009
170+
1013
171+
1019
172+
1021
173+
1031
174+
1033
175+
1039
176+
1049
177+
1051
178+
1061
179+
1063
180+
1069
181+
1087
182+
1091
183+
1093
184+
1097
185+
1103
186+
1109
187+
1117
188+
1123
189+
1129
190+
1151
191+
1153
192+
1163
193+
1171
194+
1181
195+
1187
196+
1193
197+
1201
198+
1213
199+
1217
200+
1223

bench/algorithm/lru/1.dart

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import 'package:kt_dart/kt.dart';
1+
import "dart:collection";
22

33
class LCG {
44
int seed;
@@ -16,29 +16,29 @@ class LCG {
1616
}
1717
}
1818

19-
class LRU {
19+
class LRU<K, V> {
2020
final int size;
21-
final KtLinkedMap map = KtLinkedMap.empty();
21+
final LinkedHashMap<K, V> map = LinkedHashMap<K, V>();
2222
LRU(int this.size);
2323

24-
int? get(int key) {
25-
final ret = map.getOrDefault(key, null);
24+
V? get(K key) {
25+
final ret = map[key];
2626
if (ret != null) {
2727
map.remove(key);
28-
map.put(key, ret);
28+
map[key] = ret;
2929
}
3030
return ret;
3131
}
3232

33-
void put(int key, int value) {
33+
void put(K key, V value) {
3434
if (map.containsKey(key)) {
3535
map.remove(key);
3636
} else {
37-
if (map.size == size) {
38-
map.remove(map.keys.first());
37+
if (map.length == size) {
38+
map.remove(map.keys.first);
3939
}
4040
}
41-
map.put(key, value);
41+
map[key] = value;
4242
}
4343
}
4444

@@ -50,7 +50,7 @@ void main(List<String> arguments) {
5050
var missed = 0;
5151
final rng0 = LCG(0);
5252
final rng1 = LCG(1);
53-
final lru = LRU(size);
53+
final lru = LRU<int, int>(size);
5454
for (var i = 0; i < n; i++) {
5555
final n0 = rng0.next() % mod;
5656
lru.put(n0, n0);

0 commit comments

Comments
 (0)