An Entity of Type: software, from Named Graph: http://dbpedia.org, within Data Space: dbpedia.org

In computing, inline expansion, or inlining, is a manual or compiler optimization that replaces a function call site with the body of the called function. Inline expansion is similar to macro expansion, but occurs during compilation, without changing the source code (the text), while macro expansion occurs prior to compilation, and results in different text that is then processed by the compiler.

Property Value
dbo:abstract
  • Die Inline-Ersetzung ist eine Optimierungsmethode von Compilern zur Steigerung der Ausführungsgeschwindigkeit eines Computerprogramms. Dabei wird der Code der aufzurufenden Funktion an Stelle des Aufrufs kopiert. Das reduziert den Mehraufwand für den Aufruf (Sichern der Register, Vorbereiten des Stacks), verbessert die Lokalität und weiterhin kann bei der Optimierung der Code beider Funktionen gemeinsam berücksichtigt werden. (de)
  • In computing, inline expansion, or inlining, is a manual or compiler optimization that replaces a function call site with the body of the called function. Inline expansion is similar to macro expansion, but occurs during compilation, without changing the source code (the text), while macro expansion occurs prior to compilation, and results in different text that is then processed by the compiler. Inlining is an important optimization, but has complicated effects on performance. As a rule of thumb, some inlining will improve speed at very minor cost of space, but excess inlining will hurt speed, due to inlined code consuming too much of the instruction cache, and also cost significant space. A survey of the modest academic literature on inlining from the 1980s and 1990s is given in Peyton Jones & Marlow 1999. (en)
  • En informatique, l'extension inline, ou inlining, est une optimisation d'un compilateur qui remplace un appel de fonction par le code de cette fonction. Cette optimisation vise à réduire le temps d'exécution ainsi que la consommation mémoire. Toutefois, l'extension inline peut augmenter la taille du programme (par la répétition du code d'une fonction). Certains langages (par exemple le C ou le C++) ont un mot clé inline attachable à la définition d'une fonction. Ce mot clé indique au compilateur qu'il devrait essayer d'étendre cette fonction. Le compilateur pourra ensuite utiliser plusieurs heuristiques pour décider quelle fonction doit être étendue inline. (fr)
  • 컴퓨팅에서 인라인 확장(inline expansion) 또는 인라이닝(inlining)은 함수를 함수라는 이름의 몸체의 로 대체하는 수동 또는 컴파일러 최적화 기법이다. 인라인 확장은 매크로 확장과 비슷하지만 소스 코드의 변경 없이 컴파일 중에 발생하는 반면, 매크로 확장은 컴파일 전에 발생하며 컴파일러에 의해 처리되는 텍스트 결과물이 다르다. 인라이닝은 중요한 최적화이지만 성능에 복잡한 효력을 발휘한다. 에 의거하여 일부 인라이닝은 매우 사소한 공간적 비용으로 속도를 개선시키지만 과도한 인라이닝은 인라인된 코드에 의해 함수 캐시를 상당 부분 소비하기 때문에 속도가 감소되며 상당한 공간 비용이 발생한다. 인라인에 관한 한정된 학술 논문 조사는 Jones & Marlow 1999를 통해 이루어졌다. (ko)
  • インライン展開(インラインてんかい、英: inline expansion または 英: inlining)とは、コンパイラによる最適化手法の1つで、関数を呼び出す側に呼び出される関数のコードを展開し、関数への制御転送をしないようにする手法。これにより関数呼び出しに伴うオーバーヘッドを削減する。特に小さくて頻繁に呼ばれる関数では効果的であり、呼び出し側にそのコードを展開することで定数畳み込みなどのさらなる最適化を施せる可能性が生じる。問題点はバイナリコードが一般に肥大化する結果を招く点であり、参照の局所性を損なうほどだったり、リソースの限界を超えると性能がかえって悪化することになる。 関数型言語の世界では、インライン展開をβ変換とも呼び、関数型言語の理論的基盤となっているラムダ計算の用語としてよく使われる。 (ja)
  • В вычислительной технике встраивание функций (англ. Inlining) — способ оптимизации, при котором вызов функции заменяется непосредственно её телом. Встраивание функций аналогично по сути подстановке из макроса, но в отличие от неё не изменяет исходный код и происходит во время компиляции, в то время как макросы изменяют исходный код перед компиляцией. Встраивание функций — это важная оптимизация, однако оказываемый эффект на производительность может быть различным. Как правило, некоторое количество встраиваний помогает улучшить быстродействие при очень незначительных затратах пространства, но избыточность использования может замедлить программу из-за того, что встроенный код станет потреблять слишком много кэша инструкций, а также займёт значительное количество пространства. В книге Jones & Marlow 1999 года приведён обзор академической литературы 1980-х и 1990-х годов по встраиванию функций. (ru)
  • 内联展开(或称内联,下文或交替使用)是一种将函数体直接展开到的一种优化技术。它可以由手工指定(如inline关键字),或者经由自动完成。内联展开类似于,区别在于内联展开在编译时完成,而宏展开则可能在(如C/C++)、编译时(如Scheme)、运行时(如Scheme)时完成。 内联是一种重要的优化技术。内联的好处主要在于消除函数的调用开销(压栈,保护/恢复现场),但内联展开对于性能的提升不能一概而论,它可能导致生成的代码体积膨胀,并且影响指令缓存的命中率。有研究表明函数内联展开在缓存小的时候能提升性能,缓存较大的时候性能有可能下降。 除此之外,内联展开会引入大量冗余代码,需要通过一系列编译优化步骤进行缩减。比如一个记录(或理解为结构体)中的值是不变的,那么可以将其值直接替换到引用处;逻辑上不被使用到的分支代码或者变量,会被自动消除掉;逻辑上不可能进入的分支也可以消除掉。通过这些优化可以极大缩减冗余的代码,使得程序编译后获得较为紧凑的体量。 (zh)
dbo:wikiPageExternalLink
dbo:wikiPageID
  • 216884 (xsd:integer)
dbo:wikiPageLength
  • 26244 (xsd:nonNegativeInteger)
dbo:wikiPageRevisionID
  • 1092209597 (xsd:integer)
dbo:wikiPageWikiLink
dbp:wikiPageUsesTemplate
dcterms:subject
gold:hypernym
rdf:type
rdfs:comment
  • Die Inline-Ersetzung ist eine Optimierungsmethode von Compilern zur Steigerung der Ausführungsgeschwindigkeit eines Computerprogramms. Dabei wird der Code der aufzurufenden Funktion an Stelle des Aufrufs kopiert. Das reduziert den Mehraufwand für den Aufruf (Sichern der Register, Vorbereiten des Stacks), verbessert die Lokalität und weiterhin kann bei der Optimierung der Code beider Funktionen gemeinsam berücksichtigt werden. (de)
  • 컴퓨팅에서 인라인 확장(inline expansion) 또는 인라이닝(inlining)은 함수를 함수라는 이름의 몸체의 로 대체하는 수동 또는 컴파일러 최적화 기법이다. 인라인 확장은 매크로 확장과 비슷하지만 소스 코드의 변경 없이 컴파일 중에 발생하는 반면, 매크로 확장은 컴파일 전에 발생하며 컴파일러에 의해 처리되는 텍스트 결과물이 다르다. 인라이닝은 중요한 최적화이지만 성능에 복잡한 효력을 발휘한다. 에 의거하여 일부 인라이닝은 매우 사소한 공간적 비용으로 속도를 개선시키지만 과도한 인라이닝은 인라인된 코드에 의해 함수 캐시를 상당 부분 소비하기 때문에 속도가 감소되며 상당한 공간 비용이 발생한다. 인라인에 관한 한정된 학술 논문 조사는 Jones & Marlow 1999를 통해 이루어졌다. (ko)
  • インライン展開(インラインてんかい、英: inline expansion または 英: inlining)とは、コンパイラによる最適化手法の1つで、関数を呼び出す側に呼び出される関数のコードを展開し、関数への制御転送をしないようにする手法。これにより関数呼び出しに伴うオーバーヘッドを削減する。特に小さくて頻繁に呼ばれる関数では効果的であり、呼び出し側にそのコードを展開することで定数畳み込みなどのさらなる最適化を施せる可能性が生じる。問題点はバイナリコードが一般に肥大化する結果を招く点であり、参照の局所性を損なうほどだったり、リソースの限界を超えると性能がかえって悪化することになる。 関数型言語の世界では、インライン展開をβ変換とも呼び、関数型言語の理論的基盤となっているラムダ計算の用語としてよく使われる。 (ja)
  • 内联展开(或称内联,下文或交替使用)是一种将函数体直接展开到的一种优化技术。它可以由手工指定(如inline关键字),或者经由自动完成。内联展开类似于,区别在于内联展开在编译时完成,而宏展开则可能在(如C/C++)、编译时(如Scheme)、运行时(如Scheme)时完成。 内联是一种重要的优化技术。内联的好处主要在于消除函数的调用开销(压栈,保护/恢复现场),但内联展开对于性能的提升不能一概而论,它可能导致生成的代码体积膨胀,并且影响指令缓存的命中率。有研究表明函数内联展开在缓存小的时候能提升性能,缓存较大的时候性能有可能下降。 除此之外,内联展开会引入大量冗余代码,需要通过一系列编译优化步骤进行缩减。比如一个记录(或理解为结构体)中的值是不变的,那么可以将其值直接替换到引用处;逻辑上不被使用到的分支代码或者变量,会被自动消除掉;逻辑上不可能进入的分支也可以消除掉。通过这些优化可以极大缩减冗余的代码,使得程序编译后获得较为紧凑的体量。 (zh)
  • In computing, inline expansion, or inlining, is a manual or compiler optimization that replaces a function call site with the body of the called function. Inline expansion is similar to macro expansion, but occurs during compilation, without changing the source code (the text), while macro expansion occurs prior to compilation, and results in different text that is then processed by the compiler. (en)
  • En informatique, l'extension inline, ou inlining, est une optimisation d'un compilateur qui remplace un appel de fonction par le code de cette fonction. Cette optimisation vise à réduire le temps d'exécution ainsi que la consommation mémoire. Toutefois, l'extension inline peut augmenter la taille du programme (par la répétition du code d'une fonction). (fr)
  • В вычислительной технике встраивание функций (англ. Inlining) — способ оптимизации, при котором вызов функции заменяется непосредственно её телом. Встраивание функций аналогично по сути подстановке из макроса, но в отличие от неё не изменяет исходный код и происходит во время компиляции, в то время как макросы изменяют исходный код перед компиляцией. (ru)
rdfs:label
  • Inline-Ersetzung (de)
  • Inline expansion (en)
  • Extension inline (fr)
  • 인라인 확장 (ko)
  • インライン展開 (ja)
  • Встраивание функций (ru)
  • 内联展开 (zh)
owl:sameAs
prov:wasDerivedFrom
foaf:isPrimaryTopicOf
is dbo:wikiPageDisambiguates of
is dbo:wikiPageRedirects of
is dbo:wikiPageWikiLink of
is rdfs:seeAlso of
is foaf:primaryTopic of
Powered by OpenLink Virtuoso    This material is Open Knowledge     W3C Semantic Web Technology     This material is Open Knowledge    Valid XHTML + RDFa
This content was extracted from Wikipedia and is licensed under the Creative Commons Attribution-ShareAlike 3.0 Unported License