Closed mattfidler closed 9 years ago
For now a work-around could be:
(defadvice ergoemacs-install-shortcuts-map (around ace-jump-fix (&optional map dont-complete install-read no-brand))
"Fix ace-jump mode"
(if (and map (keymapp map) (eq (lookup-key map [t] t) 'ace-jump-done))
map
ad-do-it))
This workaround does not cause any visible improvement for me. I do not understand how it works so it is difficult to guess why :(
According to describe-function
there is no fn named ace-jump-fix
. Don't I actually create the advice around ergoemacs-install-shortcuts-map
to short-circuit it it is working on ace?
defadvice
changes how functions work. In theory it short-circuts ergoemacs-install-shortcuts-map
.
However, that doesn't seem to be the sticking point for you. To find ot what the sticking point is for you, do the following:
Try Alt+a
elp-instrument-package
Then type ergoemacs-
Start the ace jump
After jumping to a character type
Alt+a
elp-results
It will give you something like the following
ergoemacs-post-command-hook 15 0.747 0.0498
ergoemacs-install-shortcuts-map 1 0.747 0.747
ergoemacs-install-shortcuts-up 30 0.747 0.0249
ergoemacs-map-get 6624 0.7460000000 0.0001126207
ergoemacs-map-p 3792 0.6860000000 0.0001809071
ergoemacs-install-shortcuts-map-name 1 0.685 0.685
ergoemacs-define-key 1409 0.4830000000 0.0003427963
ergoemacs-define-key--is-global-map 1409 0.4510000000 0.0003200851
ergoemacs-without-emulation--internal 18 0.4200000000 0.0233333333
ergoemacs-key-binding 15 0.3890000000 0.0259333333
ergoemacs-original-keymap 954 0.3570000000 0.0003742138
ergoemacs-submap-p 1409 0.2190000000 0.0001554293
ergoemacs-read-event 2 0.2180000000 0.1090000000
ergoemacs-map-composed 3792 0.1570000000 4.14...e-005
ergoemacs-map-composed-list 3792 0.079 2.08...e-005
ergoemacs-theme--install-shortcut-item 107 0.062 0.0005794392
ergoemacs-theme--install-shortcuts-list 1 0.062 0.062
ergoemacs-map-plist 3804 0.062 1.62...e-005
ergoemacs-shortcut-remap-list 84 0.061 0.0007261904
ergoemacs-translate 2 0.016 0.008
ergoemacs-copy-list 73 0.016 0.0002191780
ergoemacs-map-composed-p 3792 0.016 4.21...e-006
ergoemacs-pretty-key-description 26 0.016 0.0006153846
ergoemacs-pretty-key 26 0.016 0.0006153846
ergoemacs-map-keymap-value 6636 0.015 2.26...e-006
ergoemacs-smart-function-p 168 0.015 8.92...e-005
ergoemacs-shift-translate-install 8 0.0 0.0
ergoemacs-read-key--echo-command 1 0.0 0.0
ergoemacs-event-modifiers 26 0.0 0.0
ergoemacs-save-buffer-to-recently-closed 196 0.0 0.0
ergoemacs--pretty-key-concat 4 0.0 0.0
ergoemacs-shortcut-function-binding 84 0.0 0.0
ergoemacs-read-key-add-translation 20 0.0 0.0
ergoemacs-read-key 1 0 0.0
ergoemacs-event-basic-type 26 0.0 0.0
ergoemacs-original-keymap--intern 756 0.0 0.0
ergoemacs-real-define-key 1409 0.0 0.0
ergoemacs-pretty-key-description--ctl 13 0.0 0.0
ergoemacs-restore-post-command-hook 15 0.0 0.0
ergoemacs-setcdr 901 0.0 0.0
ergoemacs-shortcut-remap 1 0 0.0
ergoemacs-map-put 12 0.0 0.0
ergoemacs-theme-component--ignore-globally-defined-key 12 0.0 0.0
ergoemacs-pretty-key-description--modifier 35 0.0 0.0
ergoemacs-read-key-default 1 0 0.0
ergoemacs-to-sequence 1 0.0 0.0
ergoemacs-translation-install 8 0.0 0.0
ergoemacs-real-this-single-command-keys 16 0.0 0.0
ergoemacs-this-command-keys-vector 111 0.0 0.0
ergoemacs-pretty-key-description--key 26 0.0 0.0
ergoemacs-this-command-keys 1 0.0 0.0
ergoemacs-shuffle-keys 30 0.0 0.0
ergoemacs-global-changed-p 2 0.0 0.0
ergoemacs-map-parent 818 0.0 0.0
ergoemacs-key-description 268 0.0 0.0
ergoemacs-real-key-binding 45 0.0 0.0
ergoemacs-display-char-p 47 0.0 0.0
ergoemacs-read-key-call 1 0 0.0
ergoemacs-local-map 4 0.0 0.0
ergoemacs-setup-local-prefixes 3 0.0 0.0
ergoemacs-read-event-change 2 0.0 0.0
ergoemacs-curr-layout-symbol 45 0.0 0.0
ergoemacs-global-set-key-after 12 0.0 0.0
ergoemacs-real-key-description 268 0.0 0.0
ergoemacs-real-this-command-keys 1 0.0 0.0
ergoemacs-extract-prefixes 1 0.0 0.0
ergoemacs-emulations 94 0.0 0.0
ergoemacs-real-this-command-keys-vector 111 0.0 0.0
ergoemacs-event-modifier-hash 45 0.0 0.0
ergoemacs-unicode-char 47 0.0 0.0
ergoemacs-key-fn-lookup 2 0.0 0.0
ergoemacs-this-single-command-keys 16 0.0 0.0
ergoemacs-delete-cached-movement 979 0.0 0.0
ergoemacs-read-key-lookup 2 0.0 0.0
ergoemacs-pre-command-hook 15 0.0 0.0
ergoemacs-translate-shifted 30 0.0 0.0
For me, the issue is ergoemacs-install-shortcuts-map
If I install the advice, I get:
ergoemacs-read-key 2 7.917 3.9585
ergoemacs-read-key-default 1 7.902 7.902
ergoemacs-shortcut-remap 4 7.747 1.93675
ergoemacs-read-key-lookup 3 7.715 2.5716666666
ergoemacs-read-key-call 4 7.683 1.92075
ergoemacs-map-get 32854 3.7240000000 0.0001133499
ergoemacs-define-key 7902 3.3030000000 0.0004179954
ergoemacs-define-key--is-global-map 7902 3.0070000000 0.0003805365
ergoemacs-map-p 17035 2.4030000000 0.0001410625
ergoemacs-submap-p 7902 1.4929999999 0.0001889395
ergoemacs-map-plist 17047 0.7670000000 4.49...e-005
ergoemacs-map-composed 17035 0.7630000000 4.47...e-005
ergoemacs-post-command-hook 11 0.67 0.0609090909
ergoemacs-install-shortcuts-map-name 1 0.67 0.67
ergoemacs-install-shortcuts-map 1 0.67 0.67
ergoemacs-install-shortcuts-up 22 0.67 0.0304545454
ergoemacs-map-composed-list 17035 0.6390000000 3.75...e-005
ergoemacs-without-emulation--internal 23 0.2050000000 0.0089130434
ergoemacs-original-keymap 1215 0.1730000000 0.0001423868
ergoemacs-key-binding 15 0.1410000000 0.0094
ergoemacs-read-event 3 0.14 0.0466666666
ergoemacs-map-keymap-value 32866 0.124 3.77...e-006
ergoemacs-map-composed-p 17035 0.109 6.39...e-006
ergoemacs-shortcut-remap-list 4 0.064 0.016
ergoemacs-beginning-or-end-of-buffer 1 0.032 0.032
ergoemacs-real-define-key 7902 0.031 3.92...e-006
ergoemacs-pretty-key-description--modifier 47 0.031 0.0006595744
ergoemacs-translate 3 0.031 0.0103333333
ergoemacs-pretty-key-description 41 0.031 0.0007560975
ergoemacs-pretty-key 41 0.031 0.0007560975
ergoemacs-original-keymap--intern 962 0.03 3.11...e-005
ergoemacs-move-cursor-next-pane 1 0.016 0.016
ergoemacs-display-char-p 54 0.016 0.0002962962
ergoemacs-unicode-char 54 0.016 0.0002962962
ergoemacs-shortcut 1 0.015 0.015
ergoemacs-shortcut---internal 1 0.015 0.015
ergoemacs-shift-translate-install 12 0.0 0.0
ergoemacs-read-key--echo-command 2 0.0 0.0
ergoemacs-event-modifiers 41 0.0 0.0
ergoemacs--pretty-key-concat 6 0.0 0.0
ergoemacs-shortcut-function-binding 4 0.0 0.0
ergoemacs-read-key-add-translation 30 0.0 0.0
ergoemacs-event-basic-type 41 0.0 0.0
ergoemacs-pretty-key-description--ctl 13 0.0 0.0
ergoemacs-restore-post-command-hook 11 0.0 0.0
ergoemacs-smart-function-p 23 0.0 0.0
ergoemacs-setcdr 1157 0.0 0.0
ergoemacs-map-put 12 0.0 0.0
ergoemacs-theme-component--ignore-globally-defined-key 12 0.0 0.0
ergoemacs-to-sequence 2 0.0 0.0
ergoemacs-translation-install 12 0.0 0.0
ergoemacs-real-this-single-command-keys 13 0.0 0.0
ergoemacs-this-command-keys-vector 162 0.0 0.0
ergoemacs-pretty-key-description--key 41 0.0 0.0
ergoemacs-this-command-keys 1 0.0 0.0
ergoemacs-shuffle-keys 22 0.0 0.0
ergoemacs-global-changed-p 3 0.0 0.0
ergoemacs-map-parent 1025 0.0 0.0
ergoemacs-key-description 122 0.0 0.0
ergoemacs-copy-list 93 0.0 0.0
ergoemacs-real-key-binding 55 0.0 0.0
ergoemacs-local-map 6 0.0 0.0
ergoemacs-setup-local-prefixes 3 0.0 0.0
ergoemacs-read-event-change 3 0.0 0.0
ergoemacs-curr-layout-symbol 82 0.0 0.0
ergoemacs-global-set-key-after 12 0.0 0.0
ergoemacs-real-key-description 122 0.0 0.0
ergoemacs-real-this-command-keys 1 0.0 0.0
ergoemacs-extract-prefixes 1 0.0 0.0
ergoemacs-emulations 88 0.0 0.0
ergoemacs-real-this-command-keys-vector 162 0.0 0.0
ergoemacs-event-modifier-hash 82 0.0 0.0
ergoemacs-key-fn-lookup 3 0.0 0.0
ergoemacs-this-single-command-keys 13 0.0 0.0
ergoemacs-delete-cached-movement 27 0.0 0.0
ergoemacs-pre-command-hook 11 0.0 0.0
ergoemacs-translate-shifted 48 0.0 0.0
I don't know what to optimize based on the above, other than changing how ergoemacs does key translations (which I am currently working on).
The stable release is likely to be faster. You could go with melpa-stable or elpa which both feature the stable release.
My results are (with the advice installed, provided I applied it correctly):
ergoemacs-install-shortcuts-up 10 1.1537069999 0.1153706999
ergoemacs-post-command-hook 5 1.1535819999 0.2307164
ergoemacs-install-shortcuts-map 1 1.15285 1.15285
ergoemacs-install-shortcuts-map-name 1 1.152609 1.152609
ergoemacs-without-emulation--internal 20 0.233374 0.0116687
ergoemacs-key-binding 16 0.2217420000 0.0138588750
ergoemacs-original-keymap 1826 0.2197080000 0.0001203220
ergoemacs-translate 1 0.013752 0.013752
ergoemacs-pretty-key 15 0.0123000000 0.0008200000
ergoemacs-shortcut-remap-list 1 0.012093 0.012093
ergoemacs-unicode-char 270 0.0077489999 2.869...e-05
ergoemacs-emulations 310 0.0065669999 2.118...e-05
ergoemacs-display-char-p 270 0.0060019999 2.222...e-05
ergoemacs-translation-install 4 0.003883 0.00097075
ergoemacs-global-set-key-after 12 0.0036739999 0.0003061666
ergoemacs-theme-component--ignore-globally-defined-key 12 0.003131 0.0002609166
ergoemacs-pre-command-hook 5 0.001605 0.000321
ergoemacs-real-key-binding 33 0.0013789999 4.178...e-05
ergoemacs-rm-key 120 0.001304 1.086...e-05
ergoemacs-setcdr 1877 0.0009700000 5.167...e-07
ergoemacs-read-event 1 0.000962 0.000962
ergoemacs-shift-translate-install 4 0.0007 0.000175
ergoemacs-translate-shifted 16 0.000288 1.8e-05
ergoemacs-key-description 35 0.0002639999 7.542...e-06
ergoemacs-key-fn-lookup 1 0.000216 0.000216
ergoemacs-extract-prefixes 1 0.000197 0.000197
ergoemacs-shuffle-keys 22 0.0001540000 7.000...e-06
ergoemacs-copy-list 81 0.0001499999 1.851...e-06
ergoemacs-global-changed-p 12 0.000134 1.116...e-05
ergoemacs-real-substitute-command-keys 1 9.7e-05 9.7e-05
ergoemacs-real-key-description 35 8.699...e-05 2.485...e-06
ergoemacs-this-single-command-keys 7 6.8e-05 9.714...e-06
ergoemacs-read-key-add-translation 10 6.6e-05 6.6e-06
ergoemacs-smart-function-p 10 2.000...e-05 2.000...e-06
ergoemacs-local-map 2 1.6e-05 8e-06
ergoemacs-delete-cached-movement 24 1.400...e-05 5.833...e-07
ergoemacs-real-this-single-command-keys 7 1.2e-05 1.714...e-06
ergoemacs-this-command-keys 1 1e-05 1e-05
ergoemacs-restore-post-command-hook 5 8e-06 1.6e-06
ergoemacs--pretty-key-concat 2 7.000...e-06 3.500...e-06
ergoemacs-read-event-change 1 5e-06 5e-06
ergoemacs-setup-local-prefixes 3 4e-06 1.333...e-06
ergoemacs-shortcut-function-binding 1 4e-06 4e-06
ergoemacs-read-key--echo-command 1 3e-06 3e-06
ergoemacs-to-sequence 1 3e-06 3e-06
ergoemacs-save-buffer-to-recently-closed 3 3e-06 1e-06
ergoemacs-real-this-command-keys 1 1e-06 1e-06
ergoemacs-read-key-call 1 0 0.0
ergoemacs-shortcut 1 0 0.0
ergoemacs-shortcut---internal 1 0 0.0
ergoemacs-read-key 1 0 0.0
ergoemacs-shortcut-remap 1 0 0.0
ergoemacs-read-key-lookup 1 0 0.0
The EE version I have is 20150211.829
This is my result after commenting out the defdvice and restarting Emacs:
ergoemacs-install-shortcuts-up 48 1.2459979999 0.0259582916
ergoemacs-post-command-hook 24 1.0906380000 0.0454432500
ergoemacs-install-shortcuts-map 1 1.0881 1.0881
ergoemacs-install-shortcuts-map-name 1 1.079778 1.079778
ergoemacs-without-emulation--internal 20 0.1901659999 0.0095082999
ergoemacs-key-binding 16 0.181747 0.0113591875
ergoemacs-emulations 386 0.1611479999 0.0004174818
ergoemacs-pre-command-hook 24 0.160761 0.0066983749
ergoemacs-original-keymap 1364 0.0262970000 1.927...e-05
ergoemacs-shortcut-remap-list 84 0.0147600000 0.0001757142
ergoemacs-translate 1 0.010225 0.010225
ergoemacs-pretty-key 15 0.009065 0.0006043333
ergoemacs-theme--install-shortcuts-list 1 0.008135 0.008135
ergoemacs-theme--install-shortcut-item 107 0.0077520000 7.244...e-05
ergoemacs-unicode-char 270 0.0056009999 2.074...e-05
ergoemacs-display-char-p 270 0.0042780000 1.584...e-05
ergoemacs-translation-install 4 0.0040479999 0.0010119999
ergoemacs-real-key-binding 52 0.0016950000 3.259...e-05
ergoemacs-key-description 197 0.001182 6e-06
ergoemacs-read-event 1 0.000693 0.000693
ergoemacs-shift-translate-install 4 0.00061 0.0001525
ergoemacs-setcdr 1295 0.0005850000 4.517...e-07
ergoemacs-real-key-description 197 0.0003719999 1.888...e-06
ergoemacs-shuffle-keys 48 0.0003230000 6.729...e-06
ergoemacs-this-single-command-keys 26 0.000211 8.115...e-06
ergoemacs-translate-shifted 16 0.000204 1.275e-05
ergoemacs-key-fn-lookup 1 0.000177 0.000177
ergoemacs-smart-function-p 196 0.0001649999 8.418...e-07
ergoemacs-extract-prefixes 1 0.000116 0.000116
ergoemacs-copy-list 81 0.0001129999 1.395...e-06
ergoemacs-shortcut-function-binding 84 0.0001099999 1.309...e-06
ergoemacs-delete-cached-movement 96 9.999...e-05 1.041...e-06
ergoemacs-real-substitute-command-keys 1 6.4e-05 6.4e-05
ergoemacs-read-key-add-translation 10 4.200...e-05 4.200...e-06
ergoemacs-restore-post-command-hook 24 4e-05 1.666...e-06
ergoemacs-real-this-single-command-keys 26 2.600...e-05 1.000...e-06
ergoemacs-local-map 2 1.4e-05 7e-06
ergoemacs-this-command-keys 1 1e-05 1e-05
ergoemacs--pretty-key-concat 2 4.999...e-06 2.499...e-06
ergoemacs-save-buffer-to-recently-closed 3 4e-06 1.333...e-06
ergoemacs-read-event-change 1 4e-06 4e-06
ergoemacs-to-sequence 1 3e-06 3e-06
ergoemacs-setup-local-prefixes 3 3e-06 1e-06
ergoemacs-read-key--echo-command 1 2e-06 2e-06
ergoemacs-real-this-command-keys 1 2e-06 2e-06
ergoemacs-read-key-call 1 0 0.0
ergoemacs-shortcut 1 0 0.0
ergoemacs-shortcut---internal 1 0 0.0
ergoemacs-read-key 1 0 0.0
ergoemacs-shortcut-remap 1 0 0.0
ergoemacs-read-key-lookup 1 0 0.0
I think this is fixed with the latest master.
https://mail.google.com/mail/u/0/?pli=1#inbox/14bbc0b406c3d5eb