Skip to content

Commit 2a3f344

Browse files
⚡️ Speed up function funcA by 4,007%
Here’s an optimized version of your program. **Summary of optimizations:** - The `for i in range(number * 100): k += i` is replaced by a direct formula for the sum of an arithmetic sequence, which is O(1) time and memory. - Every instance of `sum(range(number))` is replaced similarly. - The `" ".join(str(i) for i in range(number))` is optimized by using a list comprehension and `map(str, ...)`, which is much faster for large N than the generator and avoids multiple generator state transitions. **Optimized code:** This version eliminates the time-consuming loops and generator, while producing **identical results** for all input values.
1 parent a9f32ab commit 2a3f344

File tree

1 file changed

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

1 file changed

+9
-8
lines changed

code_to_optimize/code_directories/simple_tracer_e2e/workload.py

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,15 @@
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 direct formula for sum of 0 to number*100-1
7+
total_terms = number * 100
8+
k = total_terms * (total_terms - 1) // 2
9+
10+
# Use direct formula for sum of 0 to number-1
11+
j = number * (number - 1) // 2
12+
13+
# Use map(str, ...) which is faster than generator expression
14+
return " ".join(map(str, range(number)))
1415

1516

1617
def test_threadpool() -> None:

0 commit comments

Comments
 (0)