В моем инструменте hydrotopo
(https://github.com/iHeadWater/hydrotopo), когда я запускаю find_edge_nodes
для поиска топологических связей примерно для 100 000 линий, это занимает всего около 10 секунд; но в codeе ниже find_edge_nodes
будет занимать около 30 минут:
Короче говоря, когда я вызываю свой инструмент в других программах, скорость программы становится очень низкой, а когда я приостанавливаю программу в режиме отладки, программа останавливается в predicates.has_z
. В моем codeе не так уж много циклов.
Так почему же has_z будет отнимать так много времени или мне следует искать другие решения?
Если вы хотите узнать больше подробностей, посмотрите это: https://github.com/shapely/shapely/issues/2108
# extract from https://github.com/iHeadWater/torchhydro/blob/dev-gnn/torchhydro/datasets/data_sets.py#L872
import hydrotopo.ig_path as htip
# the same method costs about 30min
graph_lists = htip.find_edge_nodes(node_features, network_features, node_idx, 'up', cutoff)
return graph_lists