Guest User

10.Бързодействие и оптимизация на кода

a guest
Feb 2nd, 2016
146
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.85 KB | None | 0 0
  1. Бързо действие и оптимизация на кода
  2. Computer performance is characterized by the amount of useful work accomplished by a computer system compared to the time and resources used.
  3. Хубаво е ако например пуснем даден торент да се сваля, то това да се случва паралелно на отделно място и така да може да продължим да си работим на компютъра.
  4. Хубаво е като пуснем дадена програма, то тя да не ни взима целия performance на процесора. Изключение може да прави дадена игра
  5. Ако даден код не е направил конкретен проблем със своя performance, то няма нужда да се захващаме с неговата оптимизация.
  6.  
  7. Трябва да се стремим, колкото е възможно повече, сорс кода да е качествен, защото това се отплаща с времето. Много по- евтино е да се купи добър hardware (който да подобри performance- а), отколкото да се наемат програмисти, които да напишат качествен софтуер в продължение на месеци.
  8. При web приложенията, качеството на кода трябва да е преди бързината/performance- а му. Но ако пишем софтуер за embedded приложения, то тогава е обратното – performance- а трябва да е на първо място.
  9. Не е задължително вярно, че по- голямото парче код е по- бавно от по- малкото парче код.
  10. Една програма трябва на първо място да е коректна!
  11.  
  12. Обикновено оптимизирането на кода влошава неговото качество
  13.  
  14. Когато пишем код, на първо място трябва да се стремим той да е качествен и коректен. Чак след това трябва да го оптимизираме!
  15.  
  16. Много пъти има конфликт между бързото действие на кода и неговото качество. В повечето случаи трябва да наблягаме първо на качеството на кода, но в някои случаи трябва да се съсредоточаваме върху бързото действие на кода
  17.  
  18. dotTrace – инструмент за проследяване времето, за което се изпълнява програмния код
  19.  
  20. Може да използваме някаква програма напр. dotTrace, когато не знаем къде ни се бави програмата или когато искаме цяла картина на performance- а на програмата
  21. Ако искаме да видим само колко бързо се изпълнява даден метод, то тогава е добре да използваме Stopwatch класа.
  22.  
  23.  
  24. !string- овете са read-only (immutable). Т.е. когато присвояваме даден стринг на друг стринг, то се създава нов трети стринг
  25.  
  26. ! Един T[] масив е винаги по- бърз от един лист List<T>. Това е така защото листа използва отдолу масив за да функционира.
  27. Ако в един for- цикъл се проверява условието i < str.Length, то това е по- бавно в сравнение с това ако изведем този str.Length в отделна променлива, тъй като при първия случай, на всяка итерация се извиква str.Length property- то. Т.е. :
  28. int count = 0;
  29. for (int i = 0; i < str.Length; i++)
  30. е по-бавно от:
  31. int count = 0;
  32. int len = str.Length;
  33. for (int i = 0; i < len; i++)
  34.  
  35. В повечето случаи bottleneck-ците се получават поради използване на неподходящите структури от данни или при грешни алгоритми, а не поради някакви незначителни разлики в скоростта, които се получават поради например случаи като горния
  36.  
  37. Using an inappropriate data structure or algorithm is often the reason for a bottleneck!
  38.  
  39. Извод: трябва да оптимизираме кода, само когато има такава нужда!
Add Comment
Please, Sign In to add comment