ASP.NET рдкреНрд░реЛрдлрд╛рдЗрд▓рд░реНрд╕ рдХрд╛ рдЕрд╡рд▓реЛрдХрди

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



рд╢рд╛рдорд┐рд▓ рд╕рдореАрдХреНрд╖рд╛:





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



рдЪреВрдВрдХрд┐ рдореИрдВ рдЕрдкрдиреА рдЧрддрд┐рд╡рд┐рдзрд┐ рдХреА рдкреНрд░рдХреГрддрд┐ рд╕реЗ рд╡реЗрдм рд╡рд┐рдХрд╛рд╕ рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реВрдВ, ASP.NET рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкрд░реАрдХреНрд╖рдг рд╡рд┐рд╖рдп ( рдбрд╛рдЙрдирд▓реЛрдб ) рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░реЗрдЧрд╛:

public partial class Default : System.Web.UI. Page { protected void Page_Load( object sender, EventArgs e) { SampleBadMethod1(); SampleBadMethod2(); } private void SampleBadMethod1() { for ( int i = 0; i < 100; i++) { SampleBadSubMethod1(); } } private void SampleBadSubMethod1() { Thread.Sleep(10); } private void SampleBadMethod2() { for ( int i = 0; i < 10000; i++) { SampleBadSubMethod2(); } } private void SampleBadSubMethod2() { Thread.Sleep(1); } } * This source code was highlighted with Source Code Highlighter .



  1. public partial class Default : System.Web.UI. Page { protected void Page_Load( object sender, EventArgs e) { SampleBadMethod1(); SampleBadMethod2(); } private void SampleBadMethod1() { for ( int i = 0; i < 100; i++) { SampleBadSubMethod1(); } } private void SampleBadSubMethod1() { Thread.Sleep(10); } private void SampleBadMethod2() { for ( int i = 0; i < 10000; i++) { SampleBadSubMethod2(); } } private void SampleBadSubMethod2() { Thread.Sleep(1); } } * This source code was highlighted with Source Code Highlighter .



  2. public partial class Default : System.Web.UI. Page { protected void Page_Load( object sender, EventArgs e) { SampleBadMethod1(); SampleBadMethod2(); } private void SampleBadMethod1() { for ( int i = 0; i < 100; i++) { SampleBadSubMethod1(); } } private void SampleBadSubMethod1() { Thread.Sleep(10); } private void SampleBadMethod2() { for ( int i = 0; i < 10000; i++) { SampleBadSubMethod2(); } } private void SampleBadSubMethod2() { Thread.Sleep(1); } } * This source code was highlighted with Source Code Highlighter .



  3. public partial class Default : System.Web.UI. Page { protected void Page_Load( object sender, EventArgs e) { SampleBadMethod1(); SampleBadMethod2(); } private void SampleBadMethod1() { for ( int i = 0; i < 100; i++) { SampleBadSubMethod1(); } } private void SampleBadSubMethod1() { Thread.Sleep(10); } private void SampleBadMethod2() { for ( int i = 0; i < 10000; i++) { SampleBadSubMethod2(); } } private void SampleBadSubMethod2() { Thread.Sleep(1); } } * This source code was highlighted with Source Code Highlighter .



  4. public partial class Default : System.Web.UI. Page { protected void Page_Load( object sender, EventArgs e) { SampleBadMethod1(); SampleBadMethod2(); } private void SampleBadMethod1() { for ( int i = 0; i < 100; i++) { SampleBadSubMethod1(); } } private void SampleBadSubMethod1() { Thread.Sleep(10); } private void SampleBadMethod2() { for ( int i = 0; i < 10000; i++) { SampleBadSubMethod2(); } } private void SampleBadSubMethod2() { Thread.Sleep(1); } } * This source code was highlighted with Source Code Highlighter .



  5. public partial class Default : System.Web.UI. Page { protected void Page_Load( object sender, EventArgs e) { SampleBadMethod1(); SampleBadMethod2(); } private void SampleBadMethod1() { for ( int i = 0; i < 100; i++) { SampleBadSubMethod1(); } } private void SampleBadSubMethod1() { Thread.Sleep(10); } private void SampleBadMethod2() { for ( int i = 0; i < 10000; i++) { SampleBadSubMethod2(); } } private void SampleBadSubMethod2() { Thread.Sleep(1); } } * This source code was highlighted with Source Code Highlighter .



  6. public partial class Default : System.Web.UI. Page { protected void Page_Load( object sender, EventArgs e) { SampleBadMethod1(); SampleBadMethod2(); } private void SampleBadMethod1() { for ( int i = 0; i < 100; i++) { SampleBadSubMethod1(); } } private void SampleBadSubMethod1() { Thread.Sleep(10); } private void SampleBadMethod2() { for ( int i = 0; i < 10000; i++) { SampleBadSubMethod2(); } } private void SampleBadSubMethod2() { Thread.Sleep(1); } } * This source code was highlighted with Source Code Highlighter .



  7. public partial class Default : System.Web.UI. Page { protected void Page_Load( object sender, EventArgs e) { SampleBadMethod1(); SampleBadMethod2(); } private void SampleBadMethod1() { for ( int i = 0; i < 100; i++) { SampleBadSubMethod1(); } } private void SampleBadSubMethod1() { Thread.Sleep(10); } private void SampleBadMethod2() { for ( int i = 0; i < 10000; i++) { SampleBadSubMethod2(); } } private void SampleBadSubMethod2() { Thread.Sleep(1); } } * This source code was highlighted with Source Code Highlighter .



  8. public partial class Default : System.Web.UI. Page { protected void Page_Load( object sender, EventArgs e) { SampleBadMethod1(); SampleBadMethod2(); } private void SampleBadMethod1() { for ( int i = 0; i < 100; i++) { SampleBadSubMethod1(); } } private void SampleBadSubMethod1() { Thread.Sleep(10); } private void SampleBadMethod2() { for ( int i = 0; i < 10000; i++) { SampleBadSubMethod2(); } } private void SampleBadSubMethod2() { Thread.Sleep(1); } } * This source code was highlighted with Source Code Highlighter .



  9. public partial class Default : System.Web.UI. Page { protected void Page_Load( object sender, EventArgs e) { SampleBadMethod1(); SampleBadMethod2(); } private void SampleBadMethod1() { for ( int i = 0; i < 100; i++) { SampleBadSubMethod1(); } } private void SampleBadSubMethod1() { Thread.Sleep(10); } private void SampleBadMethod2() { for ( int i = 0; i < 10000; i++) { SampleBadSubMethod2(); } } private void SampleBadSubMethod2() { Thread.Sleep(1); } } * This source code was highlighted with Source Code Highlighter .



  10. public partial class Default : System.Web.UI. Page { protected void Page_Load( object sender, EventArgs e) { SampleBadMethod1(); SampleBadMethod2(); } private void SampleBadMethod1() { for ( int i = 0; i < 100; i++) { SampleBadSubMethod1(); } } private void SampleBadSubMethod1() { Thread.Sleep(10); } private void SampleBadMethod2() { for ( int i = 0; i < 10000; i++) { SampleBadSubMethod2(); } } private void SampleBadSubMethod2() { Thread.Sleep(1); } } * This source code was highlighted with Source Code Highlighter .



  11. public partial class Default : System.Web.UI. Page { protected void Page_Load( object sender, EventArgs e) { SampleBadMethod1(); SampleBadMethod2(); } private void SampleBadMethod1() { for ( int i = 0; i < 100; i++) { SampleBadSubMethod1(); } } private void SampleBadSubMethod1() { Thread.Sleep(10); } private void SampleBadMethod2() { for ( int i = 0; i < 10000; i++) { SampleBadSubMethod2(); } } private void SampleBadSubMethod2() { Thread.Sleep(1); } } * This source code was highlighted with Source Code Highlighter .



  12. public partial class Default : System.Web.UI. Page { protected void Page_Load( object sender, EventArgs e) { SampleBadMethod1(); SampleBadMethod2(); } private void SampleBadMethod1() { for ( int i = 0; i < 100; i++) { SampleBadSubMethod1(); } } private void SampleBadSubMethod1() { Thread.Sleep(10); } private void SampleBadMethod2() { for ( int i = 0; i < 10000; i++) { SampleBadSubMethod2(); } } private void SampleBadSubMethod2() { Thread.Sleep(1); } } * This source code was highlighted with Source Code Highlighter .



  13. public partial class Default : System.Web.UI. Page { protected void Page_Load( object sender, EventArgs e) { SampleBadMethod1(); SampleBadMethod2(); } private void SampleBadMethod1() { for ( int i = 0; i < 100; i++) { SampleBadSubMethod1(); } } private void SampleBadSubMethod1() { Thread.Sleep(10); } private void SampleBadMethod2() { for ( int i = 0; i < 10000; i++) { SampleBadSubMethod2(); } } private void SampleBadSubMethod2() { Thread.Sleep(1); } } * This source code was highlighted with Source Code Highlighter .



  14. public partial class Default : System.Web.UI. Page { protected void Page_Load( object sender, EventArgs e) { SampleBadMethod1(); SampleBadMethod2(); } private void SampleBadMethod1() { for ( int i = 0; i < 100; i++) { SampleBadSubMethod1(); } } private void SampleBadSubMethod1() { Thread.Sleep(10); } private void SampleBadMethod2() { for ( int i = 0; i < 10000; i++) { SampleBadSubMethod2(); } } private void SampleBadSubMethod2() { Thread.Sleep(1); } } * This source code was highlighted with Source Code Highlighter .



  15. public partial class Default : System.Web.UI. Page { protected void Page_Load( object sender, EventArgs e) { SampleBadMethod1(); SampleBadMethod2(); } private void SampleBadMethod1() { for ( int i = 0; i < 100; i++) { SampleBadSubMethod1(); } } private void SampleBadSubMethod1() { Thread.Sleep(10); } private void SampleBadMethod2() { for ( int i = 0; i < 10000; i++) { SampleBadSubMethod2(); } } private void SampleBadSubMethod2() { Thread.Sleep(1); } } * This source code was highlighted with Source Code Highlighter .



  16. public partial class Default : System.Web.UI. Page { protected void Page_Load( object sender, EventArgs e) { SampleBadMethod1(); SampleBadMethod2(); } private void SampleBadMethod1() { for ( int i = 0; i < 100; i++) { SampleBadSubMethod1(); } } private void SampleBadSubMethod1() { Thread.Sleep(10); } private void SampleBadMethod2() { for ( int i = 0; i < 10000; i++) { SampleBadSubMethod2(); } } private void SampleBadSubMethod2() { Thread.Sleep(1); } } * This source code was highlighted with Source Code Highlighter .



  17. public partial class Default : System.Web.UI. Page { protected void Page_Load( object sender, EventArgs e) { SampleBadMethod1(); SampleBadMethod2(); } private void SampleBadMethod1() { for ( int i = 0; i < 100; i++) { SampleBadSubMethod1(); } } private void SampleBadSubMethod1() { Thread.Sleep(10); } private void SampleBadMethod2() { for ( int i = 0; i < 10000; i++) { SampleBadSubMethod2(); } } private void SampleBadSubMethod2() { Thread.Sleep(1); } } * This source code was highlighted with Source Code Highlighter .



  18. public partial class Default : System.Web.UI. Page { protected void Page_Load( object sender, EventArgs e) { SampleBadMethod1(); SampleBadMethod2(); } private void SampleBadMethod1() { for ( int i = 0; i < 100; i++) { SampleBadSubMethod1(); } } private void SampleBadSubMethod1() { Thread.Sleep(10); } private void SampleBadMethod2() { for ( int i = 0; i < 10000; i++) { SampleBadSubMethod2(); } } private void SampleBadSubMethod2() { Thread.Sleep(1); } } * This source code was highlighted with Source Code Highlighter .



  19. public partial class Default : System.Web.UI. Page { protected void Page_Load( object sender, EventArgs e) { SampleBadMethod1(); SampleBadMethod2(); } private void SampleBadMethod1() { for ( int i = 0; i < 100; i++) { SampleBadSubMethod1(); } } private void SampleBadSubMethod1() { Thread.Sleep(10); } private void SampleBadMethod2() { for ( int i = 0; i < 10000; i++) { SampleBadSubMethod2(); } } private void SampleBadSubMethod2() { Thread.Sleep(1); } } * This source code was highlighted with Source Code Highlighter .



  20. public partial class Default : System.Web.UI. Page { protected void Page_Load( object sender, EventArgs e) { SampleBadMethod1(); SampleBadMethod2(); } private void SampleBadMethod1() { for ( int i = 0; i < 100; i++) { SampleBadSubMethod1(); } } private void SampleBadSubMethod1() { Thread.Sleep(10); } private void SampleBadMethod2() { for ( int i = 0; i < 10000; i++) { SampleBadSubMethod2(); } } private void SampleBadSubMethod2() { Thread.Sleep(1); } } * This source code was highlighted with Source Code Highlighter .



  21. public partial class Default : System.Web.UI. Page { protected void Page_Load( object sender, EventArgs e) { SampleBadMethod1(); SampleBadMethod2(); } private void SampleBadMethod1() { for ( int i = 0; i < 100; i++) { SampleBadSubMethod1(); } } private void SampleBadSubMethod1() { Thread.Sleep(10); } private void SampleBadMethod2() { for ( int i = 0; i < 10000; i++) { SampleBadSubMethod2(); } } private void SampleBadSubMethod2() { Thread.Sleep(1); } } * This source code was highlighted with Source Code Highlighter .



  22. public partial class Default : System.Web.UI. Page { protected void Page_Load( object sender, EventArgs e) { SampleBadMethod1(); SampleBadMethod2(); } private void SampleBadMethod1() { for ( int i = 0; i < 100; i++) { SampleBadSubMethod1(); } } private void SampleBadSubMethod1() { Thread.Sleep(10); } private void SampleBadMethod2() { for ( int i = 0; i < 10000; i++) { SampleBadSubMethod2(); } } private void SampleBadSubMethod2() { Thread.Sleep(1); } } * This source code was highlighted with Source Code Highlighter .



  23. public partial class Default : System.Web.UI. Page { protected void Page_Load( object sender, EventArgs e) { SampleBadMethod1(); SampleBadMethod2(); } private void SampleBadMethod1() { for ( int i = 0; i < 100; i++) { SampleBadSubMethod1(); } } private void SampleBadSubMethod1() { Thread.Sleep(10); } private void SampleBadMethod2() { for ( int i = 0; i < 10000; i++) { SampleBadSubMethod2(); } } private void SampleBadSubMethod2() { Thread.Sleep(1); } } * This source code was highlighted with Source Code Highlighter .



  24. public partial class Default : System.Web.UI. Page { protected void Page_Load( object sender, EventArgs e) { SampleBadMethod1(); SampleBadMethod2(); } private void SampleBadMethod1() { for ( int i = 0; i < 100; i++) { SampleBadSubMethod1(); } } private void SampleBadSubMethod1() { Thread.Sleep(10); } private void SampleBadMethod2() { for ( int i = 0; i < 10000; i++) { SampleBadSubMethod2(); } } private void SampleBadSubMethod2() { Thread.Sleep(1); } } * This source code was highlighted with Source Code Highlighter .



  25. public partial class Default : System.Web.UI. Page { protected void Page_Load( object sender, EventArgs e) { SampleBadMethod1(); SampleBadMethod2(); } private void SampleBadMethod1() { for ( int i = 0; i < 100; i++) { SampleBadSubMethod1(); } } private void SampleBadSubMethod1() { Thread.Sleep(10); } private void SampleBadMethod2() { for ( int i = 0; i < 10000; i++) { SampleBadSubMethod2(); } } private void SampleBadSubMethod2() { Thread.Sleep(1); } } * This source code was highlighted with Source Code Highlighter .



  26. public partial class Default : System.Web.UI. Page { protected void Page_Load( object sender, EventArgs e) { SampleBadMethod1(); SampleBadMethod2(); } private void SampleBadMethod1() { for ( int i = 0; i < 100; i++) { SampleBadSubMethod1(); } } private void SampleBadSubMethod1() { Thread.Sleep(10); } private void SampleBadMethod2() { for ( int i = 0; i < 10000; i++) { SampleBadSubMethod2(); } } private void SampleBadSubMethod2() { Thread.Sleep(1); } } * This source code was highlighted with Source Code Highlighter .



  27. public partial class Default : System.Web.UI. Page { protected void Page_Load( object sender, EventArgs e) { SampleBadMethod1(); SampleBadMethod2(); } private void SampleBadMethod1() { for ( int i = 0; i < 100; i++) { SampleBadSubMethod1(); } } private void SampleBadSubMethod1() { Thread.Sleep(10); } private void SampleBadMethod2() { for ( int i = 0; i < 10000; i++) { SampleBadSubMethod2(); } } private void SampleBadSubMethod2() { Thread.Sleep(1); } } * This source code was highlighted with Source Code Highlighter .



  28. public partial class Default : System.Web.UI. Page { protected void Page_Load( object sender, EventArgs e) { SampleBadMethod1(); SampleBadMethod2(); } private void SampleBadMethod1() { for ( int i = 0; i < 100; i++) { SampleBadSubMethod1(); } } private void SampleBadSubMethod1() { Thread.Sleep(10); } private void SampleBadMethod2() { for ( int i = 0; i < 10000; i++) { SampleBadSubMethod2(); } } private void SampleBadSubMethod2() { Thread.Sleep(1); } } * This source code was highlighted with Source Code Highlighter .



  29. public partial class Default : System.Web.UI. Page { protected void Page_Load( object sender, EventArgs e) { SampleBadMethod1(); SampleBadMethod2(); } private void SampleBadMethod1() { for ( int i = 0; i < 100; i++) { SampleBadSubMethod1(); } } private void SampleBadSubMethod1() { Thread.Sleep(10); } private void SampleBadMethod2() { for ( int i = 0; i < 10000; i++) { SampleBadSubMethod2(); } } private void SampleBadSubMethod2() { Thread.Sleep(1); } } * This source code was highlighted with Source Code Highlighter .



  30. public partial class Default : System.Web.UI. Page { protected void Page_Load( object sender, EventArgs e) { SampleBadMethod1(); SampleBadMethod2(); } private void SampleBadMethod1() { for ( int i = 0; i < 100; i++) { SampleBadSubMethod1(); } } private void SampleBadSubMethod1() { Thread.Sleep(10); } private void SampleBadMethod2() { for ( int i = 0; i < 10000; i++) { SampleBadSubMethod2(); } } private void SampleBadSubMethod2() { Thread.Sleep(1); } } * This source code was highlighted with Source Code Highlighter .



public partial class Default : System.Web.UI. Page { protected void Page_Load( object sender, EventArgs e) { SampleBadMethod1(); SampleBadMethod2(); } private void SampleBadMethod1() { for ( int i = 0; i < 100; i++) { SampleBadSubMethod1(); } } private void SampleBadSubMethod1() { Thread.Sleep(10); } private void SampleBadMethod2() { for ( int i = 0; i < 10000; i++) { SampleBadSubMethod2(); } } private void SampleBadSubMethod2() { Thread.Sleep(1); } } * This source code was highlighted with Source Code Highlighter .





рдПрдХ рдорд╛рдореВрд▓реА рдЧреАрддрд╛рддреНрдордХ рд╡рд┐рд╖рдпрд╛рдВрддрд░ред рдкрд╣рд▓реЗ рдореИрдВ рдкреНрд░реЛрдлрд╛рдЗрд▓рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЪреБрдирдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред рдпрд╣ рд╡рд┐рдХрд▓реНрдк рдЯреЗрд▓рд╕реНрдкрд┐рди рд╕реНрдкрд╛рдпрд╡рд░реНрдХреНрд╕ рдкрд░ рдЧрд┐рд░ рдЧрдпрд╛, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдПрдХ рд╕реНрдЯреЗрдм-рдмрд╛рдп-рд╕реНрдЯреЗрдк рдЧрд╛рдЗрдб рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╢реБрд░реБрдЖрддреА рдХреЗ рд▓рд┐рдП рдореИрдиреБрдЕрд▓ рдХреЛ рдЗрддрдирд╛ рдкреЙрд▓рд┐рд╢ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рддрд╛рдХрд┐ рдбреЗрд╡рд▓рдкрд░ рдХреЛ рддреБрд░рдВрдд рд░реБрдЪрд┐ рд╣реЛ, рдЙрд╕реЗ рдХреБрдЫ рд╕рд╣реА рдЪреАрдЬреЗрдВ рд╕рд┐рдЦрд╛рдПрдВред рдФрд░ рдореИрдВрдиреЗ рд╡рд╣рд╛рдБ рдХреНрдпрд╛ рджреЗрдЦрд╛? рдПрдХ рдЯреЗрдврд╝рд╛ рд▓реЗрдЖрдЙрдЯ, рд╡реНрдпрд╛рдкрд╛рд░ рддрд░реНрдХ рдФрд░ рдорд╛рд░реНрдХрдЕрдк рдХрд╛ рдорд┐рд╢реНрд░рдг, рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд▓рд┐рдП рд╕рдмрдкреНрдЯреАрдорд▓ рдХреНрд╡реЗрд╢реНрдЪрди, рд╕реЗрд▓реЗрдХреНрдЯ * рднрд▓реЗ рд╣реА 1-2 рдлреАрд▓реНрдбреНрд╕ рд╕реНрдЯреНрд░реЗрдЪ рдХрд┐рдП рдЧрдП рд╣реЛрдВ ... рд╕рднреА рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝реЗрд╢рди 4 рдмрд╛рд░ (4 рдкреНрд░реЛрдлрд╛рдЗрд▓рд░реНрд╕ рдХреЗ рд▓рд┐рдП) рдХрд░рддреЗ рд╣реБрдП рдмрд╣реБрдд рдЯрд╛рдЗрдо рдХрдВрдЬреНрдпреВрдо рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП 3 рдорд┐рдирдЯ рдореЗрдВ рдЯреЗрд╕реНрдЯ рдХреЛ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛ рдЖрд╡реЗрджрдиред рдпрджрд┐ рдХрд┐рд╕реА рдХреЛ рджрд┐рд▓рдЪрд╕реНрдкреА рд╣реИ, рддреЛ рднрд╡рд┐рд╖реНрдп рдХреЗ рд▓реЗрдЦреЛрдВ рдореЗрдВ рдЯреЗрд▓рд╕реНрдкрд┐рди рд╕реНрдкрд╛рдпрд╡рд░реНрдХреНрд╕ рдХреА рд╣рдбреНрдбрд┐рдпреЛрдВ рдХреЛ рдмрдирд╛рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛ред



рдкрд░реНрдпрд╛рдкреНрдд рдЧреАрдд, рдЪрд▓рд╛рдиреЗ рд╡рд╛рд▓реЗ рдкреНрд░реЛрдлрд╛рдЗрд▓рд░ред



рд╡рд┐рдЬреБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рдкреНрд░рджрд░реНрд╢рди рдкреНрд░реЛрдлрд╛рдЗрд▓рд░



рд▓реЙрдиреНрдЪрд┐рдВрдЧ рд╡реА.рдПрд╕. рд╕реЗ рдореЗрдиреВ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ -> рд▓реЙрдиреНрдЪ рдкреНрд░рджрд░реНрд╢рди рд╡рд┐рдЬрд╝рд╛рд░реНрдбред

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

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







рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдкреГрд╖реНрда рд▓реЛрдб рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рд╕реНрдЯреЙрдк рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ рдФрд░ рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ:







рд╣рдо рдкреНрд░реЛрдлрд╛рдЗрд▓рд░ рдХреЗ рд╡рд┐рд╡рд░рдг рдкрд░ рдзреНрдпрд╛рди рдХреЗрдиреНрджреНрд░рд┐рдд рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ, рдпрд╣ рдпрд╣рд╛рдБ , рдпрд╣рд╛рдБ рдФрд░ рдпрд╣рд╛рдБ рдмрд╣реБрдд рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ ред



рдпрд╣рд╛рдБ рд╡рд┐рдзрд┐ рджреНрд╡рд╛рд░рд╛ рд╕рд╛рдВрдЦреНрдпрд┐рдХреА рд╕реНрдХреНрд░реАрди рд╣реИ:







рдЕрдм рд╣рдореЗрдВ CodeBadMethod1 рдФрд░ SampleBadMethod2 рдХреЛрдб рдХреЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЦрдВрдбреЛрдВ рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред "рдЕрдиреБрдХреВрд▓рди" рдХреЗ рд░реВрдк рдореЗрдВ, рд╣рдо рд▓реВрдк рдореЗрдВ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдХрдо рдХрд░рддреЗ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, 100 рд╕реЗ 50 рдФрд░ 10000 рд╕реЗ 1000 рддрдХ)ред

рд╣рдореЗрдВ рдкреБрди: рдкрд░рд┐рдгрд╛рдо рдорд┐рд▓рддрд╛ рд╣реИ рдФрд░ рдореЗрдиреВ рдЖрдЗрдЯрдо рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг-> рдкрд░рдлреЙрдореЗрдВрд╕ рд░рд┐рдкреЛрд░реНрдЯ рдХреА рддреБрд▓рдирд╛ рдХрд░реЗрдВ рд╣рдо рдкрд░рд┐рдгрд╛рдо рдХреА рддреБрд▓рдирд╛ рдХрд░рддреЗ рд╣реИрдВ:







рдЦреИрд░, рд╣рдо рдорд╣рд╛рди рд╣реИрдВ, рдпрд╣ рд╣рдорд╛рд░реЗ рдЖрд╡реЗрджрди рдХреЛ рдЧрддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдХрд▓рд╛ рд╣реИред



рдЕрдиреНрдп рдкреНрд░реЛрдлрд╛рдЗрд▓рд░реНрд╕ рдХреЗ рд╕рд╛рде рд╕рдорд╛рди рдЪрд░рдгреЛрдВ рдХреЛ рджреЛрд╣рд░рд╛рдПрдВред



ANTS рдкреНрд░реЛрдлрд╛рдЗрд▓рд░



рдирдпрд╛ рдкреНрд░реЛрдлрд╛рдЗрд▓рд┐рдВрдЧ рд╕рддреНрд░ рдмрдирд╛рддреЗ рд╕рдордп, рдирд┐рдореНрди рд╡рд┐рдВрдбреЛ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИ:







рдпрд╣рд╛рдВ рдЖрдк рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдкреНрд░рдХрд╛рд░, рдкреНрд░реЛрдлрд╛рдЗрд▓рд┐рдВрдЧ рд╡рд┐рдХрд▓реНрдк рдХрд╛ рдЪрдпрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдбреЗрдЯрд╛ рджрд░реНрдЬ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ dev рд╕рд░реНрд╡рд░ рдкрд░ ASP.NET рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП рдпрд╣ рдПрдкреНрд▓рд┐рдХреЗрд╢рди, рд╕рдВрд╕реНрдХрд░рдг .net, рдкреЛрд░реНрдЯ рдирдВрдмрд░, рдЖрджрд┐ рдХрд╛ рдкрде рд╣реИред

рд╕реНрдЯрд╛рд░реНрдЯрд┐рдВрдЧ рдкреНрд░реЛрдлрд╛рдЗрд▓ рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ, рдЗрд╕ рд╕рдордп ANTS рдкреНрд░реЛрдлрд╛рдЗрд▓рд░ рдореЗрдВ, рд╕рдордп рдЕрдХреНрд╖ рдкрд░ рдкреНрд░реЛрд╕реЗрд╕рд░ рд▓реЛрдб рдХрд╛ рдПрдХ рдЧреНрд░рд╛рдл рдЦреАрдВрдЪрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдмрдВрдж рдХрд░реЗрдВ рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ рдФрд░ рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ:







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

рдпрд╣рд╛рдБ рдХреБрдЫ рд╡рд┐рд╖рдорддрд╛ рд╣реИ: рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ SampleBadSubMethod2 рд╡рд┐рдзрд┐ рдХрд╛ рдХреБрд▓ рдирд┐рд╖реНрдкрд╛рджрди рд╕рдордп 14 рдПрдордПрд╕ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЗрд╕рдореЗрдВ 1 рдПрдордПрд╕ рд╡рд┐рд▓рдВрдм рд╣реИ рдФрд░ рдЗрд╕реЗ 10,000 рдЧреБрдирд╛ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рд╢рд╛рдпрдж ANTS рдХрд┐рд╕реА рддрд░рд╣ рдЧрд▓рдд рддрд░реАрдХреЗ рд╕реЗ Thread.Sleep рдореЗрдердб рдХреЛ рдкреНрд░реЛрд╕реЗрд╕ рдХрд░рддрд╛ рд╣реИред



рдЕрдм, рдлрд┐рд░ рд╕реЗ, рд╣рдо рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ "рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝" рдХрд░рддреЗ рд╣реИрдВ, рдкреНрд░реЛрдлрд╛рдЗрд▓рд░ рдХреЛ рдЪрд▓рд╛рддреЗ рд╣реИрдВ, рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ ... рд╣рдо рдЗрд╕рдХреА рддреБрд▓рдирд╛ ANTS рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ ... рд╕рд╛рдЗрдЯ рдкрд░ рдЕрдХреНрд╕рд░ рдкреВрдЫреЗ рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдкреНрд░рд╢реНрдиреЛрдВ рдореЗрдВ, рд╡реЗ рд╕реБрдЭрд╛рд╡ рджреЗрддреЗ рд╣реИрдВ рдХрд┐ рдкрд░рд┐рдгрд╛рдо рдХреА рддреБрд▓рдирд╛ рдХрд░рддреЗ рд╣реБрдП рдПрдХ рдФрд░ рдкреНрд░реЛрдлрд╛рдЗрд▓рд░ рд▓реЙрдиреНрдЪ рдХрд░реЗрдВ рдФрд░ рдЙрдирдХреЗ рдмреАрдЪ рд╕реНрд╡рд┐рдЪ рдХрд░реЗрдВред рдЦреИрд░, рдзрдиреНрдпрд╡рд╛рдж, рдФрд░ рдХреНрдпрд╛ рдХрд╣рдирд╛ рд╣реИ :)



рд▓рдбрд╝рд╛рдИ рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рддрд╛ рд╣реИ



dotTrace



рдЬрдм рдЖрдк рдлрд╝рд╛рдЗрд▓-> рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЪрдпрди рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдПрдХ рд╡рд┐рдВрдбреЛ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИ:







рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдкреНрд░рдХрд╛рд░ рдЪреБрдиреЗрдВ, рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд╕реЗрдЯ рдХрд░реЗрдВ рдФрд░ рдЪрд▓рд╛рдПрдВ!

рдкреНрд░реЛрдлрд╛рдЗрд▓рд┐рдВрдЧ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдПрдХ рдЫреЛрдЯреА рд╡рд┐рдВрдбреЛ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИ рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рдЖрдк рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдкреНрд░рд╛рдкреНрдд рд╕реНрдиреИрдкрд╢реЙрдЯ) рдпрд╛ рдкреНрд░реЛрдлрд╛рдЗрд▓рд┐рдВрдЧ рдХреЛ рдкреВрд░рд╛ рдХрд░реЗрдВред







рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╡рд┐рдВрдбреЛ рджреЗрдЦреЗрдВрдЧреЗ:







рдпрд╣рд╛рдВ рд╣рдо рдкреНрд░рддрд┐рд╢рдд рдФрд░ рд░рдирдЯрд╛рдЗрдо рдХреЗ рд╕рд╛рде рддрд░реАрдХреЛрдВ рдХрд╛ рдПрдХ рдкреЗрдбрд╝ рджреЗрдЦрддреЗ рд╣реИрдВред рджрд╛рдИрдВ рдУрд░ рдЖрдк рдПрдХ рд╡рд┐рд╢реЗрд╖ рд╡рд┐рдзрд┐ рдХреЗ рд╕реНрд░реЛрдд рдХреЛ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред

рд╣рдо рдЖрд╡реЗрджрди рдХрд╛ рдЕрдиреБрдХреВрд▓рди рдХрд░рддреЗ рд╣реИрдВ, рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдореВрд▓ рдХреЗ рд╕рд╛рде рддреБрд▓рдирд╛ рдХрд░рддреЗ рд╣реИрдВ:







рдЦреИрд░, рдЕрдиреБрдХреВрд▓рди рдПрдХ рд╕рдлрд▓рддрд╛ рдереАред



рдФрд░ рдЕрдВрдд рдореЗрдВ



EQATEC рдкреНрд░реЛрдлрд╛рдЗрд▓рд░



рдкреНрд░реЙрдлрд╝рд╛рдЗрд▓рд░ рдЪрд▓рд╛рдПрдВ, рд╡рд┐рдВрдбреЛ рджреЗрдЦреЗрдВ:







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







рдлрд┐рд░ рдЕрдкрдирд╛ рдкрд╕рдВрджреАрджрд╛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд▓реЙрдиреНрдЪ рдХрд░реЗрдВ рдФрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкреЗрдЬ рд▓реЛрдб рдХрд░реЗрдВред рдпрджрд┐ рд╕рдм рдХреБрдЫ рдареАрдХ рд╣реИ, рддреЛ Profiled appication xxx рдкреНрд░рд╛рд░рдВрдн рд╕рдВрджреЗрд╢ рд▓реЙрдЧ рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛ рдФрд░ "рд╕реНрдиреИрдкрд╢реЙрдЯ рд▓реЗ" рдФрд░ "рд░реАрд╕реЗрдЯ рдХрд╛рдЙрдВрдЯрд░" рдмрдЯрди рд╕рдХреНрд░рд┐рдп рд╣реЛ рдЬрд╛рдПрдВрдЧреЗред







рдЕрдЧрд▓рд╛, "рд╕реНрдиреИрдкрд╢реЙрдЯ рд▓реЗрдВ" рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ:







рдФрд░ рдпрд╣рд╛рдБ рд╣рдорд╛рд░рд╛ рд╕реНрдиреИрдкрд╢реЙрдЯ рд╣реИ:







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

рдЕрдм, рдПрдХ рдмрд╛рд░ рдлрд┐рд░, рд╣рдо рдЖрд╡реЗрджрди рдХрд╛ рдЕрдиреБрдХреВрд▓рди рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдкрд░рд┐рдгрд╛рдо рдХреА рддреБрд▓рдирд╛ рдХрд░рддреЗ рд╣реИрдВ:







рдЕрдЪреНрдЫрд╛ рдХрд┐рдпрд╛ рдлрд┐рд░ рд╕реЗ, рд╣рдордиреЗ рдХрдИ рдмрд╛рд░ рдЖрд╡реЗрджрди рдореЗрдВ рддреЗрдЬреА рд▓рд╛рдИ рд╣реИред



рдпрд╣ рд╕рдм, рдкреНрд░рд╕реНрддреБрдд рдкреНрд░реЛрдлрд╛рдЗрд▓рд░реНрд╕ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреА рд╕рд╛рд░рд╛рдВрд╢ рддрд╛рд▓рд┐рдХрд╛ рдХреЛ рджреЗрдЦреЗрдВред



рд╕рд╛рд░рд╛рдВрд╢



рд╡реАрдПрд╕ рдкреНрд░реЛрдлрд╛рдЗрд▓рд░ рдЪреАрдВрдЯрд┐рдпреЛрдВ dotTrace EQATEC
рд╡рд┐рдзрд┐ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХрд╛ рдкреНрд░рджрд░реНрд╢рди (% рдореЗрдВ)
рд╡рд┐рдзрд┐ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рдкреВрд░реНрдг рдкрд░рд┐рдгрд╛рдо рджрд┐рдЦрд╛рдПрдВ (рд╕реЗрдХрдВрдб рдореЗрдВ, ms, рдЖрджрд┐)
рд╡рд┐рдзрд┐ рдХреЙрд▓ рдХреА рд╕рдВрдЦреНрдпрд╛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдВ
рд╡рд┐рдзрд┐ рдХреЗ рд╕реНрд░реЛрдд рджреЗрдЦреЗрдВ
рджреЛ рдорд╛рдкреЛрдВ рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреА рддреБрд▓рдирд╛
рдХреАрдордд > 5000 $ 1) 395 $ 2 рд╕реЗ) 199 $ 3 рд╕реЗ) рдореБрдлреНрдд 4)


1) рд╡реАрдПрд╕ рдкреНрд░реАрдорд┐рдпрдо рдФрд░ рдКрдкрд░ рдХреЗ рднрд╛рдЧ рдХреЗ рд░реВрдк рдореЗрдВ

2) рд╕рдВрд╕реНрдХрд░рдг рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ

3) рдореБрдХреНрдд рд╕реНрд░реЛрдд рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рд╣реИ

4) рдХрдо рдкреНрд░рддрд┐рдмрдВрдзреЛрдВ рдХреЗ рд╕рд╛рде $ 10 рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рде рднрд░реА рд╣реБрдИ dlls рдХреА рд╕реАрдорд╛



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



рд╡реАрдПрд╕ рдкреНрд░реЛрдлрд╛рдЗрд▓рд░


+ рд╡реАрдПрд╕ рдореЗрдВ рдПрдХреАрдХреГрдд (рдкреНрд░реАрдорд┐рдпрдо рдФрд░ рдЕрдВрддрд┐рдо рдореЗрдВ рд╕рдЪ)

+ ADO.NET рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд

- рдореВрдбреА, рдХрднреА-рдХрднреА рдкреНрд░реЛрдлрд╛рдЗрд▓рд┐рдВрдЧ рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдХреЗ рдмрд┐рдирд╛ рд╢реБрд░реВ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ

- appSettings рдЕрдиреБрднрд╛рдЧ web.config рдореЗрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рдПрдХ рдЕрд▓рдЧ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдирд╣реАрдВ рдирд┐рдХрд╛рд▓рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдХреНрдпреЛрдВрдХрд┐ рдХреБрдЫ рд╕реЗрд╡рд╛ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд╡рд╣рд╛рдВ рд▓рд┐рдЦреА рдЧрдИ рд╣реИрдВ, рдФрд░ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдиреЗ рдмрд╛рд╣рд░реА рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЗрд╕ рдЦрдВрдб рдХреЗ рд╕реНрдерд╛рди рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдирд╣реАрдВ рджреЗрдЦрд╛ рд╣реИ

- рдПрдХ рдмрдбрд╝реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкрд░ рдФрд░ рдПрдХ рдмрд╣реБрдд рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдорд╢реАрди рдХрд╛рдлрд╝реА рдХрдо рд╣реИ



ANTS рдкреНрд░реЛрдлрд╛рдЗрд▓рд░


+ рд╡рд┐рдзрд┐ рдХреЙрд▓ рдкрд░ рд╕рдмрд╕реЗ рд╡рд┐рд╕реНрддреГрдд рдЬрд╛рдирдХрд╛рд░реА, рдкреНрд░рджрд░реНрд╢рди рдХрд╛рдЙрдВрдЯрд░ рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛

- рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдореЛрдб рдореЗрдВ, SQL рд╕реЛрдЪрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ ./SQLEXPRESS рд╕рд░реНрд╡рд░ рдЕрдм рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИ :)

- рджреЛ рдорд╛рдк рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреА рдХреЛрдИ рддреБрд▓рдирд╛ рдирд╣реАрдВ



dotTrace


+ рдкреНрд░рд▓реЗрдЦрди рдкрд╕рдВрдж рдЖрдпрд╛

- рдкреЗрдбрд╝ рдореЗрдВ рд╕рдВрдЦреНрдпрд╛, рд╡рд┐рдзрд┐ рдХреЗ рдирд╛рдо, рд╡рд┐рдзрд╛рдирд╕рднрд╛рдУрдВ рдХреА рдЧрдбрд╝рдмрдбрд╝реА рдХреЗ рдХреБрдЫ рдкреНрд░рдХрд╛рд░ рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ

- IIS рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЛрдб рдореЗрдВ рд╢реБрд░реВ рдирд╣реАрдВ рд╣реБрдЖ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореИрдВрдиреЗ рдЕрдЪреНрдЫреЗ рдкреНрд░рд▓реЗрдЦрди рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╕рдм рдХреБрдЫ рдХрд┐рдпрд╛ред



EQATEC


+ рдЫреЛрдЯреЗ рдФрд░ рддреЗрдЬ, рдЙрдкрдпреБрдХреНрдд рдЕрдЧрд░ рдЖрдкрдХреЛ рд▓рд╛рдЗрди рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд░реНрд╢рди рд▓рд╛рдЗрди рджреЗрдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ рдФрд░ рд╕реНрд░реЛрдд рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ

- рдпрд╣ рдЛрдг рдкреНрд▓рд╕ рдХрд╛ рдкрд░рд┐рдгрд╛рдо рд╣реИ: рдЕрдиреНрдп рдкреНрд░рддрд┐рдпреЛрдЧрд┐рдпреЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХрдо рдЕрд╡рд╕рд░ред



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



рдЗрд╕ рд╕рдореАрдХреНрд╖рд╛ рдХреЛ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж! рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЖрдкрдХреЛ рдПрдХ рд╡рд┐рдХрд▓реНрдк рдмрдирд╛рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИред



рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░реЛрдлрд╛рдЗрд▓рд░ рдХреА рд╡рд┐рд╕реНрддреГрдд рд╕рдореАрдХреНрд╖рд╛ рдХреЗ рд▓рд┐рдП рдкреАрдПрд╕ рдкреНрд░рд╕реНрддрд╛рд╡ рд╕реНрд╡реАрдХрд╛рд░ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред



All Articles