# Time limit exceeded and performance: what's the difference?

We currently have two tags that have quite a large amount of overlap in their definitions:

• Performance is a subset of Optimization: performance is the goal when you want the execution time of your program or routine to be optimal.

• When the code scales so poorly in the face of large inputs that it cannot complete in a reasonable amount of time, use this instead of the [performance] tag.

And so is simple. If you want to increase the performance of the program then you tag it with this.

However, if it fits then you need to tag it with that instead. Which is when:

• "When the code scales so poorly in the face of large inputs"

We don't really know how large 'large' is. And so Counting ways to fit bottles in crates which has an input of $n=30,k=20,K_i=i$. Fits in this tag.

• "cannot complete in a reasonable amount of time"

We have no clue what the time limit is, or even if it changes. And so this mostly comes down to wanting better performance.

• "use this instead of the [performance] tag"

Since the overlap here seams to be overly large, it seems we want to tag all questions with rather than .

And so how should we deal with these tags? What's the difference? Should they be synonyms, or something else?

• To be honest, both are meta-tags of the same kind as the old [naming] and other tags that describe an area of concern. [time-limit-exceeded] describes performance (likely algorithmic) in the context of an online judge or other online coding challenge à la Project Euler. – Mathieu Guindon Jun 15 '17 at 23:15
• @Mat'sMug But it's not limited to coding challenges either. Take the last 7 TLE questions, half of them aren't challenges, and it's regulars that are tending to add the tag... – Peilonrayz Jun 15 '17 at 23:29
• Eh, I'd just burn them both. Wouldn't be the first meta-tags to meet Trognor. – Mathieu Guindon Jun 15 '17 at 23:30
• @Mat'sMug Fair, do you mind posting that as an answer, so users can vote for/against either clean-up (Jamal's answer) or burnate? – Peilonrayz Jun 15 '17 at 23:38
• Maybe later, busy right now ;-) – Mathieu Guindon Jun 15 '17 at 23:39
• @Mat'sMug Gahh, as am I, ): I'll do it in the morning if someone else hasn't. :) Thanks – Peilonrayz Jun 15 '17 at 23:41

Basically, is for a need, whereas is for a want.

Yes, there are times when both apply, but even then, a question should only use the one that fits best. It's probably most likely that will be used with a programming challenge, whereas would be used elsewhere.

That said, I think they should stay separate (maybe even burninated), and we could clean up both tags if needed. We could also tweak the wikis for a bit more clarity regarding usage.

• It'd probably be one hell of a long cleanup. One question however, say you have a script that takes a day to run, and all works fine, but you want it to be faster, which do you think that is, a need or a want? – Peilonrayz Jun 15 '17 at 23:36
• Well, you did just say "want." ;) I'd still consider it performance, though. – Jamal Jun 15 '17 at 23:41
• Doh! Thanks for your insight, :) – Peilonrayz Jun 15 '17 at 23:43
• As for the cleanup, we can just have a CM wipe them out. – Jamal Jun 15 '17 at 23:44
• I personally like seeing either of them, so I'd vote for a cleanup and against a burnate... – Peilonrayz Jun 15 '17 at 23:52
• Time-limit-exceeded is also more commonly used with the tag challenge. Where one needs respect some kind of maximum run-time duration in seconds – Bruno Costa Jun 16 '17 at 0:56
• I really like the time-limit-exceeded because you get basically only code challenges which are working but too slow to pass. The performance can burn though, basically all questions would be eligible for that. Would be nice to see how many questions have both compared to each one. – Graipher Jun 16 '17 at 16:14
• I can get behind just burninating performance. It's another leftover "meta" tag that we somehow kept, which is also currently synonymized with optimization. I've already cleaned out all the locked questions (which impedes burnination), so it's good to go(ne). – Jamal Jun 16 '17 at 22:07

This tag indicates that the OP that made the question seeks answers that address performance issues with the code.

Do not delete either, I would rather create a synonym with .

I admit when I first saw the I was intrigued. Like I said in the comments to the answer of @Jamal this tag is mostly used along with .

If we take a look at the question count per tag is as follows (data taken in moment of writing this answer)

time-limit-exceeded - 484

So about 50% of the questions where the are applied are in fact questions.

I can't tell if making a distinction between and is important or not. However I can at least tell that a question containing should also contain .

Hence my previous suggestion of creating a synonym. The benefit in doing so is there will be no ambiguity whatsoever when using each tag.

• Thank you for this answer, :) I whole heartedly agree with you, on wanting them to stay, and making them synonyms. I'm not sure I agree with having both on a single question, say you have a Python question, I don't really want to see 'python python-3.x performance time-limit-exceeded', as yeah, there should probably be another tag there. Also you may be interested in Jamal's request to burninate them :) – Peilonrayz Jun 18 '17 at 21:00
• Minor point, but: 50% of [time-limit-exceeded] are known to be [programming-challenge] questions. I haven't looked through them to verify, but at a quick guess, the majority of the rest probably are actually programming challenge questions, just without the tag to indicate that. – Jerry Coffin Jun 20 '17 at 15:02