diff --git a/README.md b/README.md index 7c7c762..9bf771d 100644 --- a/README.md +++ b/README.md @@ -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 diff --git a/src/lib.rs b/src/lib.rs index 303bc5f..90a7bd9 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -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 //!