
LISP:
Beating C
Didier Verna
Introduction
Experiments
The case of C
The case of
LISP
Type inference
Conclusion
Comparative results
In terms of behavior
= Plain 2D implementation much slower (2.8x ⇒ 4.5x)
= Linear access faster (30 times)
Same reasons, same behavior. . .
= Optimized code faster in linear case, irrelevant in
pseudo-random access
= Gain more important in LISP (3x ⇒ 5x)
= Gain more important on floating point numbers
⇒ In LISP, safety is costly
= Inlining negligible
= No “Constant Integer Optimization”
= Negative impact on performance (-15%), if any
⇒ Inlining still a “hot” topic (register allocation policies ?)
12/20