/perf-book

The book "Performance Analysis and Tuning on Modern CPU"

Primary LanguageTeXCreative Commons Zero v1.0 UniversalCC0-1.0

Build PDF Windows Build PDF Linux

X (formerly Twitter) Follow GitHub Repo stars

perf-book

This is a repository with source files of the book "Performance Analysis and Tuning on Modern CPU" by Denis Bakhvalov, et al.

Second edition work in progress! Planned changes are outlined in the google document. The planned new table of contents is in new_toc.md.

My goal is to accumulate as much knowledge as possible from all the best experts in the industry. And of course, share that knowledge with you. Contributions are welcome.

Contributing

There are many ways how you can help.

  • You can author a section(s) on a topic you are an expert in. But let me know before you start.
  • Small improvements are welcome without prior approval, just open a new PR.
  • Feel free to propose ideas for new content.
  • Reviewers with all backgrounds are needed.

Check out the discussions page to start.

For examples on how to add images, table, code listings, etc, see how-to.md.

Building a book (pdf)

At the moment, building a PDF only works on Windows and Linux. MacOS requires building some components (e.g. pandoc-crossref from sources).

Requirements:

  • Python3. Install natsort module: pip install natsort.
  • pandoc - install version 2.9.
  • install pandoc filters: pip install pandoc-fignos pandoc-tablenos
  • install pandoc-crossref. This one requires manual installation. I just downloaded the binary from here and copied it to the same place where pandoc-fignos is.
  • MiKTeX - check Yes for automatic package installation

Run:

# Linux bash
python export_book.py && pdflatex book.tex && bibtex book && pdflatex book.tex && pdflatex book.tex

# Windows Powershell
function Run-Block-With-Error($block) {
    $ErrorActionPreference="Stop"
    Invoke-Command -ScriptBlock $block
}
Run-Block-With-Error {python.exe export_book.py; pdflatex book.tex; bibtex book; pdflatex book.tex; pdflatex book.tex}

As a result, book.pdf will be generated. The first compilation may be slow due to the installation of required packets.

License

Creative Commons Zero v1.0 Universal