diff --git a/knowledge base/check performance of programs.md b/knowledge base/check performance of programs.md
new file mode 100644
index 0000000..41c6a8d
--- /dev/null
+++ b/knowledge base/check performance of programs.md
@@ -0,0 +1,43 @@
+# Check performance of programs
+
+1. [GNU time](#gnu-time)
+1. [Valgrind](#valgrind)
+1. [Further readings](#further-readings)
+ 1. [Sources](#sources)
+
+## GNU time
+
+```sh
+# On Mac OS X.
+brew install 'gnu-time'
+gtime -v pulumi preview
+```
+
+## Valgrind
+
+```sh
+valgrind --tool='massif' pulumi preview
+ms_print 'massif.out.12345'
+```
+
+## Further readings
+
+- [Valgrind]
+
+### Sources
+
+- [How can I measure the actual memory usage of an application or process?]
+
+
+
+
+
+[valgrind]: valgrind.md
+
+
+
+
+[how can i measure the actual memory usage of an application or process?]: https://stackoverflow.com/questions/131303/how-can-i-measure-the-actual-memory-usage-of-an-application-or-process
diff --git a/knowledge base/valgrind.md b/knowledge base/valgrind.md
new file mode 100644
index 0000000..bdc5a61
--- /dev/null
+++ b/knowledge base/valgrind.md
@@ -0,0 +1,71 @@
+# Valgrind
+
+TODO
+
+1. [TL;DR](#tldr)
+1. [Further readings](#further-readings)
+ 1. [Sources](#sources)
+
+## TL;DR
+
+
+ Setup
+
+```sh
+# Install from source.
+git clone 'https://sourceware.org/git/valgrind.git'
+cd 'valgrind'
+./autogen.sh
+./configure
+make
+make install
+
+# Install using packages.
+sudo zypper install 'valgrind'
+```
+
+
+
+
+ Usage
+
+```sh
+# Measure how much heap memory a program uses.
+valgrind --tool='massif' pulumi preview
+
+# Get summary statistics from dump taken with massif.
+ms_print 'massif.out.12345'
+```
+
+
+
+
+
+## Further readings
+
+- [Website]
+- [Main repository]
+
+### Sources
+
+
+
+
+
+
+
+[main repository]: https://sourceware.org/git/valgrind.git
+[website]: https://valgrind.org/
+
+