Hi Jeremy,

I'm just profiling some algorithm. I noticed that dijkstra_shortest_paths
takes about 30% more time when predecessors and distance are
stored in vector_property_map that I've just wrote. The only potential
problem is shared_ptr member in that class, and in fact, it's copy ctor is 
responsible for most of the performance loss.

However, I don't think the property maps should be copied that much:
in my example, about 1400000 copies are made. The copies are
made:
1. When calling the "relax" function (in graph/relax.hpp)
2. When calling the "down_heap" function (in pending/mutable_heap.hpp)

The first takes property_map by value. The second takes comparison object
by value (which stores property map). Both functions are internal. Can they
accept parameters by reference?

More general question: shouldn't all internal functions in BGL accept 
parameters by reference?

- Volodya
_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost

Reply via email to