update results after benchmarking

This commit is contained in:
stelzo 2024-05-14 18:05:39 +02:00
parent 90c32dc642
commit f6cde223ac
2 changed files with 7 additions and 6 deletions

View File

@ -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

View File

@ -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
//!