Что PyPy должен предложить по CPython, Jython и IronPython?

Вы вообще не используете new NavigationContext(...), вы полностью упускаете точку внедрения зависимости, если делаете это. Вместо этого вы должны внедрить контекст в класс, который в этом нуждается. Например, если вам нужно это прямо в вашем контроллере, это будет выглядеть примерно так:

public class FunkyController : Controller
{
    private readonly NavigationContext _nagivationContext;

    public FunkyController(NagivationContext nagivationContext)
    {
        //Context is injected into the constructor of the controller
        _nagivationContext = nagivationContext;
    }

    public int Add(TEntity item)
    {
        _nagivationContext.Set<TEntity>().Add(item);
        _nagivationContext.SaveChanges();
        return item.Id;
    }
}
28
задан dda 6 June 2013 в 06:42
поделиться

4 ответа

PyPy является действительно двумя проектами:

  • набор инструментальных средств компилятора интерпретатора, разрешающий Вам записать интерпретаторы в RPython (статическое подмножество Python) и иметь межплатформенные интерпретаторы, скомпилированные автономный, для JVM, для.NET (и т.д.)
  • реализация Python в RPython

, Эти два проекта допускают многие вещи.

  • Поддержание Python в Python намного легче, чем поддержание его в C
  • От единственной кодовой базы, можно генерировать интерпретаторы Python, которые работают на JVM.NET и автономный - вместо того, чтобы иметь несколько немного несовместимых реализаций
  • , Часть набора инструментальных средств компилятора включает экспериментальный генератор JIT (теперь в его пятом воплощении и начинающий работать действительно хорошо) - , цель состоит в том, чтобы JITed PyPy работал очень быстрее, чем CPython
  • , который намного легче экспериментировать с фундаментальными функциями языка - как удаление GIL, лучшей сборки "мусора", интегрируя без стека и так далее

, Таким образом, существует действительно много причин для PyPy для возбуждения, и это наконец начинает соответствовать всем своим обещаниям.

38
ответ дан fuzzyman 28 November 2019 в 03:28
поделиться

Самой важной функцией является, конечно, JIT-компилятор. В файлах CPython компилируются в байт-код (.pyc) или оптимизированный байт-код (.pyo) и затем интерпретируются. С PyPy они будут скомпилированы в собственный код. PyPy также включает Stackless Python патчи, включая он впечатляющий функции (tasklet сериализация, легкие потоки и т.д.)

4
ответ дан vartec 28 November 2019 в 03:28
поделиться

В случае, если, что Python получает реальное JIT, я думаю, что это будет с такой скоростью, как любая другая реализация.

преимущество состоит в том, что намного легче реализовать новые опции. Каждый видит это сегодня путем наблюдения библиотеки. Часто модули записаны в Python сначала и затем переведены в C.

0
ответ дан Georg Schölly 28 November 2019 в 03:28
поделиться

межплатформенная совместимость

Да

0
ответ дан OscarRyz 28 November 2019 в 03:28
поделиться
Другие вопросы по тегам:

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