![]() Profiler output suggests that forward-match is a bit expensive. Here is profiler output from the original code, when profiler is wrapped around tabify-selection: ------------------------------------------------------------------------------------------------------------ loop [34] 0.1% get-backward-sexp method in ...k/private/racket.rkt:425:2 [28] 99.9% [37] 50648(61.1%) 0(0.0%) stick-to-next-sexp? method in ...k/private/racket.rkt:425:2 ... do-forward-match method in ...rk/private/color.rkt:71:2 [50] 99.9% ... ------------------------------------------------------------------------------------------------------------ get-forward-sexp method in ...k/private/racket.rkt:425:2 [38] 17.1% stick-to-next-sexp? method in ...k/private/racket.rkt:425:2 [37] 82.9% [50] 61043(73.6%) 53(0.1%) do-forward-match method in ...rk/private/color.rkt:71:2 ... colorer-driver method in ...rk/private/color.rkt:71:2 [66] 99.8% match-forward method in paren-tree% [72] 0.1% ------------------------------------------------------------------------------------------------------------ The patch does the prerequisite string matching before calling forward-match. Reference to dev list: http://lists.racket-lang.org/dev/archive/2012-November/010976.html original commit: 43b0e2157c5247653da96d24dee833be429c4bfc |
||
---|---|---|
.. | ||
private | ||
collapsed-snipclass-wxme.rkt | ||
collapsed-snipclass.rkt | ||
comment-snip.rkt | ||
decorated-editor-snip.rkt | ||
doc.txt | ||
framework-sig.rkt | ||
framework-unit.rkt | ||
framework.rkt | ||
gui-utils.rkt | ||
keybinding-lang.rkt | ||
main.rkt | ||
preferences.rkt | ||
splash.rkt | ||
test.rkt |