Is there a significant difference between the tags performance and efficiency (which we should document then), or are they synonyms?
2 Answers
I tend to use “performance” to mean run time, whereas “efficiency” applies to any resource: CPU time, memory, power…
Since optimizing for efficiency is usually a compromise, I don't think efficiency makes sense as a tag. Use performance for run time efficiency, power-consumption for power efficiency, etc.
Since most questions tagged efficiency are about run time efficiency, we should manually retag the few that aren't, and then do a one-time merge efficiency into performance and remove the synonym. If efficiency creeps back in we should blacklist it.
-
$\begingroup$ I think "performance" has the same catch-all problem that "efficiency" has. I don't have a good alternative right now. In the algorithms world, [algorithm-engineering] may be a good tag capturing the intent of improving an algorithm (in whatever cost measure). $\endgroup$– Raphael ModAug 29, 2016 at 23:19
-
1$\begingroup$ @Raphael It may be community-dependent, but I wouldn't use “performance” for other measures of efficiency. I work on memory-constrained and power-constrained devices, and thus I tend to optimize for “memory consumption” and “power consumption” rather than for “performance”. $\endgroup$ Aug 29, 2016 at 23:27
-
$\begingroup$ I understand, it's just that the word is not connotated like that for me. My mind goes to performance of athletes, or artistic performances, or generally any measurable quality criterion. In the algorithms world, we hardly ever use the term "performance" (as opposed to "efficient"). Apparently it's more a computer-engineering/-systems thing? $\endgroup$– Raphael ModAug 29, 2016 at 23:29
-
1$\begingroup$ @Raphael I guess if you're a stickler for proper terminology then “efficiency” is making good use of resources whereas “performance” is in absolute terms. So if you use a slow CPU optimally then it's efficient but has bad performance, whereas if you waste cycles on a fast CPU it isn't efficient by definition but might have good performance. Hence algorithm design cares about efficiency whereas engineers designing a system care about performance for CPU time (if it completes in 10ms, never mind how), but about efficiency for power (because that translates into battery time or heat). $\endgroup$ Aug 29, 2016 at 23:33
-
$\begingroup$ Right. So ... where does that leave us? Both tags make sense, but are maybe awful anyway and should be replaced by more specific ones? We do have program-optimization, for instance. $\endgroup$– Raphael ModAug 29, 2016 at 23:35
-
$\begingroup$ We also use performance for memory usage, disk usage, latency, ... $\endgroup$– KavehOct 8, 2016 at 20:12
Skimming over a subset of the titles of questions tagged with performance, my impression is that the tag is either obsolete or redundant, doesn't really fit, or is used as a synonym of the more established tag efficiency.
Therefore, I move to create synonym efficiency ← performance.