Commit graph

69 commits

Author SHA1 Message Date
Sebastian Gniazdowski
760fc6cc75 *highlight: Let "emulate" be first instruction in *process function
parse.zsh -oo, after changes:

Running time: 1.7100990000
num  calls                time                       self            name
-----------------------------------------------------------------------------------
 1)  350        1702,69     4,86   99,99%   1229,47     3,51   72,20%  -hsmw-highlight-process
 2) 2800         337,70     0,12   19,83%    337,70     0,12   19,83%  -hsmw-highlight-string
 3) 2450          79,86     0,03    4,69%     79,86     0,03    4,69%  -hsmw-highlight-check-path
 4) 1400          38,44     0,03    2,26%     38,44     0,03    2,26%  -hsmw-highlight-main-type
 5)  350           9,76     0,03    0,57%      9,76     0,03    0,57%  -hsmw-highlight-stack-pop
 6)  350           7,48     0,02    0,44%      7,48     0,02    0,44%  -hsmw-highlight-path-separators
 7)    1           0,09     0,09    0,01%      0,09     0,09    0,01%  -hsmw-highlight-fill-option-variables
 8)    1           0,01     0,01    0,00%      0,01     0,01    0,00%  -hsmw-highlight-init
2016-10-25 18:13:39 +02:00
Sebastian Gniazdowski
13b3934f76 *highlight: Define also "buf" and "len" at one "local", etc. keyword
parse.zsh -oo, after changes:

Running time: 1.7114690000
num  calls                time                       self            name
-----------------------------------------------------------------------------------
 1)  350        1704,09     4,87  100,00%   1229,84     3,51   72,17%  -hsmw-highlight-process
 2) 2800         337,05     0,12   19,78%    337,05     0,12   19,78%  -hsmw-highlight-string
 3) 2450          81,20     0,03    4,76%     81,20     0,03    4,76%  -hsmw-highlight-check-path
 4) 1400          38,61     0,03    2,27%     38,61     0,03    2,27%  -hsmw-highlight-main-type
 5)  350           9,85     0,03    0,58%      9,85     0,03    0,58%  -hsmw-highlight-stack-pop
 6)  350           7,54     0,02    0,44%      7,54     0,02    0,44%  -hsmw-highlight-path-separators
 7)    1           0,07     0,07    0,00%      0,07     0,07    0,00%  -hsmw-highlight-fill-option-variables
 8)    1           0,01     0,01    0,00%      0,01     0,01    0,00%  -hsmw-highlight-init
2016-10-25 18:11:07 +02:00
Sebastian Gniazdowski
18cd426cb2 *highlight: Huge optimization: Don't redefine variables at each loop
parse.zsh -oo, after changes:

Running time: 1.7135350000
num  calls                time                       self            name
-----------------------------------------------------------------------------------
 1)  350        1706,03     4,87   99,99%   1230,37     3,52   72,11%  -hsmw-highlight-process
 2) 2800         338,39     0,12   19,83%    338,39     0,12   19,83%  -hsmw-highlight-string
 3) 2450          81,56     0,03    4,78%     81,56     0,03    4,78%  -hsmw-highlight-check-path
 4) 1400          38,43     0,03    2,25%     38,43     0,03    2,25%  -hsmw-highlight-main-type
 5)  350           9,85     0,03    0,58%      9,85     0,03    0,58%  -hsmw-highlight-stack-pop
 6)  350           7,44     0,02    0,44%      7,44     0,02    0,44%  -hsmw-highlight-path-separators
 7)    1           0,12     0,12    0,01%      0,12     0,12    0,01%  -hsmw-highlight-fill-option-variables
 8)    1           0,01     0,01    0,00%      0,01     0,01    0,00%  -hsmw-highlight-init
2016-10-25 18:06:45 +02:00
Sebastian Gniazdowski
1a5ac41130 *highlight: Optimization: don't do ! (( ... )), instead do (( ... ==0 ))
parse.zsh -oo, after changes:

Running time: 1.7914460000
num  calls                time                       self            name
-----------------------------------------------------------------------------------
 1)  350        1784,00     5,10  100,00%   1310,16     3,74   73,44%  -hsmw-highlight-process
 2) 2800         334,93     0,12   18,77%    334,93     0,12   18,77%  -hsmw-highlight-string
 3) 2450          81,08     0,03    4,54%     81,08     0,03    4,54%  -hsmw-highlight-check-path
 4) 1400          40,07     0,03    2,25%     40,07     0,03    2,25%  -hsmw-highlight-main-type
 5)  350           9,76     0,03    0,55%      9,76     0,03    0,55%  -hsmw-highlight-stack-pop
 6)  350           8,00     0,02    0,45%      8,00     0,02    0,45%  -hsmw-highlight-path-separators
 7)    1           0,07     0,07    0,00%      0,07     0,07    0,00%  -hsmw-highlight-fill-option-variables
 8)    1           0,01     0,01    0,00%      0,01     0,01    0,00%  -hsmw-highlight-init
2016-10-25 17:58:49 +02:00
Sebastian Gniazdowski
a558600315 *highlight: Better code handling history expansion
Times like 181x ms seem to occur more often.
2016-10-25 17:54:42 +02:00
Sebastian Gniazdowski
56aa7592b7 *highlight: Optimization: compress code handling braces, always block
parse.zsh -oo, after changes:

Running time: 1.7983390000
num  calls                time                       self            name
-----------------------------------------------------------------------------------
 1)  350        1790,84     5,12   99,99%   1316,27     3,76   73,50%  -hsmw-highlight-process
 2) 2800         335,29     0,12   18,72%    335,29     0,12   18,72%  -hsmw-highlight-string
 3) 2450          80,24     0,03    4,48%     80,24     0,03    4,48%  -hsmw-highlight-check-path
 4) 1400          41,35     0,03    2,31%     41,35     0,03    2,31%  -hsmw-highlight-main-type
 5)  350           9,70     0,03    0,54%      9,70     0,03    0,54%  -hsmw-highlight-stack-pop
 6)  350           7,99     0,02    0,45%      7,99     0,02    0,45%  -hsmw-highlight-path-separators
 7)    1           0,09     0,09    0,01%      0,09     0,09    0,01%  -hsmw-highlight-fill-option-variables
 8)    1           0,01     0,01    0,00%      0,01     0,01    0,00%  -hsmw-highlight-init
2016-10-25 17:48:51 +02:00
Sebastian Gniazdowski
8996f4c281 *highlight: Optimization: compress code handling MULTI_FUNC_DEF 2016-10-25 17:44:51 +02:00
Sebastian Gniazdowski
bd6e44859c *highlight: Make '|| false' a comment
parse.zsh -oo, after changes:

Running time: 1.8009350000
num  calls                time                       self            name
-----------------------------------------------------------------------------------
 1)  350        1793,49     5,12  100,00%   1319,59     3,77   73,57%  -hsmw-highlight-process
 2) 2800         336,92     0,12   18,78%    336,92     0,12   18,78%  -hsmw-highlight-string
 3) 2450          80,77     0,03    4,50%     80,77     0,03    4,50%  -hsmw-highlight-check-path
 4) 1400          38,54     0,03    2,15%     38,54     0,03    2,15%  -hsmw-highlight-main-type
 5)  350           9,74     0,03    0,54%      9,74     0,03    0,54%  -hsmw-highlight-stack-pop
 6)  350           7,93     0,02    0,44%      7,93     0,02    0,44%  -hsmw-highlight-path-separators
 7)    1           0,07     0,07    0,00%      0,07     0,07    0,00%  -hsmw-highlight-fill-option-variables
 8)    1           0,01     0,01    0,00%      0,01     0,01    0,00%  -hsmw-highlight-init
2016-10-25 17:36:57 +02:00
Sebastian Gniazdowski
b6704cca92 *highlight: Unneded "already_added=1" 2016-10-25 17:34:13 +02:00
Sebastian Gniazdowski
fddf05f911 *highlight: One more betterment of history expansion related code 2016-10-25 17:32:10 +02:00
Sebastian Gniazdowski
2b7656552a *highlight: Optimization: better code that handles history expansion
parse.zsh -oo, after changes:

Running time: 1.8102530000
num  calls                time                       self            name
-----------------------------------------------------------------------------------
 1)  350        1802,80     5,15  100,00%   1325,15     3,79   73,50%  -hsmw-highlight-process
 2) 2800         339,52     0,12   18,83%    339,52     0,12   18,83%  -hsmw-highlight-string
 3) 2450          81,13     0,03    4,50%     81,13     0,03    4,50%  -hsmw-highlight-check-path
 4) 1400          39,34     0,03    2,18%     39,34     0,03    2,18%  -hsmw-highlight-main-type
 5)  350           9,77     0,03    0,54%      9,77     0,03    0,54%  -hsmw-highlight-stack-pop
 6)  350           7,89     0,02    0,44%      7,89     0,02    0,44%  -hsmw-highlight-path-separators
 7)    1           0,08     0,08    0,00%      0,08     0,08    0,00%  -hsmw-highlight-fill-option-variables
 8)    1           0,01     0,01    0,00%      0,01     0,01    0,00%  -hsmw-highlight-init
2016-10-25 17:29:46 +02:00
Sebastian Gniazdowski
b8f92d4f89 *highlight: Compress code handling assignments 2016-10-25 17:24:05 +02:00
Sebastian Gniazdowski
0915653d7d *highlight: More correct array assignment detection 2016-10-25 17:19:18 +02:00
Sebastian Gniazdowski
1dcfc3c372 *highlight: Don't redefine already_added, don't set it for comments
parse.zsh -oo, after changes:

Running time: 1.8225100000
num  calls                time                       self            name
-----------------------------------------------------------------------------------
 1)  350        1814,83     5,19   99,99%   1336,69     3,82   73,65%  -hsmw-highlight-process
 2) 2800         338,83     0,12   18,67%    338,83     0,12   18,67%  -hsmw-highlight-string
 3) 2450          81,75     0,03    4,50%     81,75     0,03    4,50%  -hsmw-highlight-check-path
 4) 1400          39,80     0,03    2,19%     39,80     0,03    2,19%  -hsmw-highlight-main-type
 5)  350           9,74     0,03    0,54%      9,74     0,03    0,54%  -hsmw-highlight-stack-pop
 6)  350           8,02     0,02    0,44%      8,02     0,02    0,44%  -hsmw-highlight-path-separators
 7)    1           0,10     0,10    0,01%      0,10     0,10    0,01%  -hsmw-highlight-fill-option-variables
 8)    1           0,01     0,01    0,00%      0,01     0,01    0,00%  -hsmw-highlight-init
2016-10-25 16:58:55 +02:00
Sebastian Gniazdowski
d266b62e7e *highlight: Optimization: compress noglob-related code
parse.zsh -oo, after changes:

Running time: 1.8347470000
num  calls                time                       self            name
-----------------------------------------------------------------------------------
 1)  350        1827,26     5,22  100,00%   1354,88     3,87   74,14%  -hsmw-highlight-process
 2) 2800         335,45     0,12   18,36%    335,45     0,12   18,36%  -hsmw-highlight-string
 3) 2450          79,78     0,03    4,37%     79,78     0,03    4,37%  -hsmw-highlight-check-path
 4) 1400          39,59     0,03    2,17%     39,59     0,03    2,17%  -hsmw-highlight-main-type
 5)  350           9,61     0,03    0,53%      9,61     0,03    0,53%  -hsmw-highlight-stack-pop
 6)  350           7,94     0,02    0,43%      7,94     0,02    0,43%  -hsmw-highlight-path-separators
 7)    1           0,07     0,07    0,00%      0,07     0,07    0,00%  -hsmw-highlight-fill-option-variables
 8)    1           0,01     0,01    0,00%      0,01     0,01    0,00%  -hsmw-highlight-init
2016-10-25 16:49:52 +02:00
Sebastian Gniazdowski
246f6e8627 *highlight: Optimization: compress in_redirection-related code
parse.zsh -oo, after changes:

Running time: 1.8488320000
num  calls                time                       self            name
-----------------------------------------------------------------------------------
 1)  350        1841,21     5,26   99,99%   1364,52     3,90   74,10%  -hsmw-highlight-process
 2) 2800         336,95     0,12   18,30%    336,95     0,12   18,30%  -hsmw-highlight-string
 3) 2450          81,13     0,03    4,41%     81,13     0,03    4,41%  -hsmw-highlight-check-path
 4) 1400          40,74     0,03    2,21%     40,74     0,03    2,21%  -hsmw-highlight-main-type
 5)  350           9,80     0,03    0,53%      9,80     0,03    0,53%  -hsmw-highlight-stack-pop
 6)  350           8,08     0,02    0,44%      8,08     0,02    0,44%  -hsmw-highlight-path-separators
 7)    1           0,10     0,10    0,01%      0,10     0,10    0,01%  -hsmw-highlight-fill-option-variables
 8)    1           0,03     0,03    0,00%      0,03     0,03    0,00%  -hsmw-highlight-init
2016-10-25 16:47:02 +02:00
Sebastian Gniazdowski
d34d812c71 *highlight: Optimization: reuse "local", etc. keywords
./parse -oo, after changes:

Running time: 1.8522630000
num  calls                time                       self            name
-----------------------------------------------------------------------------------
 1)  350        1844,79     5,27  100,00%   1368,04     3,91   74,15%  -hsmw-highlight-process
 2) 2800         338,28     0,12   18,34%    338,28     0,12   18,34%  -hsmw-highlight-string
 3) 2450          81,31     0,03    4,41%     81,31     0,03    4,41%  -hsmw-highlight-check-path
 4) 1400          39,39     0,03    2,14%     39,39     0,03    2,14%  -hsmw-highlight-main-type
 5)  350           9,81     0,03    0,53%      9,81     0,03    0,53%  -hsmw-highlight-stack-pop
 6)  350           7,95     0,02    0,43%      7,95     0,02    0,43%  -hsmw-highlight-path-separators
 7)    1           0,07     0,07    0,00%      0,07     0,07    0,00%  -hsmw-highlight-fill-option-variables
 8)    1           0,01     0,01    0,00%      0,01     0,01    0,00%  -hsmw-highlight-init
2016-10-25 16:37:38 +02:00
Sebastian Gniazdowski
46c907d524 *highlight: Harmful 'unset path_dirs_was_set', shorter near code 2016-10-25 16:21:33 +02:00
Sebastian Gniazdowski
2bef2b9343 *highlight: Optimization – save options outside main highlighting fun
Lower 18xx are being seen, like below:

Running time: 1.8632000000
num  calls                time                       self            name
-----------------------------------------------------------------------------------
 1)  350        1855,72     5,30  100,00%   1376,89     3,93   74,19%  -hsmw-highlight-process
 2) 2800         342,38     0,12   18,45%    342,38     0,12   18,45%  -hsmw-highlight-string
 3) 2450          80,16     0,03    4,32%     80,16     0,03    4,32%  -hsmw-highlight-check-path
 4) 1400          38,99     0,03    2,10%     38,99     0,03    2,10%  -hsmw-highlight-main-type
 5)  350           9,83     0,03    0,53%      9,83     0,03    0,53%  -hsmw-highlight-stack-pop
 6)  350           7,47     0,02    0,40%      7,47     0,02    0,40%  -hsmw-highlight-path-separators
 7)    1           0,07     0,07    0,00%      0,07     0,07    0,00%  -hsmw-highlight-fill-option-variables
 8)    1           0,01     0,01    0,00%      0,01     0,01    0,00%  -hsmw-highlight-init
2016-10-25 16:17:39 +02:00
Sebastian Gniazdowski
0400ad6d76 *highlight: Hash with token types must be global 2016-10-25 16:05:51 +02:00
Sebastian Gniazdowski
594c4074fc *highlight: Optimization: don't use 'true' and 'false' builtins
The result much more often reaches 18xx milliseconds. Below is almost
the bottom value, which is ~1874 ms.

./parse -oo, after changes:

Running time: 1.8982620000
num  calls                time                       self            name
-----------------------------------------------------------------------------------
 1)  350        1890,78     5,40  100,00%   1411,07     4,03   74,63%  -hsmw-highlight-process
 2) 2800         340,46     0,12   18,01%    340,46     0,12   18,01%  -hsmw-highlight-string
 3) 2450          80,94     0,03    4,28%     80,94     0,03    4,28%  -hsmw-highlight-check-path
 4) 1400          40,49     0,03    2,14%     40,49     0,03    2,14%  -hsmw-highlight-main-type
 5)  350           9,76     0,03    0,52%      9,76     0,03    0,52%  -hsmw-highlight-stack-pop
 6)  350           8,07     0,02    0,43%      8,07     0,02    0,43%  -hsmw-highlight-path-separators
 7)    1           0,01     0,01    0,00%      0,01     0,01    0,00%  -hsmw-highlight-init
2016-10-25 15:22:54 +02:00
Sebastian Gniazdowski
7eaa9f26aa *highlight: Optimization – a hash of token types instead of 3 arrays
./parse -oo, before changes:

Running time: 2.0874240000
num  calls                time                       self            name
-----------------------------------------------------------------------------------
 1)  350        2079,89     5,94  100,00%   1591,12     4,55   76,50%  -hsmw-highlight-process
 2) 2800         342,91     0,12   16,49%    342,91     0,12   16,49%  -hsmw-highlight-string
 3) 2450          85,09     0,03    4,09%     85,09     0,03    4,09%  -hsmw-highlight-check-path
 4) 1400          42,54     0,03    2,05%     42,54     0,03    2,05%  -hsmw-highlight-main-type
 5)  350           9,98     0,03    0,48%      9,98     0,03    0,48%  -hsmw-highlight-stack-pop
 6)  350           8,24     0,02    0,40%      8,24     0,02    0,40%  -hsmw-highlight-path-separators
 7)    1           0,01     0,01    0,00%      0,01     0,01    0,00%  -hsmw-highlight-init

./parse -oo, after changes:

Running time: 1.9223140000
num  calls                time                       self            name
-----------------------------------------------------------------------------------
 1)  350        1914,66     5,47  100,00%   1435,29     4,10   74,96%  -hsmw-highlight-process
 2) 2800         340,12     0,12   17,76%    340,12     0,12   17,76%  -hsmw-highlight-string
 3) 2450          81,34     0,03    4,25%     81,34     0,03    4,25%  -hsmw-highlight-check-path
 4) 1400          39,98     0,03    2,09%     39,98     0,03    2,09%  -hsmw-highlight-main-type
 5)  350           9,87     0,03    0,52%      9,87     0,03    0,52%  -hsmw-highlight-stack-pop
 6)  350           8,05     0,02    0,42%      8,05     0,02    0,42%  -hsmw-highlight-path-separators
 7)    1           0,01     0,01    0,00%      0,01     0,01    0,00%  -hsmw-highlight-init
2016-10-25 15:10:31 +02:00
Sebastian Gniazdowski
0ab5b98062 *highlight: Optimization: unneeded block {} in if argument 2016-10-25 14:03:56 +02:00
Sebastian Gniazdowski
c87d9acd8f *highlight: Set of optimizations, also logic changes (commandseparator)
parse -oo, before:

Running time: 2.2680830000
num  calls                time                       self            name
-----------------------------------------------------------------------------------
 1)  350        2260,37     6,46  100,00%   1679,94     4,80   74,32%  -hsmw-highlight-process
 2) 2800         358,98     0,13   15,88%    358,98     0,13   15,88%  -hsmw-highlight-string
 3) 2450          87,01     0,04    3,85%     87,01     0,04    3,85%  -hsmw-highlight-check-path
 4) 1400          72,33     0,05    3,20%     72,33     0,05    3,20%  (anon)
 5) 1400          42,94     0,03    1,90%     42,94     0,03    1,90%  -hsmw-highlight-main-type
 6)  350          10,27     0,03    0,45%     10,27     0,03    0,45%  -hsmw-highlight-stack-pop
 7)  350           8,91     0,03    0,39%      8,91     0,03    0,39%  -hsmw-highlight-path-separators
 8)    1           0,02     0,02    0,00%      0,02     0,02    0,00%  -hsmw-highlight-init

parse -oo, after:

Running time: 2.0801330000
num  calls                time                       self            name
-----------------------------------------------------------------------------------
 1)  350        2072,44     5,92  100,00%   1586,54     4,53   76,55%  -hsmw-highlight-process
 2) 2800         341,85     0,12   16,49%    341,85     0,12   16,49%  -hsmw-highlight-string
 3) 2450          83,71     0,03    4,04%     83,71     0,03    4,04%  -hsmw-highlight-check-path
 4) 1400          42,58     0,03    2,05%     42,58     0,03    2,05%  -hsmw-highlight-main-type
 5)  350           9,69     0,03    0,47%      9,69     0,03    0,47%  -hsmw-highlight-stack-pop
 6)  350           8,07     0,02    0,39%      8,07     0,02    0,39%  -hsmw-highlight-path-separators
 7)    1           0,01     0,01    0,00%      0,01     0,01    0,00%  -hsmw-highlight-init
2016-10-25 14:00:08 +02:00
Sebastian Gniazdowski
c8496ca35d *highlight: Utilize arithmetic context 2016-10-17 14:12:14 +02:00
Sebastian Gniazdowski
1c6493100b *highlight: Optimization: expand path once 2016-10-17 13:07:29 +02:00
Sebastian Gniazdowski
d37fe9d4b6 *highlight: pure_buf_len no longer used and needed 2016-10-17 12:36:15 +02:00
Sebastian Gniazdowski
cf97c91dba *highlight: Use mend, don't manually check length of match (for $offset) 2016-10-17 07:36:14 +02:00
Sebastian Gniazdowski
fb4c4b7b81 *highlight: Optimization: set noksharrays at main entry point (*process) 2016-10-17 07:28:26 +02:00
Sebastian Gniazdowski
331df45fa7 *highlight: Better indexing detection in variables – use [^\]] 2016-10-17 06:54:11 +02:00
Sebastian Gniazdowski
ab439966ee *highlight: Optimization: remove *-check-assign call 2016-10-17 06:48:44 +02:00
Sebastian Gniazdowski
d2fbc7eb37 *highlight: Variable names not from unicode characters (2) 2016-10-17 06:33:42 +02:00
Sebastian Gniazdowski
08bdd36ae9 *highlight: Variable names not from unicode characters 2016-10-17 06:29:52 +02:00
Sebastian Gniazdowski
af73d936de *highlight: Optimization: remove *-expand-path calls
Results are too random to store, main execution time varies much,
but for sure there is no slowdown.
2016-10-16 16:37:38 +02:00
Sebastian Gniazdowski
3b543a4ecc *highlight: Coloring history doesn't need checking a path as prefix
parse.zsh -oo, before change:

Running time: 2.3793230000
num  calls                time                       self            name
-----------------------------------------------------------------------------------
 1)  350        2371,62     6,78  100,00%   1636,82     4,68   69,02%  -hsmw-highlight-process
 2) 2800         365,84     0,13   15,43%    365,84     0,13   15,43%  -hsmw-highlight-string
 3) 2450         195,43     0,08    8,24%    135,32     0,06    5,71%  -hsmw-highlight-check-path
 4) 3850          92,77     0,02    3,91%     92,77     0,02    3,91%  -hsmw-highlight-expand-path
 5) 1400          67,54     0,05    2,85%     67,54     0,05    2,85%  (anon)
 6) 1400          43,99     0,03    1,85%     43,99     0,03    1,85%  -hsmw-highlight-main-type
 7)  700          11,19     0,02    0,47%     11,19     0,02    0,47%  -hsmw-highlight-check-assign
 8)  350           9,66     0,03    0,41%      9,66     0,03    0,41%  -hsmw-highlight-stack-pop

parse.zsh -oo, after change:

Running time: 2.3625050000
num  calls                time                       self            name
-----------------------------------------------------------------------------------
 1)  350        2354,85     6,73  100,00%   1649,87     4,71   70,06%  -hsmw-highlight-process
 2) 2800         366,95     0,13   15,58%    366,95     0,13   15,58%  -hsmw-highlight-string
 3) 2450         163,48     0,07    6,94%    103,18     0,04    4,38%  -hsmw-highlight-check-path
 4) 3850          92,94     0,02    3,95%     92,94     0,02    3,95%  -hsmw-highlight-expand-path
 5) 1400          68,50     0,05    2,91%     68,50     0,05    2,91%  (anon)
 6) 1400          43,79     0,03    1,86%     43,79     0,03    1,86%  -hsmw-highlight-main-type
 7)  700          11,32     0,02    0,48%     11,32     0,02    0,48%  -hsmw-highlight-check-assign
 8)  350           9,65     0,03    0,41%      9,65     0,03    0,41%  -hsmw-highlight-stack-pop

Main execution time is quite unstable, but *-check-path() running time is ok. 30ms gain.
2016-10-16 15:20:40 +02:00
Sebastian Gniazdowski
572872a97c *highlight: Optimization: remove *-is-redirection call
parse.zsh -oo, before changes:

Running time: 2.5141480000
num  calls                time                       self            name
-----------------------------------------------------------------------------------
 1)  350        2506,66     7,16  100,00%   1713,68     4,90   68,36%  -hsmw-highlight-process
 2) 2800         374,42     0,13   14,94%    374,42     0,13   14,94%  -hsmw-highlight-string
 3) 2450         194,12     0,08    7,74%    133,36     0,05    5,32%  -hsmw-highlight-check-path
 4) 3850          94,01     0,02    3,75%     94,01     0,02    3,75%  -hsmw-highlight-expand-path
 5) 1400          66,67     0,05    2,66%     66,67     0,05    2,66%  (anon)
 6) 8400          54,50     0,01    2,17%     54,50     0,01    2,17%  -hsmw-highlight-is-redirection
 7) 1400          40,93     0,03    1,63%     40,93     0,03    1,63%  -hsmw-highlight-main-type
 8)  700          10,95     0,02    0,44%     10,95     0,02    0,44%  -hsmw-highlight-check-assign

parse.zsh -oo, after changes:

Running time: 2.3994030000
num  calls                time                       self            name
-----------------------------------------------------------------------------------
 1)  350        2391,73     6,83  100,00%   1650,94     4,72   69,03%  -hsmw-highlight-process
 2) 2800         371,19     0,13   15,52%    371,19     0,13   15,52%  -hsmw-highlight-string
 3) 2450         195,75     0,08    8,18%    135,31     0,06    5,66%  -hsmw-highlight-check-path
 4) 3850          93,17     0,02    3,90%     93,17     0,02    3,90%  -hsmw-highlight-expand-path
 5) 1400          67,69     0,05    2,83%     67,69     0,05    2,83%  (anon)
 6) 1400          43,96     0,03    1,84%     43,96     0,03    1,84%  -hsmw-highlight-main-type
 7)  700          11,25     0,02    0,47%     11,25     0,02    0,47%  -hsmw-highlight-check-assign
 8)  350           9,78     0,03    0,41%      9,78     0,03    0,41%  -hsmw-highlight-stack-pop
2016-10-16 15:10:14 +02:00
Sebastian Gniazdowski
0292e6928d *highlight: Style for "\$" merged with "$var" 2016-10-16 14:54:36 +02:00
Sebastian Gniazdowski
7bbc05b0b0 *highlight: Small *-string optimization, use mend and mbegin
A few miliseconds gain.
2016-10-16 13:41:14 +02:00
Sebastian Gniazdowski
08419957ee *highlight: Fully optimal *-string, no / substitution and (S) flag
parse.zsh -oo, before changes:

Running time: 2.9235860000
num  calls                time                       self            name
-----------------------------------------------------------------------------------
 1)  350        2916,15     8,33  100,00%   1727,84     4,94   59,25%  -hsmw-highlight-process
 2) 2800         764,12     0,27   26,20%    764,12     0,27   26,20%  -hsmw-highlight-string
 3) 2450         196,31     0,08    6,73%    134,73     0,05    4,62%  -hsmw-highlight-check-path
 4) 3850          95,16     0,02    3,26%     95,16     0,02    3,26%  -hsmw-highlight-expand-path
 5) 1400          67,34     0,05    2,31%     67,34     0,05    2,31%  (anon)
 6) 8400          56,32     0,01    1,93%     56,32     0,01    1,93%  -hsmw-highlight-is-redirection
 7) 1400          41,19     0,03    1,41%     41,19     0,03    1,41%  -hsmw-highlight-main-type
 8)  700          11,24     0,02    0,39%     11,24     0,02    0,39%  -hsmw-highlight-check-assign

parse.zsh -oo, after changes:

Running time: 2.5433330000
num  calls                time                       self            name
-----------------------------------------------------------------------------------
 1)  350        2535,74     7,24  100,00%   1730,74     4,94   68,25%  -hsmw-highlight-process
 2) 2800         385,15     0,14   15,19%    385,15     0,14   15,19%  -hsmw-highlight-string
 3) 2450         193,50     0,08    7,63%    132,71     0,05    5,23%  -hsmw-highlight-check-path
 4) 3850          94,23     0,02    3,72%     94,23     0,02    3,72%  -hsmw-highlight-expand-path
 5) 1400          67,68     0,05    2,67%     67,68     0,05    2,67%  (anon)
 6) 8400          55,01     0,01    2,17%     55,01     0,01    2,17%  -hsmw-highlight-is-redirection
 7) 1400          41,00     0,03    1,62%     41,00     0,03    1,62%  -hsmw-highlight-main-type
 8)  700          11,01     0,02    0,43%     11,01     0,02    0,43%  -hsmw-highlight-check-assign

764.12 - 385.15 = 378.97
2916.15 - 2535.74 = 380,41
380 / 2916.0 = 0.13
2016-10-16 13:26:45 +02:00
Sebastian Gniazdowski
26a66c0bcc *highlight: Working but not fully optimal *-string ((S) problem?) 2016-10-16 12:38:37 +02:00
Sebastian Gniazdowski
2fff438589 parse.zsh: Unneeded ';' at end of line 2016-10-16 08:39:33 +02:00
Sebastian Gniazdowski
35014130c1 *highlight: Don't store region_highlight entry if it's "none"
parse ./to-parse.zsh before changes:

Running time: 0.8560130000
num  calls                time                       self            name
-----------------------------------------------------------------------------------
 1)    1         855,65   855,65  100,00%    776,29   776,29   90,72%  -hsmw-highlight-process
 2)  356          43,15     0,12    5,04%     33,62     0,09    3,93%  -hsmw-highlight-check-path
 3)  144          15,50     0,11    1,81%     15,50     0,11    1,81%  -hsmw-highlight-main-type
 4)  500          13,47     0,03    1,57%     13,47     0,03    1,57%  -hsmw-highlight-expand-path
 5)  144          10,06     0,07    1,18%     10,06     0,07    1,18%  (anon)
 6)  564           4,86     0,01    0,57%      4,86     0,01    0,57%  -hsmw-highlight-is-redirection
 7)   83           1,53     0,02    0,18%      1,53     0,02    0,18%  -hsmw-highlight-check-assign
 8)    2           0,32     0,16    0,04%      0,32     0,16    0,04%  -hsmw-highlight-string

parse ./to-parse.zsh after changes:

Running time: 0.8107540000
num  calls                time                       self            name
-----------------------------------------------------------------------------------
 1)    1         810,39   810,39  100,00%    732,47   732,47   90,38%  -hsmw-highlight-process
 2)  356          42,07     0,12    5,19%     32,70     0,09    4,03%  -hsmw-highlight-check-path
 3)  144          15,67     0,11    1,93%     15,67     0,11    1,93%  -hsmw-highlight-main-type
 4)  500          13,08     0,03    1,61%     13,08     0,03    1,61%  -hsmw-highlight-expand-path
 5)  144          10,33     0,07    1,28%     10,33     0,07    1,28%  (anon)
 6)  564           4,35     0,01    0,54%      4,35     0,01    0,54%  -hsmw-highlight-is-redirection
 7)   83           1,52     0,02    0,19%      1,52     0,02    0,19%  -hsmw-highlight-check-assign
 8)    2           0,25     0,13    0,03%      0,25     0,13    0,03%  -hsmw-highlight-string
2016-10-15 19:32:19 +02:00
Sebastian Gniazdowski
9bd017728c *highlight: Change the state machine from using strings to using bits 2016-10-15 19:12:40 +02:00
Sebastian Gniazdowski
fd31ffc605 *highlight: Small change – more explicit array expansion, with [@] 2016-10-15 15:48:17 +02:00
Sebastian Gniazdowski
c04b09873a *highlight: Command, builtin, alias, function – order of type checking 2016-10-15 15:42:27 +02:00
Sebastian Gniazdowski
22d839f3bc *highlight: Simpler code related to offset calculation 2016-10-15 15:22:04 +02:00
Sebastian Gniazdowski
60710d31b5 *highlighting: Optimization – remove *add-highlight function
parse.zsh -o, before changes:

Running time: 0.9516510000
num  calls                time                       self            name
-----------------------------------------------------------------------------------
 1)  350         945,28     2,70  100,00%    632,08     1,81   66,87%  -hsmw-highlight-process
 2) 3150          62,92     0,02    6,66%     62,92     0,02    6,66%  -hsmw-add-highlight
 3)  950          80,01     0,08    8,46%     58,97     0,06    6,24%  -hsmw-highlight-check-path
 4)  300          58,21     0,19    6,16%     57,09     0,19    6,04%  -hsmw-highlight-string
 5) 1950          43,18     0,02    4,57%     43,18     0,02    4,57%  -hsmw-highlight-expand-path
 6) 1000          36,50     0,04    3,86%     36,50     0,04    3,86%  -hsmw-highlight-main-type
 7) 1000          28,77     0,03    3,04%     28,77     0,03    3,04%  (anon)
 8) 3100          19,17     0,01    2,03%     19,17     0,01    2,03%  -hsmw-highlight-is-redirection

parse.zsh -o, after changes:

Running time: 0.8807530000
num  calls                time                       self            name
-----------------------------------------------------------------------------------
 1)  350         874,42     2,50  100,00%    630,15     1,80   72,06%  -hsmw-highlight-process
 2)  950          78,16     0,08    8,94%     57,66     0,06    6,59%  -hsmw-highlight-check-path
 3)  300          57,42     0,19    6,57%     57,42     0,19    6,57%  -hsmw-highlight-string
 4) 1950          41,83     0,02    4,78%     41,83     0,02    4,78%  -hsmw-highlight-expand-path
 5) 1000          33,57     0,03    3,84%     33,57     0,03    3,84%  -hsmw-highlight-main-type
 6) 1000          28,36     0,03    3,24%     28,36     0,03    3,24%  (anon)
 7) 3100          18,92     0,01    2,16%     18,92     0,01    2,16%  -hsmw-highlight-is-redirection
 8)  200           3,20     0,02    0,37%      3,20     0,02    0,37%  -hsmw-highlight-check-assign

( 1084 - 847 ) / 1084.0 = 0.2186
2016-10-15 14:40:02 +02:00
Sebastian Gniazdowski
8acdd8bd5b *highlight: Use $REPLY, don't create additional variables 2016-10-15 13:31:04 +02:00
Sebastian Gniazdowski
05cb4c6073 *highlight: 7ms opt: (#m) doesn't need match, mend, mbegin 2016-10-15 13:01:16 +02:00
Sebastian Gniazdowski
a051f6a6cb *highlight: Fix lack of (#m) flag (for $MATCH), result of regex->pattern 2016-10-15 12:53:02 +02:00