Skip to content

Commit

Permalink
Always create the log_time timeline (#1763)
Browse files Browse the repository at this point in the history
  • Loading branch information
jleibs authored Apr 4, 2023
1 parent 7892098 commit 1713e60
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 3 deletions.
8 changes: 7 additions & 1 deletion crates/re_data_store/src/entity_tree.rs
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,6 @@ impl TimeHistogramPerTimeline {
// ----------------------------------------------------------------------------

/// Number of messages per time per timeline
#[derive(Default)]
pub struct TimesPerTimeline(BTreeMap<Timeline, BTreeSet<TimeInt>>);

impl TimesPerTimeline {
Expand Down Expand Up @@ -79,6 +78,13 @@ impl TimesPerTimeline {
}
}

// Always ensure we have a default "log_time" timeline.
impl Default for TimesPerTimeline {
fn default() -> Self {
Self(BTreeMap::from([(Timeline::log_time(), Default::default())]))
}
}

// ----------------------------------------------------------------------------

/// Tree of entity paths, plus components at the leaves.
Expand Down
4 changes: 2 additions & 2 deletions crates/re_viewer/src/misc/time_control.rs
Original file line number Diff line number Diff line change
Expand Up @@ -501,11 +501,11 @@ impl TimeControl {
}

fn min(values: &BTreeSet<TimeInt>) -> TimeInt {
*values.iter().next().unwrap()
*values.iter().next().unwrap_or(&TimeInt::BEGINNING)
}

fn max(values: &BTreeSet<TimeInt>) -> TimeInt {
*values.iter().rev().next().unwrap()
*values.iter().rev().next().unwrap_or(&TimeInt::BEGINNING)
}

fn range(values: &BTreeSet<TimeInt>) -> TimeRange {
Expand Down

1 comment on commit 1713e60

@github-actions
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Rust Benchmark

Benchmark suite Current: 1713e60 Previous: 9c1babe Ratio
arrow2/size_bytes/primitive/rows=10000/instances=100/array 146739 ns/iter (± 561) 148488 ns/iter (± 545) 0.99
arrow2/size_bytes/primitive/rows=10000/instances=100/vec 3289 ns/iter (± 6) 3290 ns/iter (± 10) 1.00
arrow2/size_bytes/primitive/rows=10000/instances=100/vec/erased 17735 ns/iter (± 9) 17747 ns/iter (± 41) 1.00
arrow2/size_bytes/struct/rows=10000/instances=100/array 485695 ns/iter (± 3487) 494728 ns/iter (± 4019) 0.98
arrow2/size_bytes/struct/rows=10000/instances=100/vec 3291 ns/iter (± 8) 3291 ns/iter (± 8) 1
arrow2/size_bytes/struct/rows=10000/instances=100/vec/erased 17722 ns/iter (± 6) 17743 ns/iter (± 31) 1.00
arrow2/size_bytes/struct_large/rows=10000/instances=100/array 4325396 ns/iter (± 472983) 5026298 ns/iter (± 713039) 0.86
arrow2/size_bytes/struct_large/rows=10000/instances=100/vec 3986 ns/iter (± 14) 3984 ns/iter (± 10) 1.00
arrow2/size_bytes/struct_large/rows=10000/instances=100/vec/erased 17728 ns/iter (± 7) 17748 ns/iter (± 44) 1.00
arrow2/erased_clone/primitive/rows=10000/instances=100/cell/arc_erased 799086 ns/iter (± 1985) 783590 ns/iter (± 1331) 1.02
arrow2/erased_clone/primitive/rows=10000/instances=100/cell/wrapped_in_arc 195639 ns/iter (± 482) 195453 ns/iter (± 496) 1.00
arrow2/erased_clone/primitive/rows=10000/instances=100/array 742243 ns/iter (± 2177) 742168 ns/iter (± 2224) 1.00
arrow2/erased_clone/primitive/rows=10000/instances=100/array/downcast_first 345258 ns/iter (± 1774) 357582 ns/iter (± 1498) 0.97
arrow2/erased_clone/primitive/rows=10000/instances=100/vec/full_copy 1432802 ns/iter (± 147672) 1010790 ns/iter (± 21285) 1.42
arrow2/erased_clone/primitive/rows=10000/instances=100/vec/wrapped_in_arc 127135 ns/iter (± 230) 128202 ns/iter (± 148) 0.99
arrow2/erased_clone/struct/rows=10000/instances=100/cell/arc_erased 4674567 ns/iter (± 246438) 4729229 ns/iter (± 315210) 0.99
arrow2/erased_clone/struct/rows=10000/instances=100/cell/wrapped_in_arc 278073 ns/iter (± 875) 281101 ns/iter (± 1105) 0.99
arrow2/erased_clone/struct/rows=10000/instances=100/array 4698680 ns/iter (± 335213) 4215217 ns/iter (± 203622) 1.11
arrow2/erased_clone/struct/rows=10000/instances=100/array/downcast_first 4185773 ns/iter (± 169580) 3761077 ns/iter (± 122901) 1.11
arrow2/erased_clone/struct/rows=10000/instances=100/vec/full_copy 1404705 ns/iter (± 171255) 1324326 ns/iter (± 29426) 1.06
arrow2/erased_clone/struct/rows=10000/instances=100/vec/wrapped_in_arc 127829 ns/iter (± 130) 128502 ns/iter (± 145) 0.99
arrow2/erased_clone/struct_large/rows=10000/instances=100/cell/arc_erased 49339245 ns/iter (± 291721) 56230825 ns/iter (± 539963) 0.88
arrow2/erased_clone/struct_large/rows=10000/instances=100/cell/wrapped_in_arc 173341 ns/iter (± 582) 168925 ns/iter (± 425) 1.03
arrow2/erased_clone/struct_large/rows=10000/instances=100/array 48133569 ns/iter (± 404751) 55106142 ns/iter (± 531060) 0.87
arrow2/erased_clone/struct_large/rows=10000/instances=100/array/downcast_first 46491274 ns/iter (± 537484) 53313349 ns/iter (± 577289) 0.87
arrow2/erased_clone/struct_large/rows=10000/instances=100/vec/full_copy 5066246 ns/iter (± 85901) 6335984 ns/iter (± 250450) 0.80
arrow2/erased_clone/struct_large/rows=10000/instances=100/vec/wrapped_in_arc 126956 ns/iter (± 403) 128006 ns/iter (± 366) 0.99
arrow2_convert/serialize/primitive/instances=100000/arrow2_convert 415374 ns/iter (± 4568) 415814 ns/iter (± 553) 1.00
arrow2_convert/serialize/primitive/instances=100000/arrow2/from_values 19460 ns/iter (± 66) 19606 ns/iter (± 75) 0.99
arrow2_convert/serialize/primitive/instances=100000/arrow2/from_vec 19479 ns/iter (± 111) 19422 ns/iter (± 95) 1.00
arrow2_convert/deserialize/primitive/instances=100000/arrow2_convert 98494 ns/iter (± 1060) 96225 ns/iter (± 244) 1.02
arrow2_convert/deserialize/primitive/instances=100000/arrow2/validity_checks 161263 ns/iter (± 394) 164720 ns/iter (± 414) 0.98
arrow2_convert/deserialize/primitive/instances=100000/arrow2/validity_bypass 58607 ns/iter (± 168) 59222 ns/iter (± 183) 0.99
datastore/num_rows=1000/num_instances=1000/packed=false/insert/default 13351790 ns/iter (± 464566) 12466953 ns/iter (± 573959) 1.07
datastore/num_rows=1000/num_instances=1000/packed=false/insert/bucketsz=0 15398070 ns/iter (± 756505) 15788789 ns/iter (± 854897) 0.98
datastore/num_rows=1000/num_instances=1000/packed=false/insert/bucketsz=2 14207999 ns/iter (± 580479) 14715067 ns/iter (± 810273) 0.97
datastore/num_rows=1000/num_instances=1000/packed=false/insert/bucketsz=32 14757831 ns/iter (± 1261883) 13136277 ns/iter (± 657075) 1.12
datastore/num_rows=1000/num_instances=1000/packed=false/insert/bucketsz=2048 12792116 ns/iter (± 731378) 12860622 ns/iter (± 743644) 0.99
datastore/num_rows=1000/num_instances=1000/packed=true/insert/default 12484322 ns/iter (± 487203) 12369410 ns/iter (± 581450) 1.01
datastore/num_rows=1000/num_instances=1000/packed=true/insert/bucketsz=0 14964285 ns/iter (± 670735) 15027137 ns/iter (± 925995) 1.00
datastore/num_rows=1000/num_instances=1000/packed=true/insert/bucketsz=2 14910080 ns/iter (± 769303) 14441994 ns/iter (± 1087407) 1.03
datastore/num_rows=1000/num_instances=1000/packed=true/insert/bucketsz=32 12373254 ns/iter (± 538765) 12359493 ns/iter (± 630596) 1.00
datastore/num_rows=1000/num_instances=1000/packed=true/insert/bucketsz=2048 14589731 ns/iter (± 473161) 11634322 ns/iter (± 649700) 1.25
datastore/num_rows=1000/num_instances=1000/packed=false/latest_at/default 1831 ns/iter (± 26) 1805 ns/iter (± 22) 1.01
datastore/num_rows=1000/num_instances=1000/packed=false/latest_at/bucketsz=0 1818 ns/iter (± 4) 1819 ns/iter (± 4) 1.00
datastore/num_rows=1000/num_instances=1000/packed=false/latest_at/bucketsz=2 1813 ns/iter (± 1) 1828 ns/iter (± 4) 0.99
datastore/num_rows=1000/num_instances=1000/packed=false/latest_at/bucketsz=32 1823 ns/iter (± 4) 1812 ns/iter (± 3) 1.01
datastore/num_rows=1000/num_instances=1000/packed=false/latest_at/bucketsz=2048 1800 ns/iter (± 1) 1794 ns/iter (± 7) 1.00
datastore/num_rows=1000/num_instances=1000/packed=true/latest_at/default 1836 ns/iter (± 18) 1819 ns/iter (± 22) 1.01
datastore/num_rows=1000/num_instances=1000/packed=true/latest_at/bucketsz=0 1852 ns/iter (± 1) 1828 ns/iter (± 7) 1.01
datastore/num_rows=1000/num_instances=1000/packed=true/latest_at/bucketsz=2 1838 ns/iter (± 3) 1810 ns/iter (± 1) 1.02
datastore/num_rows=1000/num_instances=1000/packed=true/latest_at/bucketsz=32 1826 ns/iter (± 1) 1829 ns/iter (± 3) 1.00
datastore/num_rows=1000/num_instances=1000/packed=true/latest_at/bucketsz=2048 1815 ns/iter (± 3) 1822 ns/iter (± 2) 1.00
datastore/num_rows=1000/num_instances=1000/packed=false/latest_at_missing/primary/default 279 ns/iter (± 0) 279 ns/iter (± 0) 1
datastore/num_rows=1000/num_instances=1000/packed=false/latest_at_missing/secondaries/default 435 ns/iter (± 0) 434 ns/iter (± 1) 1.00
datastore/num_rows=1000/num_instances=1000/packed=false/latest_at_missing/primary/bucketsz=0 279 ns/iter (± 0) 279 ns/iter (± 0) 1
datastore/num_rows=1000/num_instances=1000/packed=false/latest_at_missing/secondaries/bucketsz=0 443 ns/iter (± 0) 443 ns/iter (± 1) 1
datastore/num_rows=1000/num_instances=1000/packed=false/latest_at_missing/primary/bucketsz=2 279 ns/iter (± 0) 279 ns/iter (± 0) 1
datastore/num_rows=1000/num_instances=1000/packed=false/latest_at_missing/secondaries/bucketsz=2 444 ns/iter (± 0) 443 ns/iter (± 0) 1.00
datastore/num_rows=1000/num_instances=1000/packed=false/latest_at_missing/primary/bucketsz=32 279 ns/iter (± 0) 279 ns/iter (± 0) 1
datastore/num_rows=1000/num_instances=1000/packed=false/latest_at_missing/secondaries/bucketsz=32 440 ns/iter (± 0) 441 ns/iter (± 0) 1.00
datastore/num_rows=1000/num_instances=1000/packed=false/latest_at_missing/primary/bucketsz=2048 279 ns/iter (± 0) 280 ns/iter (± 0) 1.00
datastore/num_rows=1000/num_instances=1000/packed=false/latest_at_missing/secondaries/bucketsz=2048 436 ns/iter (± 0) 436 ns/iter (± 0) 1
datastore/num_rows=1000/num_instances=1000/packed=true/latest_at_missing/primary/default 279 ns/iter (± 0) 279 ns/iter (± 0) 1
datastore/num_rows=1000/num_instances=1000/packed=true/latest_at_missing/secondaries/default 438 ns/iter (± 0) 435 ns/iter (± 1) 1.01
datastore/num_rows=1000/num_instances=1000/packed=true/latest_at_missing/primary/bucketsz=0 278 ns/iter (± 0) 279 ns/iter (± 1) 1.00
datastore/num_rows=1000/num_instances=1000/packed=true/latest_at_missing/secondaries/bucketsz=0 443 ns/iter (± 0) 443 ns/iter (± 1) 1
datastore/num_rows=1000/num_instances=1000/packed=true/latest_at_missing/primary/bucketsz=2 278 ns/iter (± 0) 280 ns/iter (± 0) 0.99
datastore/num_rows=1000/num_instances=1000/packed=true/latest_at_missing/secondaries/bucketsz=2 443 ns/iter (± 0) 444 ns/iter (± 1) 1.00
datastore/num_rows=1000/num_instances=1000/packed=true/latest_at_missing/primary/bucketsz=32 279 ns/iter (± 0) 279 ns/iter (± 0) 1
datastore/num_rows=1000/num_instances=1000/packed=true/latest_at_missing/secondaries/bucketsz=32 440 ns/iter (± 0) 441 ns/iter (± 1) 1.00
datastore/num_rows=1000/num_instances=1000/packed=true/latest_at_missing/primary/bucketsz=2048 279 ns/iter (± 0) 280 ns/iter (± 0) 1.00
datastore/num_rows=1000/num_instances=1000/packed=true/latest_at_missing/secondaries/bucketsz=2048 437 ns/iter (± 5) 435 ns/iter (± 0) 1.00
datastore/num_rows=1000/num_instances=1000/packed=false/range/default 15045488 ns/iter (± 716728) 12868604 ns/iter (± 747296) 1.17
datastore/num_rows=1000/num_instances=1000/packed=false/range/bucketsz=0 2185023 ns/iter (± 146517) 2212176 ns/iter (± 20700) 0.99
datastore/num_rows=1000/num_instances=1000/packed=false/range/bucketsz=2 2237585 ns/iter (± 70869) 2144919 ns/iter (± 9856) 1.04
datastore/num_rows=1000/num_instances=1000/packed=false/range/bucketsz=32 1930882 ns/iter (± 19864) 1881156 ns/iter (± 8421) 1.03
datastore/num_rows=1000/num_instances=1000/packed=false/range/bucketsz=2048 1860645 ns/iter (± 10489) 1878696 ns/iter (± 13373) 0.99
datastore/num_rows=1000/num_instances=1000/packed=true/range/default 11723287 ns/iter (± 755827) 12396237 ns/iter (± 876544) 0.95
datastore/num_rows=1000/num_instances=1000/packed=true/range/bucketsz=0 2130921 ns/iter (± 15375) 2178251 ns/iter (± 16065) 0.98
datastore/num_rows=1000/num_instances=1000/packed=true/range/bucketsz=2 2183148 ns/iter (± 63610) 2139059 ns/iter (± 9245) 1.02
datastore/num_rows=1000/num_instances=1000/packed=true/range/bucketsz=32 1845812 ns/iter (± 14449) 1838068 ns/iter (± 7655) 1.00
datastore/num_rows=1000/num_instances=1000/packed=true/range/bucketsz=2048 1802793 ns/iter (± 9603) 1835498 ns/iter (± 9990) 0.98
vector_ops/sort/instances=10000/smallvec/n=4 12494 ns/iter (± 18) 12464 ns/iter (± 47) 1.00
vector_ops/sort/instances=10000/tinyvec/n=4 9648 ns/iter (± 23) 9665 ns/iter (± 43) 1.00
vector_ops/sort/instances=10000/vec 9647 ns/iter (± 24) 9639 ns/iter (± 72) 1.00
vector_ops/split_off/instances=10000/smallvec/n=4/manual 5545 ns/iter (± 8) 5549 ns/iter (± 23) 1.00
vector_ops/split_off/instances=10000/tinyvec/n=4 2728 ns/iter (± 21) 2738 ns/iter (± 23) 1.00
vector_ops/split_off/instances=10000/tinyvec/n=4/manual 2737 ns/iter (± 20) 2758 ns/iter (± 27) 0.99
vector_ops/split_off/instances=10000/vec 2722 ns/iter (± 9) 2733 ns/iter (± 21) 1.00
vector_ops/split_off/instances=10000/vec/manual 2669 ns/iter (± 23) 2731 ns/iter (± 18) 0.98
vector_ops/swap/instances=10000/smallvec/n=4 32825 ns/iter (± 25) 32773 ns/iter (± 66) 1.00
vector_ops/swap/instances=10000/tinyvec/n=4 18267 ns/iter (± 39) 18308 ns/iter (± 64) 1.00
vector_ops/swap/instances=10000/vec 12305 ns/iter (± 11) 12323 ns/iter (± 19) 1.00
vector_ops/swap_opt/instances=10000/smallvec/n=4 42783 ns/iter (± 29) 42760 ns/iter (± 91) 1.00
vector_ops/swap_opt/instances=10000/tinyvec/n=4 28951 ns/iter (± 40) 28878 ns/iter (± 86) 1.00
vector_ops/swap_opt/instances=10000/vec 19877 ns/iter (± 24) 19837 ns/iter (± 162) 1.00
mono_points_arrow/generate_message_bundles 43786397 ns/iter (± 614340) 46586415 ns/iter (± 471393) 0.94
mono_points_arrow/generate_messages 165142476 ns/iter (± 1100322) 185510639 ns/iter (± 1494732) 0.89
mono_points_arrow/encode_log_msg 208007785 ns/iter (± 1227384) 226133881 ns/iter (± 950085) 0.92
mono_points_arrow/encode_total 416443519 ns/iter (± 4144644) 457508019 ns/iter (± 1956677) 0.91
mono_points_arrow/decode_log_msg 256243054 ns/iter (± 2010532) 269611090 ns/iter (± 1065775) 0.95
mono_points_arrow/decode_message_bundles 86437840 ns/iter (± 750776) 101907974 ns/iter (± 753045) 0.85
mono_points_arrow/decode_total 340947320 ns/iter (± 2861077) 368676351 ns/iter (± 2144952) 0.92
mono_points_arrow_batched/generate_message_bundles 35865013 ns/iter (± 1159290) 42353705 ns/iter (± 1405830) 0.85
mono_points_arrow_batched/generate_messages 9807303 ns/iter (± 549899) 14775315 ns/iter (± 953997) 0.66
mono_points_arrow_batched/encode_log_msg 1797241 ns/iter (± 3250) 1828681 ns/iter (± 6275) 0.98
mono_points_arrow_batched/encode_total 48475411 ns/iter (± 1364836) 54032288 ns/iter (± 2354312) 0.90
mono_points_arrow_batched/decode_log_msg 988663 ns/iter (± 8610) 998904 ns/iter (± 11667) 0.99
mono_points_arrow_batched/decode_message_bundles 19035605 ns/iter (± 949174) 20710894 ns/iter (± 1167587) 0.92
mono_points_arrow_batched/decode_total 21353719 ns/iter (± 834984) 22022712 ns/iter (± 883302) 0.97
batch_points_arrow/generate_message_bundles 284873 ns/iter (± 757) 284508 ns/iter (± 1074) 1.00
batch_points_arrow/generate_messages 7672 ns/iter (± 25) 7666 ns/iter (± 18) 1.00
batch_points_arrow/encode_log_msg 389818 ns/iter (± 5572) 387780 ns/iter (± 1610) 1.01
batch_points_arrow/encode_total 693208 ns/iter (± 5658) 708042 ns/iter (± 7800) 0.98
batch_points_arrow/decode_log_msg 340579 ns/iter (± 2354) 336923 ns/iter (± 1261) 1.01
batch_points_arrow/decode_message_bundles 2938 ns/iter (± 8) 2882 ns/iter (± 13) 1.02
batch_points_arrow/decode_total 354156 ns/iter (± 3837) 348837 ns/iter (± 1089) 1.02
arrow_mono_points/insert 6198787871 ns/iter (± 109272271) 7002738212 ns/iter (± 19166388) 0.89
arrow_mono_points/query 1872440 ns/iter (± 23630) 1801900 ns/iter (± 15799) 1.04
arrow_batch_points/insert 3026018 ns/iter (± 17782) 2995581 ns/iter (± 9178) 1.01
arrow_batch_points/query 16424 ns/iter (± 26) 16482 ns/iter (± 77) 1.00
arrow_batch_vecs/insert 43032 ns/iter (± 172) 43116 ns/iter (± 132) 1.00
arrow_batch_vecs/query 505899 ns/iter (± 369) 507147 ns/iter (± 1101) 1.00
tuid/Tuid::random 34 ns/iter (± 0) 34 ns/iter (± 0) 1

This comment was automatically generated by workflow using github-action-benchmark.

Please sign in to comment.