On Wed, 14 Jun 2017 14:13:31 +0200 "Štěpán Balážik" <[email protected]> wrote:
> Hi, > > we want to use Augeas to programmatically parse and generate tests for > Deckard <https://gitlab.labs.nic.cz/knot/deckard>[1] (our test harness > for DNS resolvers). > > I wrote a lens > <https://gitlab.labs.nic.cz/knot/deckard/blob/augeas_wip/pydnstest/deckard.aug>[2] > > which works fine but on longer config files such as this one > <https://gitlab.labs.nic.cz/knot/deckard/blob/augeas_wip/sets/resolver/iter_badraw.rpl>[3] > > the match operation on /scenario/step nodes takes about 3 ms per call on > my machine using both augtool and the python binding. This sums up to > over 10 s for the whole file which too slow for our purposes. > > We have no idea what is the cause of this slowness. Are Augeas matches > always so slow on "shallow and wide" trees? > > Thanks in advance for any help. > Štěpán Balážik @ CZ.NIC > > [1] https://gitlab.labs.nic.cz/knot/deckard > [2] > https://gitlab.labs.nic.cz/knot/deckard/blob/augeas_wip/pydnstest/deckard.aug > [3] > https://gitlab.labs.nic.cz/knot/deckard/blob/augeas_wip/sets/resolver/iter_badraw.rpl > Hi Stepan, we face similar issue when parsing /etc/hosts that are auto-filled by some blocking software ( so around 10k entries there ). In the end solution for us is to introduce caching of match results and creating own map. We use ruby, but I think it is so similar to python, that you get idea.[1] If you need any explanation, do not hesitate to ask. Speed up in our case is approximately half of time spend at parsing. Josef [1] https://github.com/config-files-api/config_files_api/blob/master/lib/cfa/augeas_parser/keys_cache.rb _______________________________________________ augeas-devel mailing list [email protected] https://www.redhat.com/mailman/listinfo/augeas-devel
