Skip to content

Commit

Permalink
update results after benchmarking
Browse files Browse the repository at this point in the history
  • Loading branch information
stelzo committed May 14, 2024
1 parent 90c32dc commit f6cde22
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 6 deletions.
8 changes: 4 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -88,12 +88,12 @@ Please open an issue or PR if you need other integrations.
## Performance

This library offers a speed up when compared to PointCloudLibrary (PCL) conversions but the specific factor depends heavily on the use case and system.
The `_vec` conversions are on average ~7.5x faster than PCL while the single core iteration `_iter` functions are around 2x faster.
Parallelization with `_par_iter` gives a 10.5x speed up compared to an OpenMP accelerated PCL pipeline.
The `_vec` conversions are on average ~6x faster than PCL while the single core iteration `_iter` functions are around ~2x faster.
Parallelization with `_par_iter` gives a ~9x speed up compared to an OpenMP accelerated PCL pipeline.

The results are measured with benchmarks in this [repository](https://github.com/stelzo/ros_pcl_conv_bench) and are evaluated on a i7-14700.
The results are measured on an Intel i7-14700 with benchmarks from [this repository](https://github.com/stelzo/ros_pcl_conv_bench).

For minimizing the ROS overhead, always use the functions that best fit your use case.
For minimizing the conversion overhead in general, always use the functions that best fit your use case.

## License

Expand Down
5 changes: 3 additions & 2 deletions src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,10 @@
//! - [`PointCloud2Msg::try_from_iter`]
//! - [`PointCloud2Msg::try_into_iter`]
//!
//! These feature predictable but [slightly worse](https://github.com/stelzo/ros_pointcloud2?tab=readme-ov-file#performance) performance while avoiding memory allocations.
//! These feature predictable performance but they do not scale well with large clouds. Learn more about that in the [performance section](https://github.com/stelzo/ros_pointcloud2?tab=readme-ov-file#performance) of the repository.
//! The iterators are useful when your conversions are more complex than a simple copy or you the cloud is small enough.
//!
//! Use the parallel iterator for processing-heavy tasks.
//! When the cloud is getting larger or you are doing a lot of processing per point, switch to the parallel iterators.
//! - [`PointCloud2Msg::try_into_par_iter`] requires `rayon` feature
//! - [`PointCloud2Msg::try_from_par_iter`] requires `rayon` + `derive` feature
//!
Expand Down

0 comments on commit f6cde22

Please sign in to comment.