-
Notifications
You must be signed in to change notification settings - Fork 2k
Open
Labels
bugSomething isn't workingSomething isn't workingruleImplementing or modifying a lint ruleImplementing or modifying a lint rule
Description
Summary
Similar in spirit to #21890
Consider:
import timeit
def main1():
ret = []
for x in range(8):
for i in range(x):
ret.append(i)
def main2():
ret = []
for x in range(8):
ret.extend(range(x))
def main3():
ret = []
for x in range(8):
for i in range(x):
ret.append(str(i)) # PERF401 only complains about this
def main4():
ret = []
for x in range(8):
ret.extend(str(i) for i in range(x))
if __name__ == "__main__":
print(timeit.timeit(main1, number=10_000))
print(timeit.timeit(main2, number=10_000))
print(timeit.timeit(main3, number=10_000))
print(timeit.timeit(main4, number=10_000))λ python rf.py
0.007337332936003804
0.0059296670369803905
0.016938375076279044
0.036548584001138806
PERF401 wants to turn main3 into main4. This will make this code >2x slower.
PERF401 should want to turn main1 into main2, but doesn't.
Version
No response
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't workingruleImplementing or modifying a lint ruleImplementing or modifying a lint rule