Как я могу использовать Ленивый в Диспетчере ASP.NET MVC?

У меня есть простой ASP.NET MVC контроллер. В нескольких методах действия я получаю доступ к ресурсу, который, как я скажу, является дорогим .

Поэтому я подумал, почему бы не сделать это статичным. Поэтому вместо двойной проверки блокировки я подумал, что могу использовать Lazy в .NET 4,0. Вызовите дорогостоящую услугу один раз вместо нескольких раз.

Итак, если это мой код pseduo, как я могу изменить его использовать Lazy . В данном примере в качестве дорогостоящего ресурса используется файловая система . Поэтому в этом примере вместо того, чтобы получать все файлы из пути назначения, каждый раз, когда запрос вызывает этот метод ActionMethod, я надеялся использовать Lazy для хранения этого списка файлов.. что, конечно, делает звонок только первый раз.

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

public class FooController : Controller
{
    private readonly IFoo _foo;
    public FooController(IFoo foo)
    {
        _foo = foo;
    }

    public ActionResult PewPew()
    {
        // Grab all the files in a folder.
        // nb. _foo.PathToFiles = "/Content/Images/Harro"
        var files = Directory.GetFiles(Server.MapPath(_foo.PathToFiles));

        // Note: No, I wouldn't return all the files but a concerete view model
        //       with only the data from a File object, I require.
        return View(files);
    }
}

-121--1577370-

Каков лучший уровень оптимизации g++ при построении цели отладки? Если требуется создать что-то, которое можно было бы отладить (например, g++, но, возможно, разделяет ответ с gcc), каков лучший уровень -O? Другими словами, при построении цели "debug", а не "...

Когда вы хотите создать что-то, что является настраиваемым (g++ конкретно, но, возможно, разделяет ответ с gcc), какой уровень -O является лучшим? Другими словами, при построении цели «debug» вместо цели «release».

При сравнении -O0 и -O1 онлайн-документы gcc немного эскизны ( здесь ). Моя интерпретация заключается в том, что -O1 позволяет только одну оптимизацию, которая даже может повлиять на отладку, которая является -fomit-frame-pointer. Но цитируя документ, он включен только в -O1 «где это не мешает отладке». Правильно ли я это интерпретирую?

Другой пост на этом сайте ( здесь ) рассказывает о -O2 конкретно, и ответ в основном «это работает, но вы получаете не по порядку выполнения». Которые, ИМО, могут варьироваться от раздражающих до разрушительных в зависимости от того, как плохо вещи прыгают вокруг.

33
задан Community 23 May 2017 в 10:30
поделиться