mirror of
				https://github.com/zsh-users/zsh-syntax-highlighting.git
				synced 2025-10-30 15:56:28 +08:00 
			
		
		
		
	'main': Optimize a hot path.
Before this patch: num calls time self name ----------------------------------------------------------------------------------- 1) 3 33410.81 11136.94 98.51% 19277.07 6425.69 56.84% _zsh_highlight_main_highlighter_highlight_list 19) 1 33916.21 33916.21 100.00% 5.27 5.27 0.02% _zsh_highlight With this patch: num calls time self name ----------------------------------------------------------------------------------- 1) 3 27167.49 9055.83 98.17% 18754.77 6251.59 67.77% _zsh_highlight_main_highlighter_highlight_list 19) 1 27674.40 27674.40 100.00% 5.39 5.39 0.02% _zsh_highlight ---- And if test-zprof.zsh is changed to not set interactivecomments: num calls time self name ----------------------------------------------------------------------------------- 1) 13360 36029.12 2.70 83.56% 30304.23 2.27 70.28% _zsh_highlight_main_highlighter_highlight_argument 21) 1 43117.76 43117.76 100.00% 4.52 4.52 0.01% _zsh_highlight num calls time self name ----------------------------------------------------------------------------------- 1) 13360 14782.89 1.11 68.12% 9163.42 0.69 42.23% _zsh_highlight_main_highlighter_highlight_argument 21) 1 21699.93 21699.93 100.00% 4.17 4.17 0.02% _zsh_highlight
This commit is contained in:
		
							parent
							
								
									06ec3a0339
								
							
						
					
					
						commit
						3251ebf3dd
					
				@ -1311,7 +1311,12 @@ _zsh_highlight_main_highlighter_highlight_argument()
 | 
				
			|||||||
      fi
 | 
					      fi
 | 
				
			||||||
  esac
 | 
					  esac
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # This loop is a hot path.  Keep it fast!
 | 
				
			||||||
  for (( ; i <= $#arg ; i += 1 )); do
 | 
					  for (( ; i <= $#arg ; i += 1 )); do
 | 
				
			||||||
 | 
					    if [[ $arg[$i] != [\\\'\"\`\$\<\>\*\?] ]]; then
 | 
				
			||||||
 | 
					      continue
 | 
				
			||||||
 | 
					    fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    case "$arg[$i]" in
 | 
					    case "$arg[$i]" in
 | 
				
			||||||
      "\\") (( i += 1 )); continue;;
 | 
					      "\\") (( i += 1 )); continue;;
 | 
				
			||||||
      "'")
 | 
					      "'")
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user