This is the mail archive of the libc-alpha@sources.redhat.com mailing list for the glibc project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
This patch results in a 60% performance improvement with respect to my previous more complicated patch (on top of which it should be applied). Basically I do a limited form of hashing on the backreference cache in order to check entry->hash only instead of both entry->node and entry->str_idx for entries not in the cache. I also cache the first and last enabled_idx for the last node/str_idx pair. Time without the patch for factor.sed 5.1s With caching 4.0s With caching+hashing 2.1s 2002-10-23 Paolo Bonzini (bonzini@gnu.org) * posix/regexec.c (sift_states_bkref): cache the limits of the inner loop, and use a limited form of hashing to save a comparison for entries not belonging to the current node. (match_ctx_init): initialize the cache (match_ctx_add_entry): update the cache * posix/regex_internal.h (re_match_context_t): added fields for the cache (struct re_backref_cache_entry): added field for the hash Paolo Bonzini
Attachment:
regex-more-backref-performance-2.patch
Description: Binary data
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |