O'Reilly logo

Think Julia by Allen B. Downey, Ben Lauwens

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Chapter 20. The Goodies: Base and Standard Library

Julia comes with batteries included. The Base module contains the most useful functions, types, and macros. These are directly available in Julia.

Julia also provides a large number of specialized modules in its standard library for dates, distributed computing, linear algebra, profiling, random numbers, and more. Functions, types, and macros defined in the standard library have to be imported before they can be used:

  • import Module imports the module, and Module.fn(x) calls the function fn.

  • using Module imports all exported Module functions, types, and macros.

Additional functionality can be added from a growing collection of packages.

This chapter is not intended as a replacement of the official Julia documentation. The aim is merely to give some examples to illustrate what is possible, without being exhaustive. Functions already introduced elsewhere are not included.

Measuring Performance

We have seen that some algorithms perform better than others. The fibonnaci implementation from “Memos” is a lot faster than the fib implementation from “One More Example”. The @time macro allows us to quantify the difference:

julia> fib(1)
1
julia> fibonacci(1)
1
julia> @time fib(40)
  0.567546 seconds (5 allocations: 176 bytes)
102334155
julia> @time fibonacci(40)
  0.000012 seconds (8 allocations: 1.547 KiB)
102334155

@time prints the time the function took to execute, the number of allocations, and the allocated memory before returning ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required