Quote Originally Posted by arthurprs
Inline those, not only faster, but smaller binary
While the above statement might be true, this is usually wrong. The entire code of an inline routine is placed wherever the routine is called, and if you have sufficiently complex routines, this results in bigger code, not smaller.

Inline routines are inline throughout the entire program, not only in the units they're contained within, this is at least true for FPC (version 2.0.2 or greater). However, this depends on the compiler, which may decide that some routines cannot be inlined and therefore will be executed as a regular routine call.

Depending on the nature of a routine, a inline routine may be up to 2x faster than a non-inline routine (because the overhead of calling the routine is non-existent). This can be verified by a simple check, write a inline routine in a unit that performs some mathematical operation (e.g. normalization of a vector) and call it in a program a lot of times (1,000,000 or more). Measure times when you call a inlined and a non-inlined version of the routine. The differences can be seen.