{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Continuous Integration\n", "\n", "## Test servers\n", "\n", "Goal: \n", "\n", "1. run tests nightly\n", "2. run tests after each commit to github (or other)\n", "3. run tests on different platforms\n", "\n", "Various groups run servers that can be used to do this automatically." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Memory and profiling\n", "\n", "For compiled languages (C, C++, Fortran):\n", "* Checking for memory leaks with [valgrind](http://valgrind.org/):\n", " `valgrind --leak-check=full program`\n", "* Checking cache hits and cache misses with\n", " [cachegrind](http://valgrind.org/docs/manual/cg-manual.html):\n", " `valgrind --tool=cachegrind program`\n", "* Profiling the code with [callgrind](http://valgrind.org/docs/manual/cl-manual.html):\n", " `valgrind --tool=callgrind program`" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "* Python: [profile](http://docs.python.org/2/library/profile.html) with [runsnake](http://www.vrplumber.com/programming/runsnakerun/)\n", "* R: [Rprof](http://stat.ethz.ch/R-manual/R-devel/library/utils/html/Rprof.html)" ] } ], "metadata": { "jekyll": { "display_name": "Continuous Integration" }, "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.8.13" } }, "nbformat": 4, "nbformat_minor": 1 }