update results after benchmarking
This commit is contained in:
parent
90c32dc642
commit
f6cde223ac
|
|
@ -88,12 +88,12 @@ Please open an issue or PR if you need other integrations.
|
||||||
## Performance
|
## 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.
|
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.
|
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 10.5x speed up compared to an OpenMP accelerated PCL pipeline.
|
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
|
## License
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -10,9 +10,10 @@
|
||||||
//! - [`PointCloud2Msg::try_from_iter`]
|
//! - [`PointCloud2Msg::try_from_iter`]
|
||||||
//! - [`PointCloud2Msg::try_into_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_into_par_iter`] requires `rayon` feature
|
||||||
//! - [`PointCloud2Msg::try_from_par_iter`] requires `rayon` + `derive` feature
|
//! - [`PointCloud2Msg::try_from_par_iter`] requires `rayon` + `derive` feature
|
||||||
//!
|
//!
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue