2013-09-10 5 views
0

У меня есть два вопроса о том, как сделать код быстрее, и точно, какие определенные вещи замедлят мою программу.C# Основные методы оптимизации

Прежде всего, параметры метода. Допустим, у меня есть программа, которая имеет базовый класс Account, а затем создаю много экземпляров этой учетной записи класса. В классе он имеет метод, называемый Example, с кучами параметров метода. Медленно ли это делать? Является ли жесткое кодирование материала быстрее, если да, то сколько? Пример:

public class Example 
{ 
    public void DoSomething(string One, string Two, string Three, string Four, string Five, string Six, string Seven, string Eight, string Nine, string Ten, string Eleven) 
    { 
    // make a WebRequest using these parameters. 
    } 

} 

Во-вторых, это плохо, чтобы иметь класс только с одним элементом внутри него, экземпляр базового класса, как в примере (выше). Например:

static class ExampleOne 
{ 
    public static Example example = new Example(); 
} 

А потом использовать его как это:

static void Main(string[] args) 
{ 
    ExampleOne.example.DoSomething(parameters); 
} 

Спасибо за вашу помощь!

+0

Вы можете передавать ссылки параметров - http://msdn.microsoft.com/en-us/library/0f66670z.aspx – Nate

+0

Жесткокодирование параметров * едва * быстрее, конечно, вы не сможете сказать никакой разницы, но это неправильный вопрос. Вам нужна конфигурация или нет? Все «это медленно?/Сколько?» вопросы имеют один и тот же ответ: ** измерить его **. Пример члена класса выглядит довольно плохо. – Jon

+0

Когда дело доходит до производительности, если нет O (n) против O (1) (или что-то подобное), это в основном догадки, которые на самом деле быстрее и/или разница настолько мала, что это даже не имеет значения. Получить фактические результаты, код профиля. – Leri

ответ

4
// make a WebRequest using these parameters. 

Вы делаете это в корне неправильно. Задержка сети гарантирует, что этот метод займет много миллисекунд. Все, что вы могли бы получить от возиться с тем, как вы называете этот метод, в лучшем случае измеряется при горстке наносекунд, никогда не будет наблюдаемым.

Ваше образование было неправильным, поэтому вы не использовали профайлер, чтобы найти то, что нужно .

+0

Так как я использую код, с классами и методами, будет действительно замедлить мою программу на наносекундах? – user2764359

+0

@ user2764359: Это именно то, что он говорит. –

0

Что касается вашего второго вопроса:

Это зависит от того, что вы хотите достичь, но я думаю, вы должны либо использовать статический метод или реализовать шаблон Singleton дизайна вместо этого.

Смежные вопросы