[Homework] КПК - Бързодействие и оптимизация на кода
Здртавейте,
Написах някакво домашно и искам да го споделя. Естествено да бъде укорено...
Problem 1. Clean the Smelly Code:
По тази задача, просто намерих някакъв "bottleneck" и изкарах една стойност от един фоцикъл и основно това съм направил.
Скрийн шот преди оптимизацията; Скрийн шот след оптимизацията;
Problem 2. Operations Performance Tests
Направил съм два класа, в едини тъпча методи, които вършат нещата по заданието, а другия принтва резултатите. Направил съм метод, който приема два стринга като параметри, единия е тип (int, long, float, ...), а другия за желано действие (add, subtract, increment, ...). Използвал съм две променливи тип dynamic и с един swich връщам към динамика съответния тип :) После с друг swich в зависимост от действието го изпълнявам в един форцикъл с двете променливи. По подобен начин съм направил и за другите задачи, като за сортирането съм използвал масив от ICompareble за тестване на съответния тип сорт. Не знам дали го обясних добре за това ето и кода :):
Малко ми е "хакерско" решението и бих се радвал да разгледам и други.
private void EarthRotation()
{
var dasysForPeriod = Days / EarthRotationPeriod;
for (decimal step = 0; step <= 360; step+=0.00005m)
{
EarthRotationAngle = ((double)step) * dasysForPeriod;
}
Update("EarthRotationAngle");
}
това ми е оптимизирането на действието.
Аз лично на тази задача само смених decimal на double и общо взето си заработи доста добре.