Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Perf #5

Merged
merged 11 commits into from
Feb 24, 2021
Merged

Perf #5

merged 11 commits into from
Feb 24, 2021

Conversation

Deraen
Copy link
Member

@Deraen Deraen commented Dec 29, 2020

From guns/vim-clojure-static#77

❯ ./clj/bin/syntime ~/Source/reagent/src/reagent/impl/component.cljs

0.071553 sec and 49171 calls for master.
0.018733 sec and 20428 calls for this branch.

Indent performance report in #6

I've been using this for two days and haven't noticed regressions.

guns and others added 11 commits February 8, 2017 19:04
Halves syntime benchmark:

           TOTAL      COUNT
BEFORE:    0.116939   49694
AFTER:     0.052234   27016
These are valid symbol characters.
$ syntime clj/src/vim_clojure_static/generate.clj

Before:

  TOTAL      COUNT  MATCH   SLOWEST     AVERAGE   NAME               PATTERN
  0.031679   2003   1906    0.000092    0.000016  clojureSymbol      \v%([a-zA-Z!$&*_+=|<.>?-]|[^\x00-\x7F])+%(:?%([a-zA-Z0-9!#$%&*_+=|'<.>/?-]|[^\x00-\x7F]))*[#:]@<!
  0.051484   27016

After:

  TOTAL      COUNT  MATCH   SLOWEST     AVERAGE   NAME               PATTERN
  0.010608   2003   1906    0.000030    0.000005  clojureSymbol      \v%([a-zA-Z!$&*_+=|<.>?-]|[^\x00-\x7F])+%(:?%([a-zA-Z0-9!#$%&*_+=|'<.>/?-]|[^\x00-\x7F]))*[#:]@1<!
  0.030519   27016

$ curl -LO https://raw.githubusercontent.com/http-kit/http-kit/master/src/org/httpkit/client.clj
$ syntime client.clj

Before:

  TOTAL      COUNT  MATCH   SLOWEST     AVERAGE   NAME               PATTERN
  0.029451   2340   2293    0.000079    0.000013  clojureSymbol      \v%([a-zA-Z!$&*_+=|<.>?-]|[^\x00-\x7F])+%(:?%([a-zA-Z0-9!#$%&*_+=|'<.>/?-]|[^\x00-\x7F]))*[#:]@<!
  0.046375   23668

After:

  TOTAL      COUNT  MATCH   SLOWEST     AVERAGE   NAME               PATTERN
  0.010855   2340   2293    0.000031    0.000005  clojureSymbol      \v%([a-zA-Z!$&*_+=|<.>?-]|[^\x00-\x7F])+%(:?%([a-zA-Z0-9!#$%&*_+=|'<.>/?-]|[^\x00-\x7F]))*[#:]@1<!
  0.027972   23668

Thanks to Richard Hull (@rm-hull).
Reduces number syntax matching time by 65%
@Deraen Deraen merged commit bd2a734 into master Feb 24, 2021
@Deraen
Copy link
Member Author

Deraen commented Feb 24, 2021

Merging this so this gets more testing, I think I've been running this branch for a long time.

@axvr axvr deleted the perf branch February 24, 2021 20:04
@axvr axvr linked an issue Feb 24, 2021 that may be closed by this pull request
@axvr axvr added performance Affects performance highlighting Affects syntax highlighting labels Jun 23, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
highlighting Affects syntax highlighting performance Affects performance
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Set reasonable g:clojure_maxlines default
3 participants