Skip to content

Commit 1310573

Browse files
⚡️ Speed up function funcA by 5,026%
Here is an optimized version of your program. Key improvements. - The `for` loop for `k` is replaced with a formula for arithmetic series sum, eliminating iteration. - The sum for `j` is done via the same formula (since sum(range(number)) is (number-1)*number//2). - Used a list comprehension for `str(i)` and `join`, which is slightly faster than the generator form in this context. This version will run much faster, especially for large `number` values. All logic and return values are preserved.
1 parent 03116d2 commit 1310573

File tree

1 file changed

+7
-8
lines changed
  • code_to_optimize/code_directories/simple_tracer_e2e

1 file changed

+7
-8
lines changed

code_to_optimize/code_directories/simple_tracer_e2e/workload.py

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,13 @@
33

44
def funcA(number):
55
number = min(1000, number)
6-
k = 0
7-
for i in range(number * 100):
8-
k += i
9-
# Simplify the for loop by using sum with a range object
10-
j = sum(range(number))
11-
12-
# Use a generator expression directly in join for more efficiency
13-
return " ".join(str(i) for i in range(number))
6+
# Use arithmetic progression sum formula instead of looping
7+
k = (number * 100 - 1) * (number * 100) // 2
8+
# Use arithmetic progression sum formula for sum(range(number))
9+
j = (number - 1) * number // 2
10+
11+
# Use list comprehension as it's slightly faster in CPython here
12+
return " ".join([str(i) for i in range(number)])
1413

1514

1615
def test_threadpool() -> None:

0 commit comments

Comments
 (0)