This is not really an answer because I'm also lost but I'd like to point out something that seems to be overlooked in these three ways to write "runtime", "run time" or "run-time".

I would risk saying that all three mean different things, that I believe should be applied in different cases:

    run time: this is how much time your program took to execute. If, on unix, you run time program, you get as output the program's run time (or its execution time). It doesn't sound right to me to refer to this as the program's runtime or run-time.

    run-time: this is something that happens during a program's execution, in contrast with load-time (when it is loaded) or compile-time (when it is being compiled). Note that like "run time", I venture that "compile time" is the time it takes to compile, and compile-time is something that happens during a program's compilation (such as compile-time optimizations --- note again that "compile time optimizations" would also be valid if I was referring to optimizations that shorten the time an application takes to be compiled, not optimizations to the application itself).

    runtime: this is what something is (e.g. "the Java runtime"). Again, it does not seem correct to me to say something like "My program is executed by the Java run time".