|
|
1
4
你的功能
该函数可以替换为对
此外,假设并行循环使用线程,您必须记住,创建和最终同步(在这种情况下,在处理过程中不需要同步)会产生开销,这对于您的琐碎操作可能很重要。
线程并行性通常只在计算代价很高的任务中才值得。
|
|
|
2
1
你的基准测试是错误的,我甚至很惊讶运行它需要时间。 你写道: std::对于每个(v.begin(),v.end(),[](auto v)v=0;);
AS
因此,如果没有任何副作用,这一切都可以消除。如果您要使用并行算法,那么很可能您有某种同步,这会使优化变得更加困难,因为在另一个线程中可能会有副作用?证明它并不复杂,更不用说线程管理可能存在的副作用了? 为了解决这一问题,很多基准测试都在宏中使用卡车来强制编译器承担副作用。在lambda中使用它们,这样编译器就不会删除它。 |
|
AstralHex · 矩阵乘法代码工作不正常 1 年前 |
|
|
Fishie · 作为类成员的智能指针是否仍然自动释放?[关闭] 1 年前 |
|
|
Die4Toast · 递归调用成员箭头运算符-> 1 年前 |
|
|
Anka Hanım · 关于结构和动态数组地址的问题 1 年前 |