Как и когда.NET на самом деле компилирует код?

Если у Вас есть два объекта даты, можно просто вычесть их.

from datetime import date

d0 = date(2008, 8, 18)
d1 = date(2008, 9, 26)
delta = d1 - d0
print delta.days

соответствующий раздел документов: https://docs.python.org/library/datetime.html .

8
задан Matt 5 August 2009 в 12:01
поделиться

2 ответа

Checkout MVC Storefront на codeplex. Если вы погуглите, эта таблица просматривается, а затем производится соответствующий вызов адреса. При запуске ВСЕ записи для всех таблиц имеют адрес JIT-компилятора.

  • Когда выполняется вызов одного из таких методов, JIT вызывается вместо фактического метода и берет на себя управление. Затем JIT компилирует код CIL в реальный код сборки для соответствующей архитектуры.
  • После компиляции кода JIT переходит в таблицу векторов методов и заменяет адрес на адрес скомпилированного кода, так что каждый последующий вызов не long вызывает JIT.
  • Наконец, JIT обрабатывает выполнение скомпилированного кода.
  • Если вы вызываете другой метод, который еще не был скомпилирован, вернитесь к 4 ... и так далее ...
  • Я отправляю ответ здесь тоже, поскольку другой вопрос был не об этом ...

    При запуске ВСЕ записи для всех таблиц имеют адрес JIT-компилятора.
  • Когда выполняется вызов одного из таких методов, JIT вызывается вместо фактического метода и берет на себя управление. Затем JIT компилирует код CIL в фактический код сборки для соответствующей архитектуры.
  • После компиляции кода JIT переходит в таблицу векторов методов и заменяет адрес на адрес скомпилированного кода, так что каждый последующий вызов не long вызывает JIT.
  • Наконец, JIT обрабатывает выполнение скомпилированного кода.
  • Если вы вызываете другой метод, который еще не был скомпилирован, вернитесь к 4 ... и так далее ...
  • Я отправляю ответ здесь тоже, поскольку другой вопрос был не об этом ...

    При запуске ВСЕ записи для всех таблиц имеют адрес JIT-компилятора.
  • Когда выполняется вызов одного из таких методов, JIT вызывается вместо фактического метода и берет на себя управление. Затем JIT компилирует код CIL в реальный код сборки для соответствующей архитектуры.
  • После компиляции кода JIT переходит в таблицу векторов методов и заменяет адрес на адрес скомпилированного кода, так что каждый последующий вызов не long вызывает JIT.
  • Наконец, JIT обрабатывает выполнение скомпилированного кода.
  • Если вы вызываете другой метод, который еще не был скомпилирован, вернитесь к 4 ... и так далее ...
  • Я тоже отправляю ответ здесь, поскольку другой вопрос был не об этом ...

    JIT вызывается вместо фактического метода и берет на себя управление. Затем JIT компилирует код CIL в фактический код сборки для соответствующей архитектуры.
  • После компиляции кода JIT переходит в таблицу векторов методов и заменяет адрес на адрес скомпилированного кода, так что каждый последующий вызов не long вызывает JIT.
  • Наконец, JIT обрабатывает выполнение скомпилированного кода.
  • Если вы вызываете другой метод, который еще не был скомпилирован, вернитесь к 4 ... и так далее ...
  • Я отправляю ответ здесь тоже, поскольку другой вопрос был не об этом ...

    JIT вызывается вместо фактического метода и берет на себя управление. Затем JIT компилирует код CIL в фактический код сборки для соответствующей архитектуры.
  • После компиляции кода JIT переходит в таблицу векторов методов и заменяет адрес на адрес скомпилированного кода, так что каждый последующий вызов не long вызывает JIT.
  • Наконец, JIT обрабатывает выполнение скомпилированного кода.
  • Если вы вызываете другой метод, который еще не был скомпилирован, вернитесь к 4 ... и так далее ...
  • Я отправляю ответ здесь тоже, поскольку другой вопрос был не об этом ...

    24
    ответ дан 3 November 2019 в 14:03
    поделиться

    Он компилируется в IL во время компиляции. Магия Reflector заключается в том, что он «понимает» IL и преобразует его обратно в C # (или VB.NET или что-то еще. Загляните в меню «Параметры» в Reflector, и вы можете просмотреть сборку в любом формате, включая IL).

    В Reflector, вы действительно не видите свой исходный код. Вы видите перевод IL на C #. В большинстве случаев это будет очень похоже на то, что вы написали, но есть некоторые характерные признаки - например, найдите место, где вы реализовали автоматическое свойство :

    string MyProperty {get;set;}
    

    И вы увидите, что который на самом деле компилируется, что выглядит примерно так:

    public string MyProperty
    {
        [CompilerGenerated]
        get
        {
            return this.<MyProperty>k__BackingField;
        }
        [CompilerGenerated]
        set
        {
            this.<MyProperty>k__BackingField = value;
        }
    }
    
    4
    ответ дан 3 November 2019 в 14:03
    поделиться
    Другие вопросы по тегам:

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