I agree that these are unclear and perhaps redundant.
Skimming over the tags by name for those related to performance, I spot these:
It seems to me that they can be grouped along two axes: by topic (design, implementation, ergonomics, usage, &c.) and by breadth (general or specific).
runtime-performance is a general design tag about the quality of results of a compiler.
optimization is a general implementation tag about specific optimisations (to wit, compiler passes) meant to improve quality of results. It includes these as specific instances:
There seems to be no general implementation tag for factors related to the quality of implementation of a compiler, that is, its static performance.
- However, I think build-time would be a specific instance of that class.
runtime was less clear to me, so I looked at the questions.
It has two questions (q/2122, q/2121) using it in the attributive sense of “at runtime” (following the tag description). I think the tag could be removed from these.
There is also one question (q/287) with the noun sense of “a runtime”, which I think could be retagged with virtual-machine.
A complication with this way of organising things is that an interpreter could be treated as both a compiler and a virtual machine. However, at the moment the vast majority of interpreter questions are about general design and implementation considerations, and not directly about performance, so I will leave that for another time.