I have a fun job. So fun, in fact, that I've been tooling away on a small work-related programming project in my spare time. I enjoy programming, and this is an opportunity to create something useful and learn something along the way.
I call it Ruse (from "resource use"), and you use it to measure the time and memory a program will actually use as it runs. Specifically, it's made for jobs on compute clusters, rather than desktop software. Compute jobs can run for days or weeks, and use hundreds of GB of memory in the process.
Ruse measures memory in the same way that Slurm (the job scheduler we use at work) does, so you can directly use the results to estimate the amount of memory and time your jobs will need.
The initial version is done, and I've just released version 1.0. You'll find a tar package there that should be easy to build on any Linux machine. Just remember that this really is for profiling apps that run for hours at a time; you're not going to get very sensible results for any short-lived program.
If you do try it out, let me know. Any feedback will help make it better.