Быстрые интерфейсы значительно влияют на производительность во время выполнения приложения.NET?

Я в настоящее время занимаю меня с реализацией быстрого интерфейса для существующей технологии, которая позволила бы код, подобный следующему отрывку:

using (var directory = Open.Directory(@"path\to\some\directory"))
{
    using (var file = Open.File("foobar.html").In(directory))
    {
        // ...
    }
}

Для реализации таких конструкций классы необходимы, которые накапливают аргументы и передают их на другие объекты. Например, для реализации Open.File(...).In(...) создайте, Вам были бы нужны два класса:

// handles 'Open.XXX':
public static class OpenPhrase
{
    // handles 'Open.File(XXX)':
    public static OpenFilePhrase File(string filename)
    {
        return new OpenFilePhrase(filename);
    }

    // handles 'Open.Directory(XXX)':
    public static DirectoryObject Directory(string path)
    {
        // ...
    }
}

// handles 'Open.File(XXX).XXX':
public class OpenFilePhrase
{
    internal OpenFilePhrase(string filename)
    {
        _filename = filename
    }

    // handles 'Open.File(XXX).In(XXX):
    public FileObject In(DirectoryObject directory)
    {
        // ...
    }

    private readonly string _filename;
}

Таким образом, чем больше операторов составных частей, таких как начальные примеры имеет, тем больше объектов должно быть создано для передачи аргументов последующим объектам в цепочке, пока фактический оператор не может наконец выполниться.

Вопрос:

Я интересуюсь некоторыми мнениями: быстрое взаимодействует через интерфейс, который реализован с помощью вышеупомянутой техники, значительно влияют на производительность во время выполнения приложения, которое использует ее? С производительностью во время выполнения я обращаюсь к скорости и к аспектам использования памяти.

Примите во внимание, что потенциально большое количество временных, сохраняющих аргумент объектов должно было бы быть создано только для очень кратких промежутков, которые я принимаю, может оказать определенное давление на сборщик "мусора".

Если Вы думаете, что существует значительное влияние производительности, Вы знаете о лучшем способе реализовать быстрые интерфейсы?

9
задан stakx supports GoFundMonica 31 March 2010 в 20:56
поделиться

1 ответ

Вообще говоря, объекты с очень малым временем жизни - это именно те объекты, с которыми GC справляется наиболее эффективно, потому что большинство из них будут мертвы в момент при запуске следующей второстепенной коллекции - и в любой достойной реализации GC стоимость второстепенной коллекции пропорциональна общему размеру живых объектов. Таким образом, недолговечные объекты стоят очень мало, и их размещение означает только перемещение указателя вверх, что происходит быстро.

Итак, я бы сказал: вероятно, не будет значительного влияния на производительность.

5
ответ дан 4 December 2019 в 23:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: