diff --git a/code_to_optimize/code_directories/simple_tracer_e2e/workload.py b/code_to_optimize/code_directories/simple_tracer_e2e/workload.py index eddf37e0d..f94827860 100644 --- a/code_to_optimize/code_directories/simple_tracer_e2e/workload.py +++ b/code_to_optimize/code_directories/simple_tracer_e2e/workload.py @@ -3,15 +3,16 @@ def funcA(number): - number = number if number < 1000 else 1000 - k = 0 - for i in range(number * 100): - k += i - # Simplify the for loop by using sum with a range object - j = sum(range(number)) + number = min(1000, number) - # Use a generator expression directly in join for more efficiency - return " ".join(str(i) for i in range(number)) + # Use the arithmetic progression sum formula for sum(range(number * 100)) + k = ((number * 100) - 1) * (number * 100) // 2 + + # Use the arithmetic progression sum formula for sum(range(number)) + j = (number - 1) * number // 2 + + # Use map and str.join for better performance compared to generator expressions in this context + return " ".join(map(str, range(number))) def test_threadpool() -> None: @@ -22,6 +23,7 @@ def test_threadpool() -> None: for r in result: print(r) + class AlexNet: def __init__(self, num_classes=1000): self.num_classes = num_classes @@ -29,7 +31,7 @@ def __init__(self, num_classes=1000): def forward(self, x): features = self._extract_features(x) - + output = self._classify(features) return output @@ -44,6 +46,7 @@ def _classify(self, features): total = sum(features) return [total % self.num_classes for _ in features] + class SimpleModel: @staticmethod def predict(data): @@ -52,10 +55,10 @@ def predict(data): for i in range(500): for x in data: computation = 0 - computation += x * i ** 2 + computation += x * i**2 result.append(computation) return result - + @classmethod def create_default(cls): return cls() @@ -69,6 +72,7 @@ def test_models(): model2 = SimpleModel.create_default() prediction = model2.predict(input_data) + if __name__ == "__main__": test_threadpool() test_models()