In Julia, the function is the primary unit of code structure. Idiomatic Julia code consists of many small functions that are defined with different types of arguments. In general, the overhead of a function call in Julia is very small, and, with type specialization, the compiled version of the function is very efficient. In this chapter, we will look at some of the techniques that Julia uses to make very fast function calls. We will also look at some limitations that are worth keeping in mind for the fastest code. Finally, we will look at some situations where moving code out of functions and into other structures, such as macros and staged functions, allows code to be faster and more efficient.
The following topics are covered in this chapter:
- Using globals
- Inlining
- Closures and anonymous functions
- Using macros for performance
- Using generated functions...