Skip to content

Commit

Permalink
PR followups
Browse files Browse the repository at this point in the history
  • Loading branch information
andrewpollack committed May 20, 2022
1 parent 734f394 commit a1da840
Show file tree
Hide file tree
Showing 2 changed files with 51 additions and 52 deletions.
50 changes: 25 additions & 25 deletions components/calendar/benches/date.rs
Original file line number Diff line number Diff line change
Expand Up @@ -12,25 +12,23 @@ use icu_calendar::{
iso::IsoDay, iso::IsoMonth, iso::IsoYear, AsCalendar, Calendar, Date, DateDuration,
};

fn bench_dates<A: AsCalendar>(dates: &mut [Date<A>]) {
for date in dates {
// black_box used to avoid compiler optimization.
// Arithmetic
date.add(DateDuration::new(
black_box(1),
black_box(2),
black_box(3),
black_box(4),
));

// Retrieving vals
let _ = black_box(date.year().number);
let _ = black_box(date.month().number);
let _ = black_box(date.day_of_month().0);

// Conversion to ISO.
let _ = black_box(date.to_iso());
}
fn bench_date<A: AsCalendar>(date: &mut Date<A>) {
// black_box used to avoid compiler optimization.
// Arithmetic
date.add(DateDuration::new(
black_box(1),
black_box(2),
black_box(3),
black_box(4),
));

// Retrieving vals
let _ = black_box(date.year().number);
let _ = black_box(date.month().number);
let _ = black_box(date.day_of_month().0);

// Conversion to ISO.
let _ = black_box(date.to_iso());
}

#[cfg(feature = "bench")]
Expand All @@ -45,13 +43,14 @@ fn bench_calendar<C: Clone + Calendar>(
b.iter(|| {
for fx in &fxs.0 {
// Instantion from int
let instantiated_date_calendar = calendar_date_init(fx.year, fx.month, fx.day);
let mut instantiated_date_calendar = calendar_date_init(fx.year, fx.month, fx.day);

// Conversion from ISO
let date_iso = Date::new_iso_date_from_integers(fx.year, fx.month, fx.day).unwrap();
let converted_date_calendar = Date::new_from_iso(date_iso, calendar.clone());
let mut converted_date_calendar = Date::new_from_iso(date_iso, calendar.clone());

bench_dates(&mut [instantiated_date_calendar, converted_date_calendar]);
bench_date(&mut instantiated_date_calendar);
bench_date(&mut converted_date_calendar);
}
})
});
Expand All @@ -71,16 +70,17 @@ fn bench_calendar_iso_types<C: Clone + Calendar>(
for fx in &fxs.0 {
// Conversion from ISO
let date_iso = Date::new_iso_date_from_integers(fx.year, fx.month, fx.day).unwrap();
let converted_date_calendar = Date::new_from_iso(date_iso, calendar.clone());
let mut converted_date_calendar = Date::new_from_iso(date_iso, calendar.clone());

// Instantion from ISO
let iso_year = IsoYear(fx.year);
let iso_month = IsoMonth::try_from(fx.month).unwrap();
let iso_day = IsoDay::try_from(fx.day).unwrap();
let iso_insantiated_date_calendar =
let mut iso_insantiated_date_calendar =
calendar_date_init(iso_year, iso_month, iso_day);

bench_dates(&mut [iso_insantiated_date_calendar, converted_date_calendar]);
bench_date(&mut iso_insantiated_date_calendar);
bench_date(&mut converted_date_calendar);
}
})
});
Expand Down
53 changes: 26 additions & 27 deletions components/calendar/benches/datetime.rs
Original file line number Diff line number Diff line change
Expand Up @@ -10,30 +10,28 @@ use criterion::{
};
use icu_calendar::{types::Time, AsCalendar, Calendar, DateDuration, DateTime};

fn bench_datetimes<A: AsCalendar>(datetimes: &mut [DateTime<A>]) {
for datetime in datetimes {
// black_box used to avoid compiler optimization.
// Arithmetic.
datetime.date.add(DateDuration::new(
black_box(1),
black_box(2),
black_box(3),
black_box(4),
));
datetime.time = Time::try_new(black_box(14), black_box(30), black_box(0), black_box(0))
.expect("Failed to initialize Time instance.");

// Retrieving vals
let _ = black_box(datetime.date.year().number);
let _ = black_box(datetime.date.month().number);
let _ = black_box(datetime.date.day_of_month().0);
let _ = black_box(datetime.time.hour);
let _ = black_box(datetime.time.minute);
let _ = black_box(datetime.time.second);

// Conversion to ISO.
let _ = black_box(datetime.to_iso());
}
fn bench_datetime<A: AsCalendar>(datetime: &mut DateTime<A>) {
// black_box used to avoid compiler optimization.
// Arithmetic.
datetime.date.add(DateDuration::new(
black_box(1),
black_box(2),
black_box(3),
black_box(4),
));
datetime.time = Time::try_new(black_box(14), black_box(30), black_box(0), black_box(0))
.expect("Failed to initialize Time instance.");

// Retrieving vals
let _ = black_box(datetime.date.year().number);
let _ = black_box(datetime.date.month().number);
let _ = black_box(datetime.date.day_of_month().0);
let _ = black_box(datetime.time.hour);
let _ = black_box(datetime.time.minute);
let _ = black_box(datetime.time.second);

// Conversion to ISO.
let _ = black_box(datetime.to_iso());
}

fn bench_calendar<C: Clone + Calendar>(
Expand All @@ -47,7 +45,7 @@ fn bench_calendar<C: Clone + Calendar>(
b.iter(|| {
for fx in &fxs.0 {
// Instantion from int
let instantiated_datetime_calendar = calendar_datetime_init(
let mut instantiated_datetime_calendar = calendar_datetime_init(
fx.year, fx.month, fx.day, fx.hour, fx.minute, fx.second,
);

Expand All @@ -56,10 +54,11 @@ fn bench_calendar<C: Clone + Calendar>(
fx.year, fx.month, fx.day, fx.hour, fx.minute, fx.second,
)
.unwrap();
let converted_datetime_calendar =
let mut converted_datetime_calendar =
DateTime::new_from_iso(datetime_iso, calendar.clone());

bench_datetimes(&mut [instantiated_datetime_calendar, converted_datetime_calendar]);
bench_datetime(&mut instantiated_datetime_calendar);
bench_datetime(&mut converted_datetime_calendar);
}
})
});
Expand Down

0 comments on commit a1da840

Please sign in to comment.