test-object, which all return the value true. The test compares the following statements:
TruthVal = true
TruthVal = function(Obj)
TruthVal = call procedure(Obj)
TruthVal = call method(Obj)
TruthVal = call procedure(Obj), with stable-for-dependent-compilation declared for the called procedure
TruthVal = call procedure(Obj), with stable-for-dependent-compilation and inlineable declared for the called procedure
| Call Type | Microseconds |
|---|---|
|
physically inline
|
1.2
|
|
function
|
15.2
|
|
procedure call
|
45.1
|
|
method call
|
56.1
|
|
procedure call, with stability
|
36.0
|
|
procedure call, with stability and inlineable
|
2.4
|
Function and procedure calls introduce a very significant penalty. Inline declarations offer marked performance improvement, while stability declarations offer a slight improvement.
stable-hierarchy, stable-for-dependent-compilations, have no discernible effect on method calling efficiency. Similarly, stability declarations have no effect on function calling efficiency.