ia7ck / rust-competitive-programming

snippets for competitive programming
Creative Commons Zero v1.0 Universal
0 stars 2 forks source link

ProconReader がとても遅い #20

Closed ia7ck closed 3 years ago

ia7ck commented 3 years ago

原因のひとつは .expect(&format!("{}", aaa)) を使っていること 参考 代わりに .unwrap_or_else(|_| panic!("{}", aaa)) にする

ia7ck commented 3 years ago

Many A+B のテストケースで計測

testcase /tmp/4eadb574dcb743b83b4a231fcab69002/all_max_00.in takes 5084 ms
testcase /tmp/4eadb574dcb743b83b4a231fcab69002/all_zero_00.in takes 4599 ms
testcase /tmp/4eadb574dcb743b83b4a231fcab69002/example_00.in takes 0 ms
testcase /tmp/4eadb574dcb743b83b4a231fcab69002/max_random_00.in takes 4987 ms
testcase /tmp/4eadb574dcb743b83b4a231fcab69002/max_random_01.in takes 4980 ms
testcase /tmp/4eadb574dcb743b83b4a231fcab69002/random_00.in takes 1927 ms
testcase /tmp/4eadb574dcb743b83b4a231fcab69002/random_01.in takes 2296 ms

testcase /tmp/4eadb574dcb743b83b4a231fcab69002/all_max_00.in takes 4615 ms
testcase /tmp/4eadb574dcb743b83b4a231fcab69002/all_zero_00.in takes 4198 ms
testcase /tmp/4eadb574dcb743b83b4a231fcab69002/example_00.in takes 0 ms
testcase /tmp/4eadb574dcb743b83b4a231fcab69002/max_random_00.in takes 4390 ms
testcase /tmp/4eadb574dcb743b83b4a231fcab69002/max_random_01.in takes 4762 ms
testcase /tmp/4eadb574dcb743b83b4a231fcab69002/random_00.in takes 1783 ms
testcase /tmp/4eadb574dcb743b83b4a231fcab69002/random_01.in takes 2058 ms

速くなってる……?

提出を見ると 1.5 倍速くらいになってるのでいいかな

https://judge.yosupo.jp/submission/31828 Name Status Time Memory
all_max_00 AC 401 ms 19.80 Mib
all_zero_00 AC 245 ms 2.55 Mib
example_00 AC 1 ms 0.38 Mib
max_random_00 AC 418 ms 19.34 Mib
max_random_01 AC 415 ms 19.38 Mib
random_00 AC 159 ms 7.99 Mib
random_01 AC 194 ms 9.36 Mib
https://judge.yosupo.jp/submission/31829 Name Status Time Memory
all_max_00 AC 248 ms 19.67 Mib
all_zero_00 AC 149 ms 2.55 Mib
example_00 AC 1 ms 0.62 Mib
max_random_00 AC 253 ms 19.30 Mib
max_random_01 AC 261 ms 19.30 Mib
random_00 AC 99 ms 7.92 Mib
random_01 AC 118 ms 9.30 Mib
ia7ck commented 3 years ago

Point Add Range Sum で測るとかなり速くなっている