Inline
Inline - słowo kluczowe języka Delphi dla .NET
W Delphi dla .NET istnieje możliwość wplatania funkcji i procedur. Polega to na opatrzeniu funkcji/procedury słowem kluczowym Inline ? np.:
W powyższym przykładzie procedura Foo nie jest wywoływana, jej kod jest kopiowany do miejsca wywołania. Można powiedzieć, że kompilator zastępuje powyższy kod na następujący:
W niektórych przypadkach pozwala to na zwiększenie wydajności aplikacji, lecz zwiększa się przez to rozmiar aplikacji wykonywalnej. Dobrym rozwiązaniem będzie umieszczenie w kodzie programu dyrektywy kompilatora:
{$INLINE AUTO}
Dzięki temu kompilator sam oceni, czy należy wplatać daną procedurę/funkcję, czy też nie.
Zobacz też:
W Delphi dla .NET istnieje możliwość wplatania funkcji i procedur. Polega to na opatrzeniu funkcji/procedury słowem kluczowym Inline ? np.:
W powyższym przykładzie procedura Foo nie jest wywoływana, jej kod jest kopiowany do miejsca wywołania. Można powiedzieć, że kompilator zastępuje powyższy kod na następujący:
W niektórych przypadkach pozwala to na zwiększenie wydajności aplikacji, lecz zwiększa się przez to rozmiar aplikacji wykonywalnej. Dobrym rozwiązaniem będzie umieszczenie w kodzie programu dyrektywy kompilatora:
{$INLINE AUTO}
Dzięki temu kompilator sam oceni, czy należy wplatać daną procedurę/funkcję, czy też nie.
Zobacz też:



"The Delphi compiler allows functions and procedures to be tagged with the inline directive to improve performance. If the function or procedure meets certain criteria, the compiler will insert code directly, rather than generating a call. Inlining is a performance optimization that can result in faster code, but at the expense of space. Inlining always causes the compiler to produce a larger binary file. The inline directive is used in function and procedure declarations and definitions, like other directives.
...
The inline directive is a suggestion to the compiler. There is no guarantee the compiler will inline a particular routine, as there are a number of circumstances where inlining cannot be done. The following list shows the conditions under which inlining does or does not occur:
..."
Robilem testy i dziala dla funkcji/procedur globalnych oraz metod (klasy), takze tych zawierajacych petle for..do (z while/repeat nie dziala) - w helphi jest wiecej opisane
Testowane na: Turbo Delphi 2006 Pro [Win32]
Ten artykuł można przemianować na ?inline (.NET)? i napisać o ?historycznym? inline
// można by też napisać o tym w dziale TP
Moze warto by bylo wiec dopisac cos o tym?