In short, what is the difference between the efficiency and performance tags? Are they different enough to keep them separate or should one be a synonym of the other?

According to Wikipedia, efficiency is some measurable quantity depending on the context (e.g. scalability or efficiency of parallel execution). There is also the concepts of algorithmic efficiency and computer performance, so basically efficiency is a feature of an algorithm while performance is a feature of hardware. This was also probably the base for the distinction between "efficiency" and "performance" in this talk: Efficiency with Algorithms, Performance with Data Structures (relevant explanation starts at 10:37).

In practice however, algorithms and data structures have to be designed together and due to caches and similar architecture-specific features, they can be "efficient" or "performant" only with respect to some specific hardware architecture. So from the user's point of view it is very hard to choose just one of the tags, but most often both are applicable. Looking at the existing questions tagged with the "efficiency" and "performance" tags, the distinction seems very arbitrary so at this point I think they should be synonyms.

You must log in to answer this question.

Browse other questions tagged .