рдмрд┐рд▓реНрдб рд╕рдордп рдЕрдиреБрдХреВрд▓рди - рднрд╛рдЧ 1

рдХрдо рд╕реЗ рдХрдо рдПрдХ рдмрд╛рд░ рд▓рдЧрднрдЧ рд╣рд░ рдбреЗрд╡рд▓рдкрд░ рдХреЛ рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдирд┐рд░реНрдорд╛рдг рд╕рдордп рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛ред рдЗрд╕рд╕реЗ рдЙрддреНрдкрд╛рджрдХрддрд╛ рдХрдо рд╣реЛ рдЬрд╛рддреА рд╣реИ рдФрд░ рдкреВрд░реА рдЯреАрдо рдХреА рд╡рд┐рдХрд╛рд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдзреАрдореА рд╣реЛ рдЬрд╛рддреА рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдХрд┐рд╕реА рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рдмрд┐рд▓реНрдб рд╕рдордп рдХреЛ рдмрдврд╝рд╛рдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдРрдк рдХреЗ рдкреНрд░рдХрд╛рд╢рд┐рдд рд╣реЛрдиреЗ рдХреЗ рд╕рдордп рдФрд░ рдЖрдкрдХреЗ рдРрдк рдХреА рдирдИ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рддреЗрдЬрд╝реА рд╕реЗ рд░рд┐рд▓реАрдЬрд╝ рд╣реЛрдиреЗ рдкрд░ рдЗрд╕рдХрд╛ рд╕реАрдзрд╛ рдкреНрд░рднрд╛рд╡ рдкрдбрд╝рддрд╛ рд╣реИред

рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рд╣рдо рд╕реАрдЦреЗрдВрдЧреЗ рдХрд┐ рдПрдХреНрд╕рдХреЛрдб рдореЗрдВ рдЕрд╕реЗрдВрдмрд▓реА рдХреЛ рдХреИрд╕реЗ рдкреНрд░реЛрдлрд╛рдЗрд▓ рдХрд┐рдпрд╛ рдЬрд╛рдП рдФрд░ рдореЗрдЯреНрд░рд┐рдХреНрд╕ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред рдЕрдЧрд▓реЗ рд▓реЗрдЦ рдореЗрдВ рдореИрдВ рдмрд╛рдзрд╛рдУрдВ рдХреЛ рдЦрддреНрдо рдХрд░рдиреЗ рдФрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХреЛ рдЧрддрд┐ рджреЗрдиреЗ рдХреЗ рддрд░реАрдХреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реВрдВрдЧрд╛ред рдпрд╣ рднреА рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рд╣рдо рдХрд┐рдХрд╕реНрдЯрд╛рд░реНрдЯрд░ рдЖрдИрдУрдПрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ, рдЬреЛ рдХрд┐ рдЬреАрдердм рдкрд░ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ ред рддреЛ рдЪрд▓реЛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИ!

рд╣рдо рдХреНрдпрд╛ рдорд╛рдк рд░рд╣реЗ рд╣реИрдВ?


рдкрд╣рд▓реА рдмрд╛рдд рд╣рдореЗрдВ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдирд╛ рд╣реИ рдХрд┐ рд╣рдо рдХреНрдпрд╛ рдорд╛рдкрдиреЗ рдФрд░ рдЕрдиреБрдХреВрд▓рди рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рджреЛ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

  • рд╕реНрд╡рдЪреНрдЫ рдирд┐рд░реНрдорд╛рдг - рд╕реНрд╡рдЪреНрдЫ рдФрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рдирд┐рд░реНрдорд╛рдгред рдЕрдХреНрд╕рд░, рдирдП рдкреБрд▓ рдЕрдиреБрд░реЛрдз рдХреЗ рд▓рд┐рдП рдЬрд╛рдБрдЪ рдХрд░рдиреЗ рдФрд░ рдЗрдХрд╛рдИ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП CI рдореЗрдВ рд╕реНрд╡рдЪреНрдЫ рдмрд┐рд▓реНрдб рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред
  • рд╡реГрджреНрдзрд┐рд╢реАрд▓ рдирд┐рд░реНрдорд╛рдг - рд╕реНрд░реЛрдд рдХреЛрдб рдореЗрдВ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рдмрд╛рдж рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рдирд┐рд░реНрдорд╛рдгред рдпрд╣ рдЕрд╕реЗрдВрдмрд▓реА рдирдИ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдкрд░ рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рдбреЗрд╡рд▓рдкрд░ рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдИ рдЧрдИ рд╣реИред

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

рд╣рдо рд╡рд┐рдзрд╛рдирд╕рднрд╛ рд╕рдордп рдХреА рдЧрдгрдирд╛ рдХрд░рддреЗ рд╣реИрдВ


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

Xcode рдмрд┐рд▓реНрдб рдЯрд╛рдЗрдо рд░рд┐рдкреЛрд░реНрдЯ


рд╣рдо рдЖрд╕рд╛рдиреА рд╕реЗ Xcode рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрд┐рд▓реНрдб рдЯрд╛рдЗрдо рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╕рднреА рдмрд┐рд▓реНрдб рдХреЛ рдЯреНрд░реИрдХ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЖрдкрдХреЛ рд░рд┐рдкреЛрд░реНрдЯ рдиреЗрд╡рд┐рдЧреЗрдЯрд░ рдореЗрдВ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рдмрд┐рд▓реНрдб рд╕рдордп рдХреЛ рджреЗрдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

рдЫрд╡рд┐

рдЖрдкрдХреЗ рдкрд╛рд╕ рдЧрддрд┐рд╡рд┐рдзрд┐ рджрд░реНрд╢рдХ рдкреИрдирд▓ рдореЗрдВ Xcode рдореЗрдВ рдЗрд╕реА рддрд░рд╣ рдХреА рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХрд╛ рд╡рд┐рдХрд▓реНрдк рд╣реИ ред рдпрд╣ рдХрдорд╛рдВрдб рдЪрд▓рд╛рдХрд░ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдХреНрд╖рдо рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ: рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрд┐рд▓реНрдб рд╕рдордп рд╕рдВрджреЗрд╢ "рд╕рдлрд▓" рдХреЗ рд╕рд╛рде рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХреЗ рдмрд╛рдж рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпреЗ рд╕рд┐рд░реНрдл рджреЛ рдмреБрдирд┐рдпрд╛рджреА рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ рдЬреЛ рдЖрдкрдХреЛ рдХреНрд▓реАрди рдФрд░ рдЗрдВрдХреНрд░реАрдореЗрдВрдЯрд▓ рдмрд┐рд▓реНрдб рд╕рдордп рдХрд╛ рдПрдХ рдореЛрдЯрд╛ рд╡рд┐рдЪрд╛рд░ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдП ред

defaults write com.apple.dt.Xcode ShowBuildOperationDuration YES



рдЫрд╡рд┐



Xcode рдореЗрдВ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрд┐рд▓реНрдб рдЯрд╛рдЗрдо рд╕рд╛рд░рд╛рдВрд╢


Xcode рдмрд┐рд▓реНрдб рдЯрд╛рдЗрдо рд╕рд╛рд░рд╛рдВрд╢ - рдмрд┐рд▓реНрдб рдЯрд╛рдЗрдо рдЖрдБрдХрдбрд╝реЗ рдФрд░ рдЕрдбрд╝рдЪрдиреЗрдВ рд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХрд╛ рдкрд╣рд▓рд╛ рджреЛрд╕реНрддред рдЖрдк рдЗрд╕реЗ Product-> Perform Action-> Build With Timing рд╕рд╛рд░рд╛рдВрд╢ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ ред рдЕрдм рдЖрдк рд╡рд┐рднрд┐рдиреНрди рдХрд╛рд░реНрдпреЛрдВ рдкрд░ рдЦрд░реНрдЪ рдХрд┐рдП рдЧрдП рд╕рдордп рдХрд╛ рдПрдХ рдмрдбрд╝рд╛ рдмреНрд░реЗрдХрдбрд╛рдЙрди рджреЗрдЦреЗрдВрдЧреЗ:

рдЫрд╡рд┐

рдпрд╣ рд╡рд┐рдзрд┐ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдордп рд▓реЗрдиреЗ рд╡рд╛рд▓реЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдЪреНрдЫрд╛ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдмрд┐рдВрджреБ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдКрдкрд░ рджрд┐рдП рдЧрдП рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ CompileStoryboard , CompileXIB , CompileSwiftSources, рдФрд░ PhaseScriptExecution рдЪрд░рдгреЛрдВ рдиреЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдмрд┐рд▓реНрдб рд╕рдордп рд▓рд┐рдпрд╛ред Xcode рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛, рдЗрд╕рд▓рд┐рдП рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдкреНрд░рддреНрдпреЗрдХ рдХрдорд╛рдВрдб рдХреЗ рдХрд╛рд░реНрдп рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╕рдордп рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рддреЗрдЬреА рд╕реЗ рдкреВрд░рд╛ рд╣реЛрддрд╛ рд╣реИред

рд╣рдо рд╡рд┐рдХрд▓реНрдк рдХреЗ рд╕рд╛рде xcodebuild рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреНрд▓реАрди рдмрд┐рд▓реНрдб рдХреЗ рд▓рд┐рдП рдПрдХ рдмрд┐рд▓реНрдб рдЯрд╛рдЗрдо рд╕рд╛рд░рд╛рдВрд╢ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ - buildWithTimingSummary : рдЕрдм рдЗрдВрдХреНрд░реАрдореЗрдВрдЯрд▓ рдмрд┐рд▓реНрдб рдХреЗ рд▓рд┐рдП рд╕рдорд╛рди рдореИрдЯреНрд░рд┐рдХреНрд╕ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред рдпрд╣ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдЗрдВрдХреНрд░реАрдореЗрдВрдЯрд▓ рдмрд┐рд▓реНрдб рд╕рдордп рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рд╕рдВрд╢реЛрдзрд┐рдд рдХреА рдЬрд╛ рд░рд╣реА рдлрд╛рдЗрд▓реЛрдВ рдкрд░ рдирд┐рд░реНрднрд░ рд╣реИред рд▓рдЧрд╛рддрд╛рд░ рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдПрдХ рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдмрдХ рдпрд╛ рдмрд╛рдЬреЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╡рд┐рдкрд░реАрдд, рдПрдХреНрд╕рдХреЛрдб рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдмрджрд▓ рдЧрдпрд╛ рд╣реИ рдФрд░ рдХреНрдпрд╛ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд╣рдо рд╕реНрдкрд░реНрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

xcodebuild -project 'Kickstarter.xcodeproj' \
-scheme 'Kickstarter-iOS' \
-configuration 'Debug' \
-sdk 'iphonesimulator' \
-showBuildTimingSummary \
clean build | sed -n -e '/Build Timing Summary/,$p'

Build Timing Summary
CompileStoryboard (29 tasks) | 87.128 seconds
CompileSwiftSources (4 tasks) | 54.144 seconds
PhaseScriptExecution (14 tasks) | 18.167 seconds
CompileAssetCatalog (2 tasks) | 6.532 seconds
CompileXIB (21 tasks) | 6.293 seconds
CodeSign (7 tasks) | 3.069 seconds
Ld (4 tasks) | 2.342 seconds
LinkStoryboards (2 tasks) | 0.172 seconds
CompileC (3 tasks) | 0.122 seconds
Ditto (20 tasks) | 0.076 seconds
Touch (4 tasks) | 0.007 seconds
** BUILD SUCCEEDED ** [92.620 sec]



touch KsApi/mutations/CancelBackingMutation.swift && \
xcodebuild -project 'Kickstarter.xcodeproj' \
-scheme 'Kickstarter-iOS' \
-configuration 'Debug' \
-sdk 'iphonesimulator' \
-showBuildTimingSummary \
build | sed -n -e '/Build Timing Summary/,$p'

Build Timing Summary
PhaseScriptExecution (14 tasks) | 18.089 seconds
CodeSign (7 tasks) | 2.990 seconds
CompileSwiftSources (1 task) | 1.245 seconds
Ld (1 task) | 0.361 seconds
** BUILD SUCCEEDED ** [23.927 sec]

рдкреНрд░рдХрд╛рд░ рд╕рддреНрдпрд╛рдкрди рдЪреЗрддрд╛рд╡рдиреА


рдЬрдм рд╕рдВрдХрд▓рди рд╕рдордп рдПрдХ рдЕрдбрд╝рдЪрди рд╣реИ, рддреЛ рд╣рдо Xcode рдореЗрдВ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрд┐рд▓реНрдб рд╡рд┐рдХрд▓реНрдкреЛрдВ рдореЗрдВ рдЕрдиреНрдп рд╕реНрд╡рд┐рдлреНрдЯ рдлреНрд▓реИрдЧ рд╕реЗрдЯ рдХрд░рдХреЗ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЬрдм рдзреНрд╡рдЬ рд╕рдХреНрд╖рдо рд╣реЛрддрд╛ рд╣реИ, рддреЛ Xcode рдХрд┐рд╕реА рднреА рдлрд╝рдВрдХреНрд╢рди рдпрд╛ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд▓рд┐рдП рдПрдХ рдЪреЗрддрд╛рд╡рдиреА рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЪрд░ рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП 100ms рд╕реЗ рдЕрдзрд┐рдХ рд▓реЗрддрд╛ рд╣реИ:

  • -рдПрдХреНрд╕рдлреНрд░рдВрдЯ -рд╡рд╛рд░-рд▓реЙрдиреНрдЧ-рдлрдВрдХреНрд╢рди-рдмреЙрдбреАрдЬ = 100
  • -рдПрдХреНрд╕рдлреНрд░рдВрдЯ -рд╡рд╛рд░-рд▓реЙрдиреНрдЧ-рдПрдХреНрд╕рдкреНрд░реЗрд╢рди-рдЯрд╛рдЗрдк-рдЪреЗрдХрд┐рдВрдЧ = 100

рдЫрд╡рд┐

рдЕрдм рдЖрдк рдЙрд╕ рдХреЛрдб рдХреЛ рдЬрд╛рдирддреЗ рд╣реИрдВ рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рд╕реНрд╡рд┐рдлреНрдЯ рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЛ рд╕рдорд╕реНрдпрд╛ рд╣реИ рдФрд░ рдЕрдм рдЖрдк рдЗрд╕реЗ рд╕реБрдзрд╛рд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рд╕рдВрдХрд▓рдХ рдиреИрджрд╛рдирд┐рдХ тАЛтАЛрд╡рд┐рдХрд▓реНрдк


рд╕реНрд╡рд┐рдлреНрдЯ рдХрдВрдкрд╛рдЗрд▓рд░ рдореЗрдВ рдХрдИ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдиреИрджрд╛рдирд┐рдХ тАЛтАЛрд╡рд┐рдХрд▓реНрдк рд╣реИрдВ рдЬрд┐рдирдХрд╛ рдЙрдкрдпреЛрдЧ рдЖрдк рдЕрд╕реЗрдВрдмрд▓реА рдХреЛ рдкреНрд░реЛрдлрд╛рдЗрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

  • -рдбреНрд░рд╛рдЗрд╡рд░-рдЯрд╛рдЗрдо-рд╕рдВрдХрд▓рди - рдбреНрд░рд╛рдЗрд╡рд░ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдП рдЧрдП рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝реЗрд╢рди рдХрд╛ рдПрдХ рдЙрдЪреНрдЪ рд╕реНрддрд░ред
  • -Xfrontend -debug-time-compilation тАФ .
  • -Xfrontend -debug-time-function-bodies тАУ .
  • -Xfrontend -debug-time-expression-type-checking тАУ .

рд╕рдВрдХрд▓рди рдХрд░рддреЗ рд╕рдордп рд╕рдмрд╕реЗ рдзреАрдореА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП -debug-time-compilation рдзреНрд╡рдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ : рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, SettingsNewslettersCellViewModel.swift рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдореЗрдВ 25 рд╕реЗрдХрдВрдб рдХрд╛ рд╕рдордп рд▓рдЧрд╛ред рдЕрд╕реЗрдВрдмрд▓реА рд▓реЙрдЧ рд╕реЗ, рдЖрдк рдлрд╝рд╛рдЗрд▓ рд╕рдВрдХрд▓рди рд╕рдордп рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрддрд┐рд░рд┐рдХреНрдд рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ: рдЕрдм рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдЯрд╛рдЗрдк рдЪреЗрдХрд┐рдВрдЧ рдФрд░ рд╕рд┐рдореЗрдВрдЯрд┐рдХ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдордп рд▓реЗрдиреЗ рд╡рд╛рд▓рд╛ рдХрд╛рдо рд╣реИред рдЖрдЗрдП рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реИрдВ рдФрд░ рдЯрд╛рдЗрдк рдЪреЗрдХрд┐рдВрдЧ рдЪрд░рдг рдореЗрдВ рд╕рдмрд╕реЗ рдзреАрдореА рдХреНрд░рд┐рдпрд╛рдУрдВ рдФрд░ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХреЛ рд╕реВрдЪреАрдмрджреНрдз рдХрд░рддреЗ рд╣реИрдВ :

xcodebuild -project 'Kickstarter.xcodeproj' \
-scheme 'Kickstarter-iOS' \
-configuration 'Debug' \
-sdk 'iphonesimulator' \
clean build \
OTHER_SWIFT_FLAGS="-Xfrontend -debug-time-compilation" |
awk '/CompileSwift normal/,/Swift compilation/{print; getline; print; getline; print}' |
grep -Eo "^CompileSwift.+\.swift|\d+\.\d+ seconds" |
sed -e 'N;s/\(.*\)\n\(.*\)/\2 \1/' |
sed -e "s|CompileSwift normal x86_64 $(pwd)/||" |
sort -rn |
head -3

25.6026 seconds Library/ViewModels/SettingsNewslettersCellViewModel.swift
24.4429 seconds Library/ViewModels/PledgeSummaryViewModel.swift
24.4312 seconds Library/ViewModels/PaymentMethodsViewModel.swift



===-------------------------------------------------------------------------===
Swift compilation
===-------------------------------------------------------------------------===
Total Execution Time: 25.6026 seconds (26.6593 wall clock)

---User Time--- --System Time-- --User+System-- ---Wall Time--- --- Name ---
24.4632 ( 98.3%) 0.5406 ( 76.5%) 25.0037 ( 97.7%) 26.0001 ( 97.5%) Type checking and Semantic analysis
0.0981 ( 0.4%) 0.1383 ( 19.6%) 0.2364 ( 0.9%) 0.2872 ( 1.1%) Name binding
0.1788 ( 0.7%) 0.0043 ( 0.6%) 0.1831 ( 0.7%) 0.1839 ( 0.7%) IRGen
0.0508 ( 0.2%) 0.0049 ( 0.7%) 0.0557 ( 0.2%) 0.0641 ( 0.2%) Parsing
0.0599 ( 0.2%) 0.0020 ( 0.3%) 0.0619 ( 0.2%) 0.0620 ( 0.2%) SILGen
0.0285 ( 0.1%) 0.0148 ( 2.1%) 0.0433 ( 0.2%) 0.0435 ( 0.2%) SIL optimization
0.0146 ( 0.1%) 0.0015 ( 0.2%) 0.0161 ( 0.1%) 0.0162 ( 0.1%) Serialization, swiftmodule
0.0016 ( 0.0%) 0.0006 ( 0.1%) 0.0022 ( 0.0%) 0.0022 ( 0.0%) Serialization, swiftdoc
0.0000 ( 0.0%) 0.0000 ( 0.0%) 0.0000 ( 0.0%) 0.0001 ( 0.0%) SIL verification, pre-optimization
0.0000 ( 0.0%) 0.0000 ( 0.0%) 0.0000 ( 0.0%) 0.0000 ( 0.0%) AST verification
0.0000 ( 0.0%) 0.0000 ( 0.0%) 0.0000 ( 0.0%) 0.0000 ( 0.0%) SIL verification, post-optimization
24.8956 (100.0%) 0.7069 (100.0%) 25.6026 (100.0%) 26.6593 (100.0%) Total



xcodebuild -project 'Kickstarter.xcodeproj' \
-scheme 'Kickstarter-iOS' \
-configuration 'Debug' \
-sdk 'iphonesimulator' \
clean build \
OTHER_SWIFT_FLAGS="-Xfrontend -debug-time-expression-type-checking \
-Xfrontend -debug-time-function-bodies" |
grep -o "^\d*.\d*ms\t[^$]*$" |
awk '!visited[$0]++' |
sed -e "s|$(pwd)/||" |
sort -rn |
head -5

16226.04ms Library/Styles/UpdateDraftStyles.swift:31:3
10551.24ms Kickstarter-iOS/Views/RewardCardContainerView.swift:171:16 instance method configureBaseGradientView()
10547.41ms Kickstarter-iOS/Views/RewardCardContainerView.swift:172:7
8639.30ms Kickstarter-iOS/Views/Controllers/AddNewCardViewController.swift:396:67
8233.27ms KsApi/models/templates/ProjectTemplates.swift:94:5

рдЙрд╕реА рддрд░рд╣, рд╣рдордиреЗ рдЕрдкрдиреА рдЕрд╕реЗрдВрдмрд▓реА рдХреА рд░реВрдкрд░реЗрдЦрд╛ рдмрдирд╛рдИ рдФрд░ рдкрд╛рдпрд╛ рдХрд┐ рдЯрд╛рдЗрдк рдЪреЗрдХрд┐рдВрдЧ рдХреЗ рдЪрд░рдг рдореЗрдВ рдЕрдбрд╝рдЪрдиреЗрдВ рд╣реИрдВред рдЕрдЧрд▓реЗ рдЪрд░рдг рдХреЗ рд░реВрдк рдореЗрдВ, рдЖрдк рдКрдкрд░ рд╕реВрдЪреАрдмрджреНрдз рдХрд╛рд░реНрдпреЛрдВ рдФрд░ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдкреНрд░рдХрд╛рд░ рдХреЗ рдЕрдиреБрдорд╛рдиреЛрдВ рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ ред

рдЯрд╛рд░рдЧреЗрдЯ рдмрд┐рд▓реНрдб рдЯрд╛рдЗрдо


рд▓рдХреНрд╖реНрдп рдХреЗ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рд╕рдордп рдХреЛ рдЕрд▓рдЧ рд╕реЗ рдорд╛рдкрдирд╛ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЧреНрд░рд╛рдл рдкрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдирд╛ рдЙрдЪрд┐рдд рд╣реИред рдЖрдк рдпрд╣ рд╕рдордЭрдиреЗ рдореЗрдВ рдорджрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреМрди рд╕реЗ рд▓рдХреНрд╖реНрдп рдПрдХрддреНрд░ рдХрд┐рдП рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ рдпрд╛ рдЙрдиреНрд╣реЗрдВ рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ рдПрдХрддреНрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк xcode-build-time-рдкреНрд░рддрд┐рдкрд╛рджрди рдЙрдкрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЪрд▓рд┐рдП рдЗрд╕реЗ RubyGem рдХреЗ рд░реВрдк рдореЗрдВ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ: рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдкреВрд░рд╛ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рд░рди рдХрдорд╛рдВрдб рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмрд┐рд▓реНрдб рдЪрд░рдг рдореЗрдВ рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк рд▓реЙрдЧ рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдореНрди рдХрдорд╛рдВрдб рдХреЛ рдЪрд▓рд╛рдПрдВ: рдлрд┐рд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░реЗрдВ рдФрд░ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд░рд┐рдкреЛрд░реНрдЯ рдХрд░реЗрдВ: рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдЖрдкрдХреЛ рд╕рдордп рдмрдирд╛рдХрд░ рдПрдХ рдЕрдЪреНрдЫрд╛ Gantant рдЪрд╛рд░реНрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ рд╕рдордп рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдЖрдкрдХреЗ рд╕рднреА рд▓рдХреНрд╖реНрдпреЛрдВ рдХреА рд╡рд┐рдзрд╛рдирд╕рднрд╛рдПрдВ:

gem install xcode-build-times



xcode-build-times install



xcode-build-times generate



рдЫрд╡рд┐

рдПрдЧреНрд░реАрдЧреНрд░реЗрдЯреЗрдб рдореЗрдЯреНрд░рд┐рдХреНрд╕


рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рд╡рд┐рднрд┐рдиреНрди рд╕рдВрдХреЗрддрдХреЛрдВ рдХреЛ рдПрдХрддреНрд░ рдХрд░рдирд╛ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред XCLogParser рдПрдХ рдмреЗрд╣рддрд░реАрди рдЯреВрд▓ рд╣реИ рдЬреЛ рдЖрдкрдХреА рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ Xcode рджреНрд╡рд╛рд░рд╛ рдЙрддреНрдкрдиреНрди xcactivitylog рдХреЗ рд▓рд┐рдП рдПрдХ рд▓реЙрдЧ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рд╣реИ, рдФрд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ, рдЪреЗрддрд╛рд╡рдиреА, рддреНрд░реБрдЯрд┐рдпреЛрдВ рдФрд░ рдЗрдХрд╛рдИ рдкрд░реАрдХреНрд╖рд╛ рдкрд░рд┐рдгрд╛рдореЛрдВ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдореЙрдбреНрдпреВрд▓ рдФрд░ рдлрд╝рд╛рдЗрд▓ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд╕рдордп рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рд░реА рдЬрд╛рдирдХрд╛рд░реА рджреЗрддрд╛ рд╣реИред рдЖрдк рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЛ рдХреНрд▓реЛрди рдХрд░рдХреЗ рдФрд░ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд▓реЙрдиреНрдЪ рдХрд░рдХреЗ рдЗрд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ: рдпрд╣ рдХрд┐рдХрд╕реНрдЯрд╛рд░реНрдЯрд░ iOS рдХреЗ рд▓рд┐рдП рдмрдирд╛рдИ рдЧрдИ рдПрдХ рд░рд┐рдкреЛрд░реНрдЯ рд╣реИ:

git clone https://github.com/spotify/XCLogParser
rake build
xclogparser parse --project Kickstarter --reporter html



рдЫрд╡рд┐

рд╕реНрд╡рдЪрд╛рд▓рди


рдпрд╣ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рд╕рдордп рдореИрдЯреНрд░рд┐рдХреНрд╕ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдФрд░ рдЙрдирдХреЗ рдЙрдкрдпреЛрдЧ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред рдЖрдк рдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдХрд▓реНрдк рдпрд╣ рд╣реЛрдЧрд╛ рдХрд┐ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдЬрд┐рддрдирд╛ рд╕рдВрднрд╡ рд╣реЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдП рдФрд░ рджреИрдирд┐рдХ рдореЗрдЯреНрд░рд┐рдХреНрд╕ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдкрд┐рдд CI рдЙрдкрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПред рдЕрдВрдд рдореЗрдВ, рдЙрдиреНрд╣реЗрдВ рдбреИрд╢рдмреЛрд░реНрдб рдкрд░ рдирдЬрд░ рд░рдЦреА рдЬрд╛ рд╕рдХрддреА рд╣реИ рдФрд░ рд╕реНрд▓реИрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрд┐рд▓реНрдб рдЯрд╛рдЗрдо рдХреЗ рдмрд┐рдЧрдбрд╝рдиреЗ рдХреА рд╕реВрдЪрдирд╛ рджреА рдЬрд╛ рд╕рдХрддреА рд╣реИред

рдирд┐рд╖реНрдХрд░реНрд╖


рдбреЗрд╡рд▓рдкрд░ рдЙрддреНрдкрд╛рджрдХрддрд╛ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдирд┐рд░реНрдорд╛рдг рд╕рдордп рдХреЛ рдХрдо рдХрд░рдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред рдЖрдЬ рд╣рдордиреЗ рд╕реАрдЦрд╛ рдХрд┐ рдХрд┐рд╕реА рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рдмрд┐рд▓реНрдб рд╕рдордп рдХреЛ рдХреИрд╕реЗ рдорд╛рдкреЗрдВ рдФрд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдореЗрдЯреНрд░рд┐рдХреНрд╕ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ ...

рдЕрдЧрд▓реЗ рдкреНрд░рдХрд╛рд╢рди рдореЗрдВ, рд╣рдо рдЙрди рддрд░реАрдХреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗ рдЬрд┐рдирдХрд╛ рдЙрдкрдпреЛрдЧ рдмрд┐рд▓реНрдб рдЯрд╛рдЗрдо рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!

All Articles