Ctags: рд╕рдорд╛рдирд╛рдВрддрд░ ctags

рдХреЛ рдирд┐рд░реНрдорд┐рдд 13 рдЬрдире░ 2016  ┬╖  19рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: universal-ctags/ctags

рдЬрд╣рд╛рдБ рддрдХ рдореИрдВ рдЗрд╕реЗ рд╕рдордЭрддрд╛ рд╣реВрдБ, ctags рд╕рд┐рдВрдЧрд▓ рдереНрд░реЗрдбреЗрдб рд╣реИред рдХреНрдпрд╛ рд╕рдорд╛рдирд╛рдВрддрд░реАрдХрд░рдг рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреА рдХреЛрдИ рдпреЛрдЬрдирд╛ рд╣реИ? рд╡рд┐рд╢рд╛рд▓ рдХреЛрдбрдмреЗрд╕ рдкрд░ рдЪреАрдЬреЛрдВ рдХреЛ рдЧрддрд┐ рджреЗ рд╕рдХрддрд╛ рд╣реИред

рд╕рднреА 19 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдирдорд╕реНрддреЗ,

рдЬрдмрдХрд┐ рд╕рдорд╛рдирд╛рдВрддрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рджрд┐рд▓рдЪрд╕реНрдк рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЕрд▓рдЧ-рдЕрд▓рдЧ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдкрд░ рдЕрд▓рдЧ-рдЕрд▓рдЧ ctags рд▓реЙрдиреНрдЪ рдХрд░рдХреЗ рдФрд░ рдлрд┐рд░ рдЬреЗрдирд░реЗрдЯ рдХреА рдЧрдИ рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рдорд░реНрдЬ рдХрд░рдХреЗ рдПрдХ рдмрдбрд╝реЗ рдХреЛрдбрдмреЗрд╕ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛ рд╕рдорд╛рдирд╛рдВрддрд░ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ (рдЬреЛ рдХрд┐ рд╕рднреА рдлрд╛рдЗрд▓реЛрдВ рд╕реЗ рд╢реБрд░реВ рд╣реЛрдиреЗ рд╡рд╛рд▓реА рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рдЫреЛрдбрд╝рдХрд░ рдмрд╕ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдПрдХ рдФрд░ рдмрд╛рдж рдореЗрдВ рд╕рднреА рдлрд╛рдЗрд▓реЛрдВ рдкрд░ рд╕реЙрд░реНрдЯ - рдорд░реНрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ)ред

рд╣рд╛рд▓рд╛рдБрдХрд┐, рдореБрдЭреЗ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рд╕рдорд╛рдирд╛рдВрддрд░ ctags рд╕реЗ рдХреЛрдИ рд╕реНрдкреАрдбрдЕрдк рдорд┐рд▓реЗрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдЖрдзреБрдирд┐рдХ рдорд╢реАрдиреЗрдВ I/O рдмрд╛рдзреНрдп рд╣реЛрдВрдЧреАред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдкреНрд░реЛрдлрд╛рдЗрд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред

@mawww рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ https://github.com/ggreer/the_silver_searcher рдЕрд╕рд╣рдордд рд╣реЛрдЧрд╛: рдкрд▓рдХ:

рдПрдХрд╛рдзрд┐рдХ ctags рдЪрд▓рд╛рдирд╛ рдорд╛рдирдХ emacs рд╕реЗ рд╕рдордиреНрд╡рдп рдХрд░рдирд╛ рдЕрддреНрдпрдВрдд рдХрдард┐рди рд╣реЛрдЧрд╛ https://github.com/bbatsov/projectile/blob/master/projectile.el#L180 -L183

@mawww рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ https://github.com/ggreer/the_silver_searcher рдЕрд╕рд╣рдордд рд╣реЛрдЧрд╛: рдкрд▓рдХ:

рдЕрдЪреНрдЫреА рдмрд╛рддред

рдПрдХрд╛рдзрд┐рдХ ctags рдЪрд▓рд╛рдирд╛ рдорд╛рдирдХ emacs рд╕реЗ рд╕рдордиреНрд╡рдп рдХрд░рдирд╛ рдЕрддреНрдпрдВрдд рдХрдард┐рди рд╣реЛрдЧрд╛ https://github.com/bbatsov/projectile/blob/master/projectile.el#L180 -L183

рдПрдХ рд╢реЗрд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд░реИрдкрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рд▓рдВрдмрд╛ рд░рд╛рд╕реНрддрд╛ рддрдп рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рд╛рдБ рдЗрд╕реЗ рд╕реАрдзреЗ ctags рдореЗрдВ рдПрдХреАрдХреГрдд рдХрд░рдирд╛ рдЕрдзрд┐рдХ рдХреБрд╢рд▓ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

@fommil рдЗрд╕ рдорд╛рдорд▓реЗ рдкрд░ рдЙрд╕ рдЖрджрдореА рдХрд╛
рдФрд░ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдХреИрд╕реЗ рдЙрдирдХреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдкрд░реАрдХреНрд╖рдгреЛрдВ рд╕реЗ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдЙрдирдХреА рдорд╢реАрдиреЛрдВ рдкрд░ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдзрд╛рдЧреЗ рдЬрд▓реНрджреА рд╕реЗ рд╕рдорд╛рдирд╛рдВрддрд░ рдирд╣реАрдВ рд╣реЛрдиреЗ рд╕реЗ рднреА рдмрджрддрд░ рд╣реЛ рдЧрдПред рдпрд╣ рдкреНрдпрд╛рд░рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рд╣рд╛рд░реНрдбрд╡реЗрдпрд░, рдУрдПрд╕ рдФрд░ рдбреЗрдЯрд╛ рдкрд░ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдирд┐рд░реНрднрд░ рд╣реЛрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рд╢рд╛рдпрдж "рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ, рдореЗрд░реЗ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ рдмреЗрд╣рддрд░ рдкреНрд░рджрд░реНрд╢рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрди рдереНрд░реЗрдбреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛" рд╕реЗ рдЕрдзрд┐рдХ рд╕рдордЭрджрд╛рд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдПрдХ рдФрд░ рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдпрд╣ рдореБрдЭреЗ рдЗрддрдирд╛ рдЖрдХрд░реНрд╖рд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рди рдХреЗрд╡рд▓ рдореБрдЭреЗ рд╡рд┐рд╢реНрд╡рд╛рд╕ рд╣реИ рдХрд┐ рдпрд╣ рд╣рдореЗрдВ рдЗрддрдирд╛ рдХреБрдЫ рджреЗрдЧрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдмрдбрд╝реА рдорд╛рддреНрд░рд╛ рдореЗрдВ рддреНрд░реБрдЯрд┐-рдкреНрд░рд╡рдг рдХрд╛рд░реНрдп рд╣реЛрдЧрд╛ред рд╡рд░реНрддрдорд╛рди рдореЗрдВ Ctags рдХреЛрдб рдмреЗрд╕ рд╕рдорд╛рдирд╛рдВрддрд░ рдЯреИрдЧ рдкрд╛рд░реНрд╕рд┐рдВрдЧ рдереНрд░реЗрдбреНрд╕ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд┐рд▓реНрдХреБрд▓ рдЖрдХрд╛рд░ рдореЗрдВ рдирд╣реАрдВ рд╣реИред рдЖрдк рд╕рднреА _рдорд╛рдЗрдЯ_ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рдЖрд╕рд╛рдиреА рд╕реЗ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИрдВ init/directory рдЯреНрд░реИрд╡рд░реНрд╕рд▓ рдФрд░ _one рд╕рд┐рдВрдЧрд▓_ рдкрд╛рд░реНрд╕рд░ рдереНрд░реЗрдб рд╣реИред
рдФрд░ рдЕрдВрдд рдореЗрдВ, рдореБрдЭреЗ рд╡рд┐рд╢реНрд╡рд╛рд╕ рд╣реИ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреЛрдбрдмреЗрд╕ (рдФрд░ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдкрд╛рд░реНрд╕рд░реНрд╕ рдореЗрдВ) рдореЗрдВ рд╣рд░ рдЬрдЧрд╣ рдкреНрд░рджрд░реНрд╢рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рд╕рдордЭрджрд╛рд░ рдЕрдиреБрдХреВрд▓рди рд╣реИрдВред

рддреЛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдорд▓реНрдЯреАрдереНрд░реЗрдбрд┐рдВрдЧ рд╢рд╛рдпрдж _can_ рдореЗрдВ _some_ рд▓рд╛рдн рд╣реИрдВ рдпрджрд┐ рдмрд╣реБрдд рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рд╕реБрдзрд╛рд░ рдирд╣реАрдВ рд╣реЛрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИред

рд╕рд╛рде рд╣реА, рдПрдХ рдФрд░ рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдпрд╣ рдореБрдЭреЗ рдЗрддрдирд╛ рдЖрдХрд░реНрд╖рд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдХрд┐ [тАж] рд╡рд░реНрддрдорд╛рди рдореЗрдВ Ctags рдХреЛрдб рдмреЗрд╕ рд╕рдорд╛рдирд╛рдВрддрд░ рдЯреИрдЧ рдкрд╛рд░реНрд╕рд┐рдВрдЧ рдереНрд░реЗрдбреНрд╕ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд┐рд▓реНрдХреБрд▓ рдЖрдХрд╛рд░ рдореЗрдВ рдирд╣реАрдВ рд╣реИред рдЖрдк рд╕рднреА _рдорд╛рдЗрдЯ_ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рдЖрд╕рд╛рдиреА рд╕реЗ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИрдВ init/directory рдЯреНрд░реИрд╡рд░реНрд╕рд▓ рдФрд░ _one рд╕рд┐рдВрдЧрд▓_ рдкрд╛рд░реНрд╕рд░ рдереНрд░реЗрдб рд╣реИред

рдмреАрдЯреАрдбрдмреНрд▓реВ, рдореЗрд░рд╛ рдорддрд▓рдм рдпрд╣ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХреЛрдб рдореЗрдВ рдЗрд╕ рдХреНрд╖реЗрддреНрд░ рдХреЛ рд╕реБрдзрд╛рд░рдирд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рд╣реИ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╣реИ (рд╕рдВрднрд╛рд╡рд┐рдд рднрд╡рд┐рд╖реНрдп рдХреЗ libctags рдХреЗ рд▓рд┐рдП)ред рдореЗрд░рд╛ рдорддрд▓рдм рд╕рд┐рд░реНрдл рдЗрддрдирд╛ рд╣реИ рдХрд┐ рдпрджрд┐ рдкреНрд░рджрд░реНрд╢рди рд▓рдХреНрд╖реНрдп рд╣реИ, рддреЛ рд╢рд╛рдпрдж рдпрд╣ (рд╡рд░реНрддрдорд╛рди рдореЗрдВ) рдкреНрд░рдпрд╛рд╕ рдХреЗ рд▓рд╛рдпрдХ рдирд╣реАрдВ рд╣реИ, рдФрд░ рдЗрд╕ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ рднреА рдорд╣рддреНрд╡рдкреВрд░реНрдг рдХреНрд╖реЗрддреНрд░ рд╣реИрдВред

BTW, рдПрдХ рдкреНрд░реЛрдлрд╛рдЗрд▓рд░ рдХреЛ рдлрд╛рдпрд░ рдХрд░рдирд╛ рдФрд░ рдПрдХ рдЧреИрдЬрд╝рд┐рд▓рд┐рдпрди рддрд░реАрдХреЗ рд╕реЗ рдбреЗрдЯрд╛ рдХрд╛ рдПрдХ рдмреЛрдЭ рдкреНрд░реЛрдлрд╛рдЗрд▓ рдХрд░рдирд╛ рд╢рд╛рдпрдж рджрд┐рд▓рдЪрд╕реНрдк рд╣реЛрдЧрд╛ред

GNU рд╕рдорд╛рдирд╛рдВрддрд░ рдЖрдкрдХреА рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рдЬреИрд╕рд╛ рдХрд┐ рдкрд╣рд▓реЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдкрдарди рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рд╕реЗ ctags рдореЗрдВ рдХрд╛рдлреА рддреЗрдЬреА рдЖ рд╕рдХрддреА рд╣реИред

рдпрджрд┐ I/O рдХреИрд╢ рд╕реЗ рдЖрддрд╛ рд╣реИ рддреЛ рдкрд╛рд░реНрд╕рд░реНрд╕ рдХрд╛ рд╕рдорд╛рдирд╛рдВрддрд░ рдирд┐рд╖реНрдкрд╛рджрди рдЪреАрдЬреЛрдВ рдХреЛ рдХрд╛рдлреА рддреЗрдЬ рдХрд░ рд╕рдХрддрд╛ рд╣реИ (рдФрд░ рдпрд╣ рдЕрдХреНрд╕рд░ рдРрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдЖрдк рдХрд┐рд╕реА рд╕рдВрдкрд╛рджрдХ рд╕реЗ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдкрд░ ctags рдЪрд▓рд╛рддреЗ рд╣реИрдВ)ред

@pragmaware IMO, рдПрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЛ рдХрд╛рдВрдЯрд╛ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдпрджрд┐ рдЖрдк рдЬрд╛рдкрд╛рдиреА рдкрд╛рда рдкрдврд╝рддреЗ рд╣реИрдВ, рддреЛ рд▓реЗрдЦ рджреЗрдЦреЗрдВ, https://qiita.com/dalance/items/c76141a097e25fabefe8 ред
(рдЗрд╕ рдЯрд┐рдкреНрдкрдгреА рдХреЛ рд▓рд┐рдЦрдиреЗ рдХреЗ рдмрд╛рдж, рдореБрдЭреЗ ptags (https://github.com/dalance/ptags) рдХреЗ рд▓рд┐рдП git рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдорд┐рд▓реАред рдкреЗрдЬ рдЕрдВрдЧреНрд░реЗрдЬреА рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИред)

рдпрд╣ рд▓реЗрдЦрдХ рджреНрд╡рд╛рд░рд╛ рд╡рд┐рдХрд╕рд┐рдд ptags рдирд╛рдордХ рдЯреВрд▓ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рддрд╛ рд╣реИред рдЯреВрд▓ рд░рд╕реНрдЯ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ ctags рдХреЛ рд▓рдкреЗрдЯрддрд╛ рд╣реИред
рдпрд╣ рдЗрдирдкреБрдЯ рдХреЗ рд╕реЗрдЯ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рдирд╛рдВрддрд░ ctags рдЪрд▓рд╛рддрд╛ рд╣реИред
рдореИрдВ рдЗрд╕рдХреА рдЖрдВрддрд░рд┐рдХ рд▓реВрдЯ рдирд╣реАрдВ рдХрд░рддрд╛ред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдХрдИ ctags рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдБ рдЪрд▓рд╛рддрд╛ рд╣реИред

рдкрд░рд┐рдгрд╛рдо рдХрд╛рдлреА рдкреНрд░рднрд╛рд╡рд╢рд╛рд▓реА рд╣реИред рд╕рд┐рдВрдЧрд▓ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рд╕реЗ 5 рдЧреБрдирд╛ рддреЗрдЬред рд╕реАрдкреАрдпреВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдирд╣реАрдВ рд▓рд┐рдЦреА рдЬрд╛рддреА рд╣реИред рдореЗрдореЛрд░реА рдХрд╛ рдЖрдХрд╛рд░ рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ (= 128GB)ред рд▓реЗрдЦрдХ рдкреЗрдЬ рдХреИрд╢реЗ рдХреЛ рдЧрд░реНрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрд╕реА рдЗрдирдкреБрдЯ рд╕реЗрдЯ рдХреЗ рд▓рд┐рдП 10 рдмрд╛рд░ ptags рдЪрд▓рд╛рддрд╛ рд╣реИред

рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЗрди рдЪреАрдЬреЛрдВ рдХреЛ ptags рдЬреИрд╕реЗ рд░реИрдкрд░реНрд╕ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдЗрд╕ рд╢рд╛рдирджрд╛рд░ рдкрд░рд┐рдгрд╛рдо рдХреЛ рдирдЬрд░рдЕрдВрджрд╛рдЬ рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИред
рдореИрдВрдиреЗ рдЬрд▓реНрджреА рд╣реИрдХ рдХрд┐рдпрд╛ред https://github.com/masatake/ctags/tree/parallel
рдирдпрд╛ рдкреЗрд╢ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╡рд┐рдХрд▓реНрдк --_parallel _parallel рдореЗрдВ рдХрдИ ctags рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдЪрд▓рд╛рддрд╛ рд╣реИред

рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛, 8, рд╣рд╛рд░реНрдб рдХреЛрдбрд┐рдд рд╣реИред рдорд╛рдИ рдиреЛрдЯ рдкреАрд╕реА рдореЗрдВ 8 рдХреЛрд░ рд╣реИрдВред
рдореЗрдореЛрд░реА 32GB рд╣реИред рд▓рдХреНрд╖реНрдп рдЗрдирдкреБрдЯ рдирд╡реАрдирддрдо рд▓рд┐рдирдХреНрд╕ рдХрд░реНрдиреЗрд▓ рд╕реНрд░реЛрдд рдЯреНрд░реА рд╣реИред
рдореЗрд░реЗ .ctags рдХрд╛рдлреА рдмрд╛рд▓реЛрдВ рд╡рд╛рд▓реА рд╣реИрдВред

рдкрд░рд┐рдгрд╛рдо рдЬреНрдпрд╛рджрд╛рддрд░ рд╕рдорд╛рди рд╣реИ: 2 ~ 3 рдЧреБрдирд╛ рддреЗрдЬред

[yamato@master]~/var/ctags-github% cat run.sh
cat run.sh
for i in $(seq 1 5); do
    echo "#"
    echo "# TRAIL #$i"
    echo "#"
    echo "# parallel 8"
    time  ./ctags    --_parallel -R  ~/var/linux > /dev/null
    echo "# single"
    time  ./ctags -o - --sort=no -R  ~/var/linux > /dev/null
done
[yamato@master]~/var/ctags-github% bash run.sh 
bash run.sh 
#
# TRAIL #1
#
# parallel 8

real    0m29.073s
user    3m5.791s
sys 0m32.347s
# single

real    1m21.397s
user    1m14.601s
sys 0m6.521s
#
# TRAIL #2
#
# parallel 8

real    0m29.746s
user    3m4.601s
sys 0m32.175s
# single

real    1m26.660s
user    1m19.176s
sys 0m7.191s
#
# TRAIL #3
#
# parallel 8

real    0m28.290s
user    3m2.524s
sys 0m31.081s
# single

real    1m21.927s
user    1m14.775s
sys 0m6.896s
#
# TRAIL #4
#
# parallel 8

real    0m28.644s
user    3m3.839s
sys 0m31.756s
# single

real    1m13.319s
user    1m7.294s
sys 0m5.843s
#
# TRAIL #5
#
# parallel 8

real    0m29.274s
user    3m9.387s
sys 0m32.363s
# single

real    1m13.621s
user    1m7.487s
sys 0m5.941s
[yamato@master]~/var/ctags-github% 

(рдореИрдВрдиреЗ рджреЛрдиреЛрдВ рдЯреИрдЧ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдХреЙрдордкреНрд░реЗрдб рдХрд┐рдпрд╛ред рдХреЛрдИ рдЕрдВрддрд░ рдирд╣реАрдВ рд╣реИред)

рд╕рдВрддреЛрд╖рдЬрдирдХ рд╕реЗ рджреВрд░, рд▓реЗрдХрд┐рди рдпрд╣ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫреА рдЬрдЧрд╣ рд╣реИред

рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реИ рдХрд┐ рд╢реНрд░рдорд┐рдХреЛрдВ рдХрд╛ рдЙрддреНрдкрд╛рджрди рдПрдХрддреНрд░ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдпрд╛ рдирд╣реАрдВред

рд╣рд╛рдп @masatake рдореИрдВ рдЕрдкрдиреЗ рд╕рднреА рдЦреБрд▓реЗ рдЯрд┐рдХрдЯреЛрдВ рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ

рдореИрдВ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдЗрд╕ рдордж рдкрд░ рдХрд╛рдо рдХрд░реВрдВрдЧрд╛ред рдореИрдВ рдЗрд╕ рдордж рдХреЛ рдЦреБрд▓рд╛ рд░рдЦрдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣рд╛рдВ рдЪрд░реНрдЪрд╛ рдХрд╛ рд░рд┐рдХреЙрд░реНрдб рдореЗрд░реЗ рд▓рд┐рдП рдореВрд▓реНрдпрд╡рд╛рди рд╣реЛрдЧрд╛ред

@masatake рдЖрдк рдЕрднреА рднреА рдЗрд╕ рдЯрд┐рдХрдЯ рдХреЛ рдПрдХ рдирдП рд╕реЗ рд▓рд┐рдВрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдкреВрд░рд╛ рдЗрддрд┐рд╣рд╛рд╕ рдмрд░рдХрд░рд╛рд░ рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдореЗрд░реА рдорджрдж рдХрд░реЗрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдПрдХ рдирдИ рдиреМрдХрд░реА рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ "рдореБрджреНрджреЛрдВ" рдЯреИрдм рдХреЛ рд╕рд╛рдл рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдореИрдВ рдЗрд╕ рдЯрд┐рдХрдЯ рдХреА рддрд░рд╣ рдЕрд╡реНрдпрд╡рд╕реНрдерд╛ рдирд╣реАрдВ рдЪрд╛рд╣рддрд╛ред

@fommil , рдореИрдВ рдирд╣реАрдВ рджреЗрдЦрддрд╛ рдХрд┐ рдЖрдк @masatake рдХреЛ рдХреИрд╕реЗ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдпреВрдирд┐рд╡рд░реНрд╕рд▓ Ctags рдХреЗ рдкреАрдЫреЗ рдкреНрд░реЗрд░рдХ рд╢рдХреНрддрд┐ рд╣реИ, 2,700 рдХрдорд┐рдЯ рдмрдирд╛рдо рдЖрдкрдХреА рдХрдорд┐рдЯ рдХрд╛рдЙрдВрдЯ рд╢реВрдиреНрдп рдХреЗ рд╕рд╛рдеред рдПрдХ рдмрд╛рд░ рдЬрдм рдЖрдк рдПрдХ рдмрдЧ рдЦреЛрд▓рддреЗ рд╣реИрдВ (рдпрд╛, рдЧрд┐рдЯрд╣рдм рднрд╛рд╖рд╛ рдореЗрдВ, "рдореБрджреНрджрд╛"), рдпрд╣ рдмрдЧ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреА рд╕рдВрдкрддреНрддрд┐ рдмрди рдЬрд╛рддреА рд╣реИред рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдЖрдк рдЗрд╕реЗ рдЕрдирджреЗрдЦреЗ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреЛрдИ рдИрдореЗрд▓ рдкреНрд░рд╛рдкреНрдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓рдирд╛ред

@dtikhonov @masatake рдХреГрдкрдпрд╛ рдЗрд╕ рдЯрд┐рдХрдЯ рдХреЛ рдмрдВрдж рдХрд░ рджреЗрдВред рдореЗрд░реЗ https://github.com/issues рджреГрд╢реНрдп рдореЗрдВ рдпрд╣ рдПрдХрдорд╛рддреНрд░ рдЯрд┐рдХрдЯ рд╣реИ рдЬреЛ рдореЗрд░реЗ рдХрд╛рдо рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдирд╣реАрдВ рд╣реИред

рдЗрд╕ рджреГрд╢реНрдп рд╕реЗ рдЯрд┐рдХрдЯ рдХреЛ рддрдм рддрдХ рд╣рдЯрд╛рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИ рдЬрдм рддрдХ рдХрд┐ рдЯрд┐рдХрдЯ рдмрдВрдж рди рд╣реЛ рдЬрд╛рдПред рднрд▓реЗ рд╣реА рдореИрдВ рд╕рджрд╕реНрдпрддрд╛ рд╕рдорд╛рдкреНрдд рдХрд░ рджреВрдВред

рджрд░рдЕрд╕рд▓, рдореБрдЭреЗ рдЗрд╕ рдмрд╛рдд рдХреА рдЬрд╛рдирдХрд╛рд░реА рдирд╣реАрдВ рдереА рдХрд┐ рдЬрдм рдореИрдВ рдЯрд┐рдХрдЯ рдмрдирд╛рдКрдВрдЧрд╛ рддреЛ рд░реЗрдкреЛ рдорд╛рд▓рд┐рдХреЛрдВ рдХрд╛ рдпрд╣ рдирд┐рдпрдВрддреНрд░рдг рд╣реЛрдЧрд╛, рдЕрдиреНрдпрдерд╛ рдореИрдВ рдРрд╕рд╛ рдирд╣реАрдВ рдХрд░рддрд╛ред

рдпрджрд┐ рдЖрдк рдЗрд╕ рдкрд░ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдХреГрдкрдпрд╛ рдПрдХ рдирдпрд╛ рдЯрд┐рдХрдЯ рдмрдирд╛рдПрдВ рдФрд░ рдЗрд╕ рдЯрд┐рдХрдЯ рдХрд╛ рд╕рдВрджрд░реНрдн рд▓реЗрдВ, рд╕рднреА рдЪрд░реНрдЪрд╛ рд╕рдВрд░рдХреНрд╖рд┐рдд рд╣реИред рдпрд╛ рдмрд╕ https://github.com/universal-ctags/ctags/issues/761#issuecomment -373720839 рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдПрдХ рдирдП рдЯрд┐рдХрдЯ рдореЗрдВ рдХреЙрдкреА рдкреЗрд╕реНрдЯ рдХрд░реЗрдВред

рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдкреВрдЫрдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдХреБрдЫ рд╣реИред

рдХреНрдпрд╛ рдЖрдк рд╕рд┐рд░реНрдл рдХреЙрдкреА-рдкреЗрд╕реНрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд╕реНрдерд╛рдпреА GitHub рдЦрд╛рддрд╛ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ?
рддреЛ рдЖрдк рдЦреБрдж рд╣реА рдХреЙрдкреА-рдкреЗрд╕реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдлрд┐рд░, рдЖрдк рдЦрд╛рддреЗ рдХреЛ рд╣рдЯрд╛ рд╕рдХрддреЗ рд╣реИрдВред

рдпрдХреАрди рд╣реИ, рдЕрдЧрд░ рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХрд╛ рдпрд╣реА рдПрдХрдорд╛рддреНрд░ рддрд░реАрдХрд╛ рд╣реИ рддреЛ рдореИрдВ рдРрд╕рд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред

рдХрд┐рдпрд╛ рд╣реБрдЖ! рдореБрдЭреЗ рдпрд╣ рдЯрд┐рдХрдЯ рдмрдВрдж рдХрд░рдиреЗ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдпрд╣ рдореЗрд░реЗ TODO рдХрд╛рд░реНрдп рдХреЛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд░реВрдк рд╕реЗ рд╕рд╛рдлрд╝ рдХрд░рддрд╛ рд╣реИред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

cweagans picture cweagans  ┬╖  13рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

masatake picture masatake  ┬╖  18рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

alphaCTzo7G picture alphaCTzo7G  ┬╖  7рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

JulienPivard picture JulienPivard  ┬╖  16рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

liuchengxu picture liuchengxu  ┬╖  8рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ