Встраивание [закрытых] функций

Разобрался:

Вам нужно нажать: https://www.googleapis.com/youtube/v3/playlistItems?part=snippet,contentDetails&playlistId=${PLAYLIST_ID}&key=${API_KEY}

Обратите внимание, что параметр детали равен snippet, contentDetails

См .: https: // developers.google.com/youtube/v3/docs/playlistItems#contentDetails

Возвраты:

enter image description here

9
задан nawfal 4 July 2014 в 06:20
поделиться

4 ответа

Каково это

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

Опасности

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

Встраивание в C#

В C# встраивание происходит на уровне JIT, на котором JIT-компилятор принимает решение. В настоящее время нет никакого механизма в C#, который можно явно сделать это. Если Вы хотите знать то, что JIT-компилятор делает затем, можно звонить: System.Reflection.MethodBase.GetCurrentMethod().Name во времени выполнения. Если Метод будет встроен, то он возвратит имя вызывающей стороны вместо этого.

В C# Вы не можете вынудить метод встроить, но можно вызвать метод не к. Если Вам действительно нужен доступ к определенному стеку вызовов, и необходимо удалить встраивание, можно использовать: MethodImplAttribute с MethodImplOptions.NoInlining. Кроме того, если метод будет объявлен как виртуальный затем, то он не будет также встроен JIT. Причина позади этого состоит в том, что заключительная цель вызова неизвестна.

Больше на встраивании

27
ответ дан 4 December 2019 в 07:35
поделиться

Для определения и обсуждения встраивания, посмотрите этот вопрос.

В C# Вы не должны давать команду компилятору или времени выполнения встраивать, потому что время выполнения сделает это автоматически.

P.S. Этот ответ также корректен для Java.

1
ответ дан 4 December 2019 в 07:35
поделиться

Встраивание состоит в том, когда вместо того, чтобы вызвать конкретную функцию, содержание функции сделано непосредственно на сайте вызова. Главная причина для того, чтобы сделать это состоит в том, что это удаляет издержки вызывания функции путем выполнения функционального содержания в callsite.

Это используется в качестве метода оптимизации. В случае C# это на самом деле зависит от механизма JIT CLR, чтобы сделать работу. Во времени выполнения, при компиляции метода, механизм JIT будет использовать эвристику, чтобы определить, является ли встроенная функция соответствующей и будет effictive оптимизацией. Если так, встроенное выполняется.

У Vance есть большая статья о том, что JIT рассматривает при встраивании: http://blogs.msdn.com/vancem/archive/2008/08/19/to-inline-or-not-to-inline-that-is-the-question.aspx

Нет никакого способа вызвать встроенное в C#. Язык не поддерживает эту конструкцию. Главным образом, потому что люди являются очень бедными судьями того, что должно быть оптимизировано. JITer является намного лучшим судьей.

1
ответ дан 4 December 2019 в 07:35
поделиться
Другие вопросы по тегам:

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