У меня может быть Действие <> или Func <> с параметрический усилитель?

Так как я искал еще некоторые всесторонние ответы, я решил исследовать проблему сам подробно. Сообщите мне, неправильно понял ли я что-нибудь.

Некоторая общая рекомендация должны использовать отдельный веб-сервер для обработки медиа. Отдельным я имею в виду веб-сервер, который не выполняет Django. Этот сервер может быть, например:

  • Lighttpd (Lighty)
  • Nginx (EngineX)
  • Или некоторый другой легкий сервер

Затем для Django, можно спуститься по различным путям. Вы можете также:

  • Подача Django через [1 128] Apache и:

    • mod_python

      Это - конюшня и рекомендовало/хорошо зарегистрированный путь. Недостатки: использование большая память.

    • mod_wsgi

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

    • mod_fastcgi

      При использовании FastCGI Вы делегируете обслуживание Django к другому процессу. Так как mod_python включает интерпретатор Python в каждый запрос, это использует большую память. Это - способ обойти ту проблему. Также существуют некоторые проблемы безопасности.

      то, Что Вы делаете, - то, что Вы запускаете свой сервер Django FastCGI в отдельном процессе, и затем настраивает апача через перезаписи для вызова этого процесса при необходимости.

Или Вы можете:

  • Django Подачи, не используя Apache, но с другим сервером, который поддерживает FastCGI исходно:

    (Документация упоминает, что можно сделать это, если у Вас нет Apache определенными потребностями. Я предполагаю, что причина должна состоять в том, чтобы сохранить память.)

    • Lighttpd

    Это - сервер, который выполняет YouTube. Это кажется быстрым и простым в использовании, однако я видел отчеты о memoryleaks.

    • nginx

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

Другая вещь, из-за ограничений в Python Ваш сервер должен работать в разветвленном режиме, не поточном.

, Таким образом, это - мое текущее исследование, но я хочу больше мнений и событий.

34
задан Orion Edwards 30 September 2009 в 00:47
поделиться

2 ответа

Action и Func специально не извлекают или не ссылаются на параметры. Однако они всего лишь делегаты.

Вы можете создать собственный тип делегата, который принимает выходной параметр, и при этом использовать его.

Например, работает следующее:

class Program
{
    static void OutFunc(out int a, out int b) { a = b = 0; }

    public delegate void OutAction<T1,T2>(out T1 a, out T2 b);

    static void Main(string[] args)
    {
        OutAction<int, int> action = OutFunc;
        int a = 3, b = 5;
        Console.WriteLine("{0}/{1}",a,b);
        action(out a, out b);
        Console.WriteLine("{0}/{1}", a, b);
        Console.ReadKey();
    }
}

Это распечатывает:

3/5
0/0
52
ответ дан 27 November 2019 в 16:55
поделиться

Нет, не со встроенными делегатами. out и ref являются специальными квалификаторами, и делегат должен быть настроен с ними явно, поскольку это совершенно разные стили вызова.

Однако, если вы определили своего собственного делегата, вы можете сделать это:

delegate void OutAction<T1, T2>(out T1 a, out T2 b);
2
ответ дан 27 November 2019 в 16:55
поделиться
Другие вопросы по тегам:

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