Opened 9 years ago

Last modified 6 years ago

#15170 closed enhancement

SimplifyWayAction optimizations. — at Version 1

Reported by: shinigami Owned by: team
Priority: normal Milestone:
Component: Core Version:
Keywords: performance Cc:

Description (last modified by shinigami)

I suppose it is not problem in common use case, but this action is used by OpenData plugin, where it is called for every loaded (sometimes very long) way.

It seems that delNodes and newNodes (in simplifyWay) often contains same data. Problem is that in such case AbstractSet.removeAll is processed as repetitive scanning of given collection and it leads to o(n2) complexity.

Another big slowdown is counting of node frequency in method isRequiredNode, it iterates all way for every node. Simple precounted histogram of nodes makes it much faster.

Change History (3)

by shinigami, 9 years ago

Attachment: simplifyway.patch added

comment:1 by shinigami, 9 years ago

Description: modified (diff)

by shinigami, 9 years ago

Attachment: simplifyway2.patch added
Note: See TracTickets for help on using tickets.