Skip to main content

Optimize a function

Codeflash is essentially a function optimizer. When asked to optimize a function, Codeflash will analyze the function, any helper functions it calls, and the imports it uses. It will then generate multiple new versions of the function and its helper functions, that are optimized for efficiency and performance while being functionally equivalent to the original function.

Codeflash tests if a function is optimized by running the function and comparing the output of the new function to the original function. If the outputs match and the runtime of the new function is smaller, then the function is considered optimized. Codeflash works best on pure functions that don't have side effects. It can also optimize functions with side effects, but your mileage may vary.

How to optimize a function

To optimize a function, you can run the following command in your project:

codeflash --file path/to/your/file.py --function function_name

If you have installed the GitHub App to your repository, the above command will open a pull request with the optimized function. If you want to optimize a function locally, you can add a --no-pr argument as follows:

codeflash --file path/to/your/file.py --function function_name --no-pr

Optimizing class methods

To optimize a method method_name in a class ClassName, you can run the following command:

codeflash --file path/to/your/file.py --function ClassName.method_name