more part2 opts

This commit is contained in:
nora 2023-12-03 15:57:48 +01:00
parent d08e7d8c7c
commit b7db57a568
7 changed files with 814 additions and 3 deletions

1
.gitignore vendored
View file

@ -1,3 +1,4 @@
target target
perf.data* perf.data*
aoc_cookie aoc_cookie
input_big.txt

View file

@ -1,7 +1,9 @@
mod p2basic; mod p2basic;
mod p2bytes;
mod p2faster_hash; mod p2faster_hash;
mod p2less_alloc; mod p2less_alloc;
mod p2less_with_capacity; mod p2less_branching;
mod p2with_capacity;
use helper::Day; use helper::Day;
@ -19,8 +21,10 @@ helper::define_variants! {
part2 { part2 {
basic => crate::p2basic::part2; basic => crate::p2basic::part2;
faster_hash => crate::p2faster_hash::part2; faster_hash => crate::p2faster_hash::part2;
p2less_with_capacity => crate::p2less_with_capacity::part2; with_capacity => crate::p2with_capacity::part2;
less_alloc => crate::p2less_alloc::part2; less_alloc => crate::p2less_alloc::part2;
less_branching => crate::p2less_branching::part2;
bytes => crate::p2bytes::part2;
} }
} }

102
2023/day03/src/p2bytes.rs Normal file
View file

@ -0,0 +1,102 @@
use std::hash::BuildHasherDefault;
use rustc_hash::FxHashMap;
#[derive(Debug)]
struct GearRatio(u64, u8);
impl Default for GearRatio {
fn default() -> Self {
Self(1, 0)
}
}
impl GearRatio {
fn push(&mut self, value: u64) {
self.0 *= value;
self.1 += 1;
}
fn get(&self) -> Option<u64> {
(self.1 == 2).then_some(self.0)
}
}
#[cfg(test)]
mod tests {
use super::GearRatio;
#[test]
fn gear_ratio() {
let mut r = GearRatio::default();
assert_eq!(r.get(), None);
r.push(2);
assert_eq!(r.get(), None);
r.push(3);
eprintln!("{:b}", r.0);
assert_eq!(r.get(), Some(6));
r.push(1);
assert_eq!(r.get(), None);
}
}
pub fn part2(input: &str) -> u64 {
fn contains_gear(s: &str) -> Option<usize> {
s.bytes().position(|c| !c.is_ascii_digit() && c != b'.')
}
let len = input.lines().next().unwrap().len();
let empty_border = std::iter::repeat('.').take(len).collect::<String>();
let mut prev2 = empty_border.as_str();
let mut prev1 = input.lines().next().unwrap();
let mut gears: FxHashMap<u32, GearRatio> =
FxHashMap::with_capacity_and_hasher(1000, BuildHasherDefault::default());
for (line_number, next) in input
.lines()
.skip(1)
.chain(Some(empty_border.as_str()))
.enumerate()
{
let mut numbers = prev1.bytes().enumerate().peekable();
while let Some((start, c)) = numbers.next() {
if c.is_ascii_digit() {
let mut end = start;
while let Some((idx, b'0'..=b'9')) = numbers.next() {
end = idx;
}
let box_bounds = (start.saturating_sub(1))..std::cmp::min(end + 2, len);
let number = prev1[start..=end].parse::<u64>().unwrap();
let mut push = |key: (usize, usize)| {
gears
.entry(((key.1 as u32) << 16) | (key.0 as u32))
.or_default()
.push(number)
};
if let Some(position) = contains_gear(&prev2[box_bounds.clone()]) {
let key = (line_number - 1, box_bounds.start + position);
push(key);
}
if let Some(position) = contains_gear(&prev1[box_bounds.clone()]) {
let key = (line_number, box_bounds.start + position);
push(key);
}
if let Some(position) = contains_gear(&next[box_bounds.clone()]) {
let key = (line_number + 1, box_bounds.start + position);
push(key);
}
}
}
prev2 = prev1;
prev1 = next;
}
gears.values().filter_map(|v| v.get()).sum()
}

View file

@ -0,0 +1,102 @@
use std::hash::BuildHasherDefault;
use rustc_hash::FxHashMap;
#[derive(Debug)]
struct GearRatio(u64, u8);
impl Default for GearRatio {
fn default() -> Self {
Self(1, 0)
}
}
impl GearRatio {
fn push(&mut self, value: u64) {
self.0 *= value;
self.1 += 1;
}
fn get(&self) -> Option<u64> {
(self.1 == 2).then_some(self.0)
}
}
#[cfg(test)]
mod tests {
use super::GearRatio;
#[test]
fn gear_ratio() {
let mut r = GearRatio::default();
assert_eq!(r.get(), None);
r.push(2);
assert_eq!(r.get(), None);
r.push(3);
eprintln!("{:b}", r.0);
assert_eq!(r.get(), Some(6));
r.push(1);
assert_eq!(r.get(), None);
}
}
pub fn part2(input: &str) -> u64 {
fn contains_gear(s: &str) -> Option<usize> {
s.chars().position(|c| !c.is_ascii_digit() && c != '.')
}
let len = input.lines().next().unwrap().len();
let empty_border = std::iter::repeat('.').take(len).collect::<String>();
let mut prev2 = empty_border.as_str();
let mut prev1 = input.lines().next().unwrap();
let mut gears: FxHashMap<u32, GearRatio> =
FxHashMap::with_capacity_and_hasher(1000, BuildHasherDefault::default());
for (line_number, next) in input
.lines()
.skip(1)
.chain(Some(empty_border.as_str()))
.enumerate()
{
let mut numbers = prev1.char_indices().peekable();
while let Some((start, c)) = numbers.next() {
if c.is_ascii_digit() {
let mut end = start;
while let Some((idx, '0'..='9')) = numbers.next() {
end = idx;
}
let box_bounds = (start.saturating_sub(1))..std::cmp::min(end + 2, len);
let number = prev1[start..=end].parse::<u64>().unwrap();
let mut push = |key: (usize, usize)| {
gears
.entry(((key.1 as u32) << 16) | (key.0 as u32))
.or_default()
.push(number)
};
if let Some(position) = contains_gear(&prev2[box_bounds.clone()]) {
let key = (line_number - 1, box_bounds.start + position);
push(key);
}
if let Some(position) = contains_gear(&prev1[box_bounds.clone()]) {
let key = (line_number, box_bounds.start + position);
push(key);
}
if let Some(position) = contains_gear(&next[box_bounds.clone()]) {
let key = (line_number + 1, box_bounds.start + position);
push(key);
}
}
}
prev2 = prev1;
prev1 = next;
}
gears.values().filter_map(|v| v.get()).sum()
}

View file

@ -1,6 +1,6 @@
mod cmd; mod cmd;
use std::borrow::Cow; use std::{borrow::Cow, fmt::Debug};
use nom::{character::complete::digit1, combinator::map, IResult}; use nom::{character::complete::digit1, combinator::map, IResult};
@ -25,6 +25,7 @@ pub struct Variants {
pub variants: Vec<Variant>, pub variants: Vec<Variant>,
} }
#[derive(Debug)]
pub struct Variant { pub struct Variant {
pub name: &'static str, pub name: &'static str,
pub f: Solution, pub f: Solution,

601
perf.hist.0 Normal file
View file

@ -0,0 +1,601 @@
90.01% day03 day03 [.] day03::p2less_alloc::part2
2.50% day03 day03 [.] core::num::<impl core::str::traits::FromStr for usize>::from_str
2.27% day03 day03 [.] core::slice::memchr::memchr_aligned
1.44% day03 day03 [.] hashbrown::raw::RawTable<T,A>::reserve_rehash
0.88% day03 day03 [.] core::str::converts::from_utf8
0.86% day03 [unknown] [k] 0xffffffff83d2d6e7
0.58% day03 day03 [.] <core::iter::adapters::map::Map<I,F> as core::iter::traits::iterator::Iterator>::next
0.15% day03 [unknown] [k] 0xffffffff83e00b80
0.14% day03 libc.so.6 [.] __memcmp_avx2_movbe
0.04% day03 [unknown] [k] 0xffffffff838e3c7b
0.03% day03 [unknown] [k] 0xffffffff8389970c
0.02% day03 [unknown] [k] 0xffffffff83e00b83
0.02% day03 [unknown] [k] 0xffffffff83d7129e
0.02% day03 [unknown] [k] 0xffffffff83d871d7
0.02% day03 [unknown] [k] 0xffffffff836647f5
0.02% day03 [unknown] [k] 0xffffffff83e00e70
0.02% day03 [unknown] [k] 0xffffffff83436043
0.01% day03 [unknown] [k] 0xffffffff8366486d
0.01% day03 [unknown] [k] 0xffffffff836a2ba6
0.01% day03 [unknown] [k] 0xffffffff836647ea
0.01% day03 [unknown] [k] 0xffffffff83e01112
0.01% day03 [unknown] [k] 0xffffffff8351a184
0.01% day03 [unknown] [k] 0xffffffff836b7a71
0.01% day03 [unknown] [k] 0xffffffff836b7ad8
0.01% day03 [unknown] [k] 0xffffffff83899706
0.01% day03 [unknown] [k] 0xffffffff83719e2f
0.01% day03 [unknown] [k] 0xffffffff83e014e4
0.01% day03 [unknown] [k] 0xffffffff83567808
0.01% day03 [unknown] [k] 0xffffffff83699ee9
0.01% day03 [unknown] [k] 0xffffffff836805fb
0.01% day03 [unknown] [k] 0xffffffff83e014e9
0.01% day03 [unknown] [k] 0xffffffff836c6322
0.01% day03 [unknown] [k] 0xffffffff83d86cd7
0.01% day03 [unknown] [k] 0xffffffff8367f577
0.01% day03 [unknown] [k] 0xffffffff84001c40
0.01% day03 [unknown] [k] 0xffffffff834f3718
0.01% day03 [unknown] [k] 0xffffffff83d745cf
0.01% day03 [unknown] [k] 0xffffffff836a2eed
0.01% day03 [unknown] [k] 0xffffffff8351e995
0.01% day03 [unknown] [k] 0xffffffff836a3793
0.01% day03 [unknown] [k] 0xffffffff83e00b8c
0.01% day03 [unknown] [k] 0xffffffff83d712a1
0.01% day03 [unknown] [k] 0xffffffff84001c45
0.01% day03 [unknown] [k] 0xffffffff83717a2d
0.01% day03 [unknown] [k] 0xffffffff836a3091
0.01% day03 [unknown] [k] 0xffffffff834b6aa5
0.01% day03 [unknown] [k] 0xffffffff83d7f77e
0.01% day03 [unknown] [k] 0xffffffff836c6643
0.01% day03 [unknown] [k] 0xffffffff83719e48
0.01% day03 [unknown] [k] 0xffffffff838996e6
0.01% day03 [unknown] [k] 0xffffffff84001c80
0.01% day03 [unknown] [k] 0xffffffff838996f0
0.01% day03 [unknown] [k] 0xffffffff83e01115
0.01% day03 [unknown] [k] 0xffffffff8351a17e
0.01% day03 [unknown] [k] 0xffffffff83d21676
0.01% day03 [unknown] [k] 0xffffffff8353e2ed
0.01% day03 libc.so.6 [.] __memset_avx2_unaligned_erms
0.01% day03 [unknown] [k] 0xffffffff834b6ab0
0.01% day03 [unknown] [k] 0xffffffff835677fa
0.00% day03 [unknown] [k] 0xffffffff83d871cc
0.00% day03 [unknown] [k] 0xffffffff838e3c43
0.00% day03 [unknown] [k] 0xffffffff83e00ba2
0.00% day03 [unknown] [k] 0xffffffff83d74985
0.00% day03 [unknown] [k] 0xffffffff83717a34
0.00% day03 [unknown] [k] 0xffffffff83e00b94
0.00% day03 [unknown] [k] 0xffffffff83719469
0.00% day03 [unknown] [k] 0xffffffff83d16d92
0.00% day03 [unknown] [k] 0xffffffff83e01466
0.00% day03 [unknown] [k] 0xffffffff83e01588
0.00% day03 [unknown] [k] 0xffffffff83715264
0.00% day03 [unknown] [k] 0xffffffff83699e76
0.00% day03 [unknown] [k] 0xffffffff83719e8c
0.00% day03 [unknown] [k] 0xffffffff836a2ece
0.00% day03 [unknown] [k] 0xffffffff83d16d5f
0.00% day03 [unknown] [k] 0xffffffff836a3142
0.00% day03 [unknown] [k] 0xffffffff83899732
0.00% day03 [unknown] [k] 0xffffffff8369a023
0.00% day03 [unknown] [k] 0xffffffff836c63b0
0.00% day03 [unknown] [k] 0xffffffff8354cf4c
0.00% day03 [unknown] [k] 0xffffffff83d86d1b
0.00% day03 [unknown] [k] 0xffffffff83d12ee1
0.00% day03 [unknown] [k] 0xffffffff83d12e62
0.00% day03 [unknown] [k] 0xffffffff83d86d0c
0.00% day03 [unknown] [k] 0xffffffff836a2c2a
0.00% day03 [unknown] [k] 0xffffffff836b6969
0.00% day03 [unknown] [k] 0xffffffff836c693c
0.00% day03 [unknown] [k] 0xffffffff836ea676
0.00% day03 [unknown] [k] 0xffffffff836ea710
0.00% day03 [unknown] [k] 0xffffffff836c7a34
0.00% day03 [unknown] [k] 0xffffffff83e0116a
0.00% day03 [unknown] [k] 0xffffffff837179b0
0.00% day03 [unknown] [k] 0xffffffff83d74627
0.00% day03 [unknown] [k] 0xffffffff83e010f2
0.00% day03 [unknown] [k] 0xffffffff837195f5
0.00% day03 [unknown] [k] 0xffffffff8343937e
0.00% day03 [unknown] [k] 0xffffffff838996e0
0.00% day03 [unknown] [k] 0xffffffff836d8290
0.00% day03 [unknown] [k] 0xffffffff83d7128b
0.00% day03 [unknown] [k] 0xffffffff83474cca
0.00% day03 [unknown] [k] 0xffffffff836a3154
0.00% day03 [unknown] [k] 0xffffffff836a3383
0.00% day03 [unknown] [k] 0xffffffff84001c48
0.00% day03 [unknown] [k] 0xffffffff83711c50
0.00% day03 [unknown] [k] 0xffffffff8351e98e
0.00% day03 [unknown] [k] 0xffffffff83712205
0.00% day03 [unknown] [k] 0xffffffff83716af7
0.00% day03 [unknown] [k] 0xffffffff836b7a20
0.00% day03 [unknown] [k] 0xffffffff836805e5
0.00% day03 [unknown] [k] 0xffffffff836a30d4
0.00% day03 [unknown] [k] 0xffffffff836a34f2
0.00% day03 [unknown] [k] 0xffffffff83717b1b
0.00% day03 [unknown] [k] 0xffffffff8352c4ce
0.00% day03 [unknown] [k] 0xffffffff83d745c8
0.00% day03 ld-linux-x86-64.so.2 [.] do_lookup_x
0.00% day03 [unknown] [k] 0xffffffff836a38cb
0.00% day03 [unknown] [k] 0xffffffff8349418f
0.00% day03 [unknown] [k] 0xffffffff8354e60b
0.00% day03 [unknown] [k] 0xffffffff8351e9a1
0.00% day03 [unknown] [k] 0xffffffff837179e9
0.00% day03 [unknown] [k] 0xffffffff83d74636
0.00% day03 [unknown] [k] 0xffffffff836a34c3
0.00% day03 [unknown] [k] 0xffffffff836a3750
0.00% day03 [unknown] [k] 0xffffffff83e0111b
0.00% day03 [unknown] [k] 0xffffffff83d12e38
0.00% day03 [unknown] [k] 0xffffffff83719468
0.00% day03 [unknown] [k] 0xffffffff836c8ebc
0.00% day03 [unknown] [k] 0xffffffff83439365
0.00% day03 [unknown] [k] 0xffffffff8366481b
0.00% day03 [unknown] [k] 0xffffffff83d12e9c
0.00% day03 [unknown] [k] 0xffffffff836a2e2f
0.00% day03 [unknown] [k] 0xffffffff836a36f0
0.00% day03 [unknown] [k] 0xffffffff836a307c
0.00% day03 [unknown] [k] 0xffffffff836c6dbf
0.00% day03 [unknown] [k] 0xffffffff834b6aa7
0.00% day03 [unknown] [k] 0xffffffff836b696a
0.00% day03 [unknown] [k] 0xffffffff836a2eb7
0.00% day03 [unknown] [k] 0xffffffff83e010f6
0.00% day03 [unknown] [k] 0xffffffff836a2e46
0.00% day03 [unknown] [k] 0xffffffff83474d00
0.00% day03 [unknown] [k] 0xffffffff836a8e5a
0.00% day03 [unknown] [k] 0xffffffff8351a18d
0.00% day03 [unknown] [k] 0xffffffff836c8fe7
0.00% day03 [unknown] [k] 0xffffffff83439351
0.00% day03 [unknown] [k] 0xffffffff836a371d
0.00% day03 [unknown] [k] 0xffffffff836c680b
0.00% day03 [unknown] [k] 0xffffffff83719ec0
0.00% day03 [unknown] [k] 0xffffffff83d721b0
0.00% day03 [unknown] [k] 0xffffffff836c6710
0.00% day03 [unknown] [k] 0xffffffff83714220
0.00% day03 [unknown] [k] 0xffffffff8369a022
0.00% day03 [unknown] [k] 0xffffffff836b7a8c
0.00% day03 [unknown] [k] 0xffffffff836a2ddf
0.00% day03 [unknown] [k] 0xffffffff836805ff
0.00% day03 [unknown] [k] 0xffffffff83474d87
0.00% day03 [unknown] [k] 0xffffffff836c8f2d
0.00% day03 [unknown] [k] 0xffffffff83e014ad
0.00% day03 ld-linux-x86-64.so.2 [.] _dl_relocate_object
0.00% day03 [unknown] [k] 0xffffffff835677f2
0.00% day03 [unknown] [k] 0xffffffff83699f21
0.00% day03 [unknown] [k] 0xffffffff83719471
0.00% day03 [unknown] [k] 0xffffffff83d12f06
0.00% day03 [unknown] [k] 0xffffffff83d71280
0.00% day03 [unknown] [k] 0xffffffff836c63b5
0.00% day03 [unknown] [k] 0xffffffff8367f573
0.00% day03 [unknown] [k] 0xffffffff83719619
0.00% day03 [unknown] [k] 0xffffffff836c6794
0.00% day03 [unknown] [k] 0xffffffff836b7aa0
0.00% day03 [unknown] [k] 0xffffffff8389972b
0.00% day03 [unknown] [k] 0xffffffff83711c5b
0.00% day03 [unknown] [k] 0xffffffff836c8f81
0.00% day03 [unknown] [k] 0xffffffff83718b5e
0.00% day03 [unknown] [k] 0xffffffff836c6956
0.00% day03 [unknown] [k] 0xffffffff8369a685
0.00% day03 [unknown] [k] 0xffffffff83e010fc
0.00% day03 [unknown] [k] 0xffffffff836a30ec
0.00% day03 [unknown] [k] 0xffffffff834f321a
0.00% day03 [unknown] [k] 0xffffffff836a3428
0.00% day03 [unknown] [k] 0xffffffff836c6d7f
0.00% day03 [unknown] [k] 0xffffffff8367f560
0.00% day03 [unknown] [k] 0xffffffff8346c2c0
0.00% day03 [unknown] [k] 0xffffffff83719ecc
0.00% day03 [unknown] [k] 0xffffffff83717b68
0.00% day03 [unknown] [k] 0xffffffff83d74601
0.00% day03 [unknown] [k] 0xffffffff838996fe
0.00% day03 [unknown] [k] 0xffffffff836a34cf
0.00% day03 [unknown] [k] 0xffffffff83d2d6ea
0.00% day03 [unknown] [k] 0xffffffff836c6762
0.00% day03 [unknown] [k] 0xffffffff836a34d4
0.00% day03 [unknown] [k] 0xffffffff834b6ab4
0.00% day03 [unknown] [k] 0xffffffff836a2cc4
0.00% day03 [unknown] [k] 0xffffffff836c8f9c
0.00% day03 [unknown] [k] 0xffffffff836a3509
0.00% day03 [unknown] [k] 0xffffffff836d829d
0.00% day03 [unknown] [k] 0xffffffff83e01460
0.00% day03 [unknown] [k] 0xffffffff83719965
0.00% day03 [unknown] [k] 0xffffffff83d16ca6
0.00% day03 [unknown] [k] 0xffffffff8353b085
0.00% day03 [unknown] [k] 0xffffffff836c7477
0.00% day03 [unknown] [k] 0xffffffff8354d01b
0.00% day03 [unknown] [k] 0xffffffff83e00e73
0.00% day03 [unknown] [k] 0xffffffffc082be40
0.00% day03 [unknown] [k] 0xffffffff834bb859
0.00% day03 [unknown] [k] 0xffffffff83717b1e
0.00% day03 [unknown] [k] 0xffffffff834e3fa8
0.00% day03 [unknown] [k] 0xffffffff834ee015
0.00% day03 [unknown] [k] 0xffffffff83e00e7e
0.00% day03 [unknown] [k] 0xffffffff836c6dbd
0.00% day03 [unknown] [k] 0xffffffff83474c3f
0.00% day03 [unknown] [k] 0xffffffff8371543c
0.00% day03 [unknown] [k] 0xffffffff836c8eb0
0.00% day03 [unknown] [k] 0xffffffff83d86d0e
0.00% day03 [unknown] [k] 0xffffffff836c9820
0.00% day03 [unknown] [k] 0xffffffff83899701
0.00% day03 [unknown] [k] 0xffffffff8369f57b
0.00% day03 [unknown] [k] 0xffffffff83662e29
0.00% day03 [unknown] [k] 0xffffffff837179b7
0.00% day03 [unknown] [k] 0xffffffff8369f554
0.00% day03 [unknown] [k] 0xffffffff83719488
0.00% day03 [unknown] [k] 0xffffffff836ea717
0.00% day03 [unknown] [k] 0xffffffff836a37a4
0.00% day03 [unknown] [k] 0xffffffff8351e99d
0.00% day03 [unknown] [k] 0xffffffff836c62c7
0.00% day03 [unknown] [k] 0xffffffff836c6593
0.00% day03 [unknown] [k] 0xffffffff83d12f2c
0.00% day03 [unknown] [k] 0xffffffff836c6625
0.00% day03 [unknown] [k] 0xffffffff83e00b8f
0.00% day03 [unknown] [k] 0xffffffff83712201
0.00% day03 [unknown] [k] 0xffffffff83474dd0
0.00% day03 [unknown] [k] 0xffffffff836c6da7
0.00% day03 [unknown] [k] 0xffffffff83d12db4
0.00% day03 [unknown] [k] 0xffffffff836a2ee8
0.00% day03 libc.so.6 [.] _int_malloc
0.00% day03 [unknown] [k] 0xffffffff83d86cb8
0.00% day03 [unknown] [k] 0xffffffff836c7a20
0.00% day03 [unknown] [k] 0xffffffff836a3762
0.00% day03 [unknown] [k] 0xffffffff836c79fc
0.00% day03 [unknown] [k] 0xffffffff8352c4bb
0.00% day03 [unknown] [k] 0xffffffff836b693e
0.00% day03 [unknown] [k] 0xffffffff8369f548
0.00% day03 [unknown] [k] 0xffffffff83717a13
0.00% day03 [unknown] [k] 0xffffffff836c66fd
0.00% day03 [unknown] [k] 0xffffffff83662d49
0.00% day03 [unknown] [k] 0xffffffff836c6654
0.00% day03 [unknown] [k] 0xffffffff83d12dfb
0.00% day03 [unknown] [k] 0xffffffff8351e985
0.00% day03 [unknown] [k] 0xffffffff836a3900
0.00% day03 [unknown] [k] 0xffffffff836a38ef
0.00% day03 [unknown] [k] 0xffffffff83d745e5
0.00% day03 [unknown] [k] 0xffffffff83680617
0.00% day03 [unknown] [k] 0xffffffff836ea5ba
0.00% day03 [unknown] [k] 0xffffffff83e0116e
0.00% day03 [unknown] [k] 0xffffffff834f370c
0.00% day03 [unknown] [k] 0xffffffff836a3532
0.00% day03 [unknown] [k] 0xffffffff836a3527
0.00% day03 [unknown] [k] 0xffffffff836ea6c0
0.00% day03 [unknown] [k] 0xffffffff836ea74c
0.00% day03 [unknown] [k] 0xffffffff838e3c72
0.00% day03 [unknown] [k] 0xffffffff83d745e9
0.00% day03 [unknown] [k] 0xffffffff83719a0b
0.00% day03 [unknown] [k] 0xffffffff83899736
0.00% day03 [unknown] [k] 0xffffffff83718b7d
0.00% day03 [unknown] [k] 0xffffffff8371542b
0.00% day03 [unknown] [k] 0xffffffff836a34ae
0.00% day03 [unknown] [k] 0xffffffff83e0147c
0.00% day03 [unknown] [k] 0xffffffff8352c4e5
0.00% day03 [unknown] [k] 0xffffffff836c6290
0.00% day03 [unknown] [k] 0xffffffff8351e997
0.00% day03 [unknown] [k] 0xffffffff8368062e
0.00% day03 [unknown] [k] 0xffffffff83716ae2
0.00% day03 [unknown] [k] 0xffffffff83719e05
0.00% day03 [unknown] [k] 0xffffffff836ea6e4
0.00% day03 [unknown] [k] 0xffffffff8371bbdc
0.00% day03 [unknown] [k] 0xffffffff83d12e20
0.00% day03 [unknown] [k] 0xffffffff836c65c9
0.00% day03 [unknown] [k] 0xffffffff8351a187
0.00% day03 [unknown] [k] 0xffffffff83474d94
0.00% day03 [unknown] [k] 0xffffffff83717a07
0.00% day03 [unknown] [k] 0xffffffff83719e79
0.00% day03 [unknown] [k] 0xffffffff83d8725b
0.00% day03 [unknown] [k] 0xffffffff836c65a1
0.00% day03 [unknown] [k] 0xffffffff836ea627
0.00% day03 [unknown] [k] 0xffffffff838e3bb1
0.00% day03 [unknown] [k] 0xffffffff83718b55
0.00% day03 [unknown] [k] 0xffffffff836c7a28
0.00% day03 [unknown] [k] 0xffffffff836c8f88
0.00% day03 [unknown] [k] 0xffffffff836ab727
0.00% day03 [unknown] [k] 0xffffffff83e0158e
0.00% day03 [unknown] [k] 0xffffffff83717b48
0.00% day03 [unknown] [k] 0xffffffff83d745c2
0.00% day03 [unknown] [k] 0xffffffff83474d74
0.00% day03 ld-linux-x86-64.so.2 [.] strcmp
0.00% day03 [unknown] [k] 0xffffffff836c8f36
0.00% day03 [unknown] [k] 0xffffffff83719e00
0.00% day03 [unknown] [k] 0xffffffff83715441
0.00% day03 day03 [.] __rdl_dealloc
0.00% day03 [unknown] [k] 0xffffffff8375ece0
0.00% day03 [unknown] [k] 0xffffffff836a3132
0.00% day03 [unknown] [k] 0xffffffff837179d7
0.00% day03 day03 [.] clap_builder::parser::validator::Validator::validate
0.00% day03 day03 [.] clap_builder::builder::command::Command::required_graph
0.00% day03 [unknown] [k] 0xffffffff83719451
0.00% day03 [unknown] [k] 0xffffffff837196c0
0.00% day03 [unknown] [k] 0xffffffff83699f70
0.00% day03 day03 [.] clap_builder::parser::parser::Parser::get_matches_with
0.00% day03 day03 [.] clap_builder::builder::command::Command::_build_self
0.00% day03 [unknown] [k] 0xffffffff83654c29
0.00% day03 [unknown] [k] 0xffffffff83718b86
0.00% day03 [unknown] [k] 0xffffffff836c47e0
0.00% day03 ld-linux-x86-64.so.2 [.] check_match
0.00% day03 [unknown] [k] 0xffffffff834a3b58
0.00% day03 [unknown] [k] 0xffffffff83715820
0.00% day03 day03 [.] std::env::args_os
0.00% day03 [unknown] [k] 0xffffffff836f585c
0.00% day03 [unknown] [k] 0xffffffff83e01100
0.00% day03 [unknown] [k] 0xffffffff83474d37
0.00% day03 [unknown] [k] 0xffffffff834f31f5
0.00% day03 [unknown] [k] 0xffffffff836e86ef
0.00% day03 [unknown] [k] 0xffffffff836a3851
0.00% day03 [unknown] [k] 0xffffffff83d12eca
0.00% day03 [unknown] [k] 0xffffffff836c67de
0.00% day03 [unknown] [k] 0xffffffff836a374a
0.00% day03 [unknown] [k] 0xffffffff83664734
0.00% day03 [unknown] [k] 0xffffffff836a3897
0.00% day03 [unknown] [k] 0xffffffff83d16cce
0.00% day03 [unknown] [k] 0xffffffff836a8e40
0.00% day03 [unknown] [k] 0xffffffff8367f580
0.00% day03 [unknown] [k] 0xffffffff836a33a3
0.00% day03 [unknown] [k] 0xffffffff836a8e39
0.00% day03 [unknown] [k] 0xffffffff8369a02b
0.00% day03 [unknown] [k] 0xffffffff836ea643
0.00% day03 [unknown] [k] 0xffffffff836ea684
0.00% day03 [unknown] [k] 0xffffffff83d16c20
0.00% day03 [unknown] [k] 0xffffffff83d16c93
0.00% day03 [unknown] [k] 0xffffffff83d12ed5
0.00% day03 [unknown] [k] 0xffffffff836c8f9f
0.00% day03 [unknown] [k] 0xffffffff836c65c2
0.00% day03 [unknown] [k] 0xffffffff836c637c
0.00% day03 [unknown] [k] 0xffffffff836c63be
0.00% day03 [unknown] [k] 0xffffffff836c48e9
0.00% day03 [unknown] [k] 0xffffffff836c6583
0.00% day03 [unknown] [k] 0xffffffff836c8f75
0.00% day03 [unknown] [k] 0xffffffff83e0147e
0.00% day03 [unknown] [k] 0xffffffff836c6577
0.00% day03 [unknown] [k] 0xffffffff836a2da7
0.00% day03 [unknown] [k] 0xffffffff83d71294
0.00% day03 [unknown] [k] 0xffffffff836c62b4
0.00% day03 [unknown] [k] 0xffffffff83d16d6f
0.00% day03 [unknown] [k] 0xffffffff837196c8
0.00% day03 [unknown] [k] 0xffffffff83d74626
0.00% day03 [unknown] [k] 0xffffffff83474df5
0.00% day03 [unknown] [k] 0xffffffff836c8fa4
0.00% day03 [unknown] [k] 0xffffffff836a3916
0.00% day03 [unknown] [k] 0xffffffff836ea631
0.00% day03 [unknown] [k] 0xffffffff836c63c8
0.00% day03 [unknown] [k] 0xffffffff836a2d0a
0.00% day03 [unknown] [k] 0xffffffff83663007
0.00% day03 [unknown] [k] 0xffffffff836c65f2
0.00% day03 [unknown] [k] 0xffffffff83e01483
0.00% day03 [unknown] [k] 0xffffffff83d12e8e
0.00% day03 [unknown] [k] 0xffffffff83717af0
0.00% day03 [unknown] [k] 0xffffffff836c75c2
0.00% day03 [unknown] [k] 0xffffffff83680619
0.00% day03 [unknown] [k] 0xffffffff8369a2fa
0.00% day03 [unknown] [k] 0xffffffff836c664b
0.00% day03 [unknown] [k] 0xffffffff836a2b77
0.00% day03 [unknown] [k] 0xffffffff837179bb
0.00% day03 [unknown] [k] 0xffffffff836a2e9d
0.00% day03 [unknown] [k] 0xffffffff83e01190
0.00% day03 [unknown] [k] 0xffffffff836c8f09
0.00% day03 [unknown] [k] 0xffffffff836630c4
0.00% day03 [unknown] [k] 0xffffffff83654ac8
0.00% day03 [unknown] [k] 0xffffffff836a314f
0.00% day03 [unknown] [k] 0xffffffff83719426
0.00% day03 [unknown] [k] 0xffffffff836c6371
0.00% day03 [unknown] [k] 0xffffffff83d12dba
0.00% day03 [unknown] [k] 0xffffffff836b6921
0.00% day03 [unknown] [k] 0xffffffff836ea6ad
0.00% day03 [unknown] [k] 0xffffffff83d16d5c
0.00% day03 [unknown] [k] 0xffffffff8371bbba
0.00% day03 [unknown] [k] 0xffffffff83663005
0.00% day03 [unknown] [k] 0xffffffff8366303c
0.00% day03 [unknown] [k] 0xffffffff83436040
0.00% day03 [unknown] [k] 0xffffffff835677ef
0.00% day03 [unknown] [k] 0xffffffff83d12dda
0.00% day03 [unknown] [k] 0xffffffff83699ec8
0.00% day03 [unknown] [k] 0xffffffff83717b12
0.00% day03 [unknown] [k] 0xffffffff83719e07
0.00% day03 [unknown] [k] 0xffffffff836c8f5d
0.00% day03 [unknown] [k] 0xffffffff836630be
0.00% day03 [unknown] [k] 0xffffffff836c6846
0.00% day03 [unknown] [k] 0xffffffff836e86d7
0.00% day03 [unknown] [k] 0xffffffff836a34ef
0.00% day03 [unknown] [k] 0xffffffff84001c70
0.00% day03 [unknown] [k] 0xffffffff83474d7f
0.00% day03 [unknown] [k] 0xffffffff83d16d64
0.00% day03 [unknown] [k] 0xffffffff836e86ec
0.00% day03 [unknown] [k] 0xffffffff836a2bd0
0.00% day03 [unknown] [k] 0xffffffff8353e303
0.00% day03 [unknown] [k] 0xffffffff8352c4f3
0.00% day03 [unknown] [k] 0xffffffff8371bbe5
0.00% day03 [unknown] [k] 0xffffffff83717b06
0.00% day03 [unknown] [k] 0xffffffff83719470
0.00% day03 [unknown] [k] 0xffffffff836a36e5
0.00% day03 [unknown] [k] 0xffffffff836ea65e
0.00% day03 [unknown] [k] 0xffffffff83d16d8d
0.00% day03 [unknown] [k] 0xffffffff83717b31
0.00% day03 [unknown] [k] 0xffffffff8352c4ba
0.00% day03 [unknown] [k] 0xffffffff836a2c94
0.00% day03 [unknown] [k] 0xffffffff83717b4e
0.00% day03 [unknown] [k] 0xffffffff836a38d3
0.00% day03 [unknown] [k] 0xffffffff836a3430
0.00% day03 [unknown] [k] 0xffffffff83716b05
0.00% day03 [unknown] [k] 0xffffffff837196bd
0.00% day03 [unknown] [k] 0xffffffff836b693a
0.00% day03 [unknown] [k] 0xffffffff83711b00
0.00% day03 [unknown] [k] 0xffffffff8369a2da
0.00% day03 [unknown] [k] 0xffffffff8369a67e
0.00% day03 [unknown] [k] 0xffffffff834768f1
0.00% day03 [unknown] [k] 0xffffffff83717b03
0.00% day03 [unknown] [k] 0xffffffff83e010fa
0.00% day03 [unknown] [k] 0xffffffff8353e381
0.00% day03 [unknown] [k] 0xffffffff83699ee1
0.00% day03 [unknown] [k] 0xffffffff836b7a31
0.00% day03 [unknown] [k] 0xffffffff836c7490
0.00% day03 [unknown] [k] 0xffffffff834f372d
0.00% day03 [unknown] [k] 0xffffffff8366301f
0.00% day03 [unknown] [k] 0xffffffff836b691f
0.00% day03 [unknown] [k] 0xffffffff836c4a50
0.00% day03 [unknown] [k] 0xffffffff83699ee0
0.00% day03 [unknown] [k] 0xffffffff836ea666
0.00% day03 [unknown] [k] 0xffffffff83719e3b
0.00% day03 [unknown] [k] 0xffffffff836c8ff6
0.00% day03 [unknown] [k] 0xffffffff8371797b
0.00% day03 [unknown] [k] 0xffffffff836a3113
0.00% day03 [unknown] [k] 0xffffffff836a2ba9
0.00% day03 [unknown] [k] 0xffffffff836c6965
0.00% day03 [unknown] [k] 0xffffffff836a3502
0.00% day03 [unknown] [k] 0xffffffff8367f568
0.00% day03 [unknown] [k] 0xffffffff836c4933
0.00% day03 [unknown] [k] 0xffffffff836630a2
0.00% day03 [unknown] [k] 0xffffffff83719ae3
0.00% day03 [unknown] [k] 0xffffffff83d721b7
0.00% day03 [unknown] [k] 0xffffffff836b6960
0.00% day03 [unknown] [k] 0xffffffff834f372f
0.00% day03 [unknown] [k] 0xffffffff8371541a
0.00% day03 [unknown] [k] 0xffffffff836c8f92
0.00% day03 [unknown] [k] 0xffffffff83699eab
0.00% day03 [unknown] [k] 0xffffffff83662d6d
0.00% day03 [unknown] [k] 0xffffffff836a2e07
0.00% day03 [unknown] [k] 0xffffffff83699f17
0.00% day03 [unknown] [k] 0xffffffff836c62f1
0.00% day03 [unknown] [k] 0xffffffff8367e6c8
0.00% day03 [unknown] [k] 0xffffffff83d16d43
0.00% day03 [unknown] [k] 0xffffffff83680602
0.00% day03 [unknown] [k] 0xffffffff8352c506
0.00% day03 [unknown] [k] 0xffffffff836a2c26
0.00% day03 [unknown] [k] 0xffffffff83474df7
0.00% day03 [unknown] [k] 0xffffffff836b7a30
0.00% day03 [unknown] [k] 0xffffffff83680614
0.00% day03 [unknown] [k] 0xffffffff836a3536
0.00% day03 [unknown] [k] 0xffffffff836a3575
0.00% day03 [unknown] [k] 0xffffffff83e01118
0.00% day03 [unknown] [k] 0xffffffff837157c8
0.00% day03 [unknown] [k] 0xffffffff83717a4b
0.00% day03 [unknown] [k] 0xffffffff836a33fe
0.00% day03 [unknown] [k] 0xffffffff83e01105
0.00% day03 [unknown] [k] 0xffffffff836ea650
0.00% day03 [unknown] [k] 0xffffffff836c6704
0.00% day03 [unknown] [k] 0xffffffff83662d8e
0.00% day03 [unknown] [k] 0xffffffff836a2e92
0.00% day03 [unknown] [k] 0xffffffff83474c57
0.00% day03 [unknown] [k] 0xffffffff836c62d8
0.00% day03 [unknown] [k] 0xffffffff836a37d3
0.00% day03 [unknown] [k] 0xffffffff83699e73
0.00% day03 [unknown] [k] 0xffffffff836a376e
0.00% day03 [unknown] [k] 0xffffffff836c6388
0.00% day03 [unknown] [k] 0xffffffff83716b24
0.00% day03 [unknown] [k] 0xffffffff836a36f7
0.00% day03 [unknown] [k] 0xffffffff836b692f
0.00% day03 [unknown] [k] 0xffffffff836a370a
0.00% day03 [unknown] [k] 0xffffffff83719973
0.00% day03 [unknown] [k] 0xffffffff83474dfb
0.00% day03 [unknown] [k] 0xffffffff836c6334
0.00% day03 [unknown] [k] 0xffffffff836c9845
0.00% day03 [unknown] [k] 0xffffffff836c6931
0.00% day03 [unknown] [k] 0xffffffff8371940e
0.00% day03 [unknown] [k] 0xffffffff83662da4
0.00% day03 [unknown] [k] 0xffffffff836d8299
0.00% day03 [unknown] [k] 0xffffffff83715434
0.00% day03 [unknown] [k] 0xffffffff83719432
0.00% day03 [unknown] [k] 0xffffffff83699ea1
0.00% day03 [unknown] [k] 0xffffffff83474d3d
0.00% day03 [unknown] [k] 0xffffffff836a2c6e
0.00% day03 [unknown] [k] 0xffffffff83719411
0.00% day03 [unknown] [k] 0xffffffff836c6681
0.00% day03 [unknown] [k] 0xffffffff836c6738
0.00% day03 [unknown] [k] 0xffffffff838e3bad
0.00% day03 [unknown] [k] 0xffffffff8366482f
0.00% day03 [unknown] [k] 0xffffffff83d74980
0.00% day03 [unknown] [k] 0xffffffff837121f8
0.00% day03 [unknown] [k] 0xffffffff83719e7d
0.00% day03 [unknown] [k] 0xffffffff83664851
0.00% day03 [unknown] [k] 0xffffffff83716b29
0.00% day03 [unknown] [k] 0xffffffff83439373
0.00% day03 [unknown] [k] 0xffffffff836a2cf7
0.00% day03 [unknown] [k] 0xffffffff836a2bee
0.00% day03 [unknown] [k] 0xffffffff836a8e20
0.00% day03 [unknown] [k] 0xffffffff836c659d
0.00% day03 [unknown] [k] 0xffffffff83d16cc4
0.00% day03 [unknown] [k] 0xffffffff834f3209
0.00% day03 [unknown] [k] 0xffffffff83662dc8
0.00% day03 [unknown] [k] 0xffffffff83699eb2
0.00% day03 [unknown] [k] 0xffffffff8368060c
0.00% day03 [unknown] [k] 0xffffffff8371799b
0.00% day03 [unknown] [k] 0xffffffff837153e6
0.00% day03 [unknown] [k] 0xffffffff836b7a44
0.00% day03 [unknown] [k] 0xffffffff836a2c0e
0.00% day03 [unknown] [k] 0xffffffff836ea63d
0.00% day03 libc.so.6 [.] __vfscanf_internal
0.00% day03 [unknown] [k] 0xffffffff836b7a34
0.00% day03 [unknown] [k] 0xffffffff836c6d55
0.00% day03 libc.so.6 [.] cfree@GLIBC_2.2.5
0.00% day03 [unknown] [k] 0xffffffff83474df9
0.00% day03 [unknown] [k] 0xffffffff8371943f
0.00% day03 [unknown] [k] 0xffffffff83699e83
0.00% day03 [unknown] [k] 0xffffffff836a3491
0.00% day03 [unknown] [k] 0xffffffff83717a25
0.00% day03 [unknown] [k] 0xffffffff83662d42
0.00% day03 [unknown] [k] 0xffffffff8368098e
0.00% day03 ld-linux-x86-64.so.2 [.] handle_amd
0.00% day03 [unknown] [k] 0xffffffff8369a2b0
0.00% day03 [unknown] [k] 0xffffffff836a34b7
0.00% day03 [unknown] [k] 0xffffffff836b6954
0.00% day03 [unknown] [k] 0xffffffff8356780a
0.00% day03 [unknown] [k] 0xffffffff83d74633
0.00% day03 [unknown] [k] 0xffffffff836a36e7
0.00% day03 [unknown] [k] 0xffffffff83d12e71
0.00% day03 [unknown] [k] 0xffffffff836a38f8
0.00% day03 [unknown] [k] 0xffffffff83719485
0.00% day03 [unknown] [k] 0xffffffff83d74952
0.00% day03 [unknown] [k] 0xffffffff83719e39
0.00% day03 [unknown] [k] 0xffffffff83717a49
0.00% day03 [unknown] [k] 0xffffffff836a2fdd
0.00% day03 [unknown] [k] 0xffffffff83665184
0.00% day03 [unknown] [k] 0xffffffff836c9846
0.00% day03 [unknown] [k] 0xffffffff8369a045
0.00% day03 [unknown] [k] 0xffffffff83717b3b
0.00% day03 [unknown] [k] 0xffffffff83719e16
0.00% day03 [unknown] [k] 0xffffffff836c6694
0.00% day03 [unknown] [k] 0xffffffff836c6360
0.00% day03 [unknown] [k] 0xffffffff8369a03f
0.00% day03 [unknown] [k] 0xffffffff836a8e29
0.00% day03 [unknown] [k] 0xffffffff8343935d
0.00% day03 [unknown] [k] 0xffffffff836ea48b
0.00% day03 [unknown] [k] 0xffffffff8371941f
0.00% day03 [unknown] [k] 0xffffffff836c67f3
0.00% day03 [unknown] [k] 0xffffffff83d749a0
0.00% day03 [unknown] [k] 0xffffffff836ea5a9
0.00% day03 [unknown] [k] 0xffffffff836a336e
0.00% day03 [unknown] [k] 0xffffffff836a34e8
0.00% day03 [unknown] [k] 0xffffffff836c659a
0.00% day03 [unknown] [k] 0xffffffff83d16c83
0.00% day03 [unknown] [k] 0xffffffff83d749a7
0.00% day03 [unknown] [k] 0xffffffff83567802
0.00% day03 [unknown] [k] 0xffffffff836c8fde
0.00% day03 [unknown] [k] 0xffffffff836c694a
0.00% day03 [unknown] [k] 0xffffffff836d82ab
0.00% day03 [unknown] [k] 0xffffffff836c8f41
0.00% day03 [unknown] [k] 0xffffffff836c62b8
0.00% day03 [unknown] [k] 0xffffffff83e01103
0.00% day03 [unknown] [k] 0xffffffff83719401
0.00% day03 day03 [.] helper::cmd::main
0.00% day03 [unknown] [k] 0xffffffff8369a021
0.00% day03 [unknown] [k] 0xffffffff836ea620
0.00% day03 day03 [.] <&T as core::fmt::Display>::fmt
0.00% day03 [unknown] [k] 0xffffffff836611d5
0.00% day03 [unknown] [k] 0xffffffff837353cd
0.00% day03 day03 [.] core::ptr::drop_in_place<clap_builder::mkeymap::MKeyMap>
0.00% day03 ld-linux-x86-64.so.2 [.] open_verify.constprop.0
0.00% day03 ld-linux-x86-64.so.2 [.] _dl_lookup_symbol_x
0.00% day03 [unknown] [k] 0xffffffff836c8fd9
0.00% day03 [unknown] [k] 0xffffffff8367ec01
0.00% day03 [unknown] [k] 0xffffffff83699f74
0.00% day03 [unknown] [k] 0xffffffff8371bb90
0.00% day03 ld-linux-x86-64.so.2 [.] strncmp
0.00% day03 ld-linux-x86-64.so.2 [.] __minimal_calloc
0.00% day03 [unknown] [k] 0xffffffff836ea6de
0.00% day03 [unknown] [k] 0xffffffff837153fa
0.00% day03 [unknown] [k] 0xffffffff836a34b5
0.00% day03 [unknown] [k] 0xffffffff834b6ac6
0.00% day03 [unknown] [k] 0xffffffff8351e980
0.00% day03 [unknown] [k] 0xffffffff837193fb
0.00% day03 [unknown] [k] 0xffffffff8371bbcb
0.00% day03 ld-linux-x86-64.so.2 [.] __GI___tunables_init
0.00% day03 ld-linux-x86-64.so.2 [.] init_cpu_features.constprop.0
0.00% day03 ld-linux-x86-64.so.2 [.] brk
0.00% day03 [unknown] [k] 0xffffffff83654aa7
0.00% day03 [unknown] [k] 0xffffffff83656040
0.00% day03 [unknown] [k] 0xffffffff8369e833
0.00% day03 [unknown] [k] 0xffffffff83d2a5b3
0.00% day03 [unknown] [k] 0xffffffff83d2db37