【问题标题】:boost graph removing edges vs filtered_graph performance提升图去除边缘与过滤图性能
【发布时间】:2016-02-23 00:53:44
【问题描述】:

重复删除然后添加相同边的单线程提升图似乎比使用边谓词同时对同一底层图的多个过滤图执行相同操作的多线程过滤图更快。

filtered_graph 可能会遍历每条边并应用谓词。

有没有办法在没有谓词的情况下直接生成filtered_graph,即使用remove_edge 等函数但实际上创建filtered_graph?

【问题讨论】:

    标签: c++ multithreading boost graph boost-graph


    【解决方案1】:

    只需在过滤后的图表上使用copy_graph

    【讨论】:

    • 这确实似乎比使用过滤图本身更快。真的是每次访问边缘时都会重新评估过滤器谓词吗?或者这种速度差异的原因是什么?
    • @lucidbrot 我不确定优化是否到位,但我想一般很难正确地做到这一点(图形概念是非常通用的)所以,是的,这有点道理。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-23
    • 1970-01-01
    • 2015-11-03
    • 2014-09-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多