--- title: "Optimize a Single Function" description: "Target and optimize individual functions for maximum performance gains" icon: "bullseye" sidebarTitle: "Optimize Single Function" keywords: [ "function optimization", "single function", "class methods", "performance", "targeted optimization", "javascript", "typescript", "python", "java", ] --- 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, run the following command in your project: ```bash codeflash --file path/to/your/file.py --function function_name ``` ```bash codeflash --file path/to/your/file.js --function functionName ``` ```bash codeflash --file path/to/your/file.ts --function functionName ``` ```bash codeflash --file src/main/java/com/example/Utils.java --function methodName ``` 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, add a `--no-pr` argument: ```bash codeflash --file path/to/your/file.py --function function_name --no-pr ``` ```bash codeflash --file path/to/your/file.ts --function functionName --no-pr ``` ```bash codeflash --file src/main/java/com/example/Utils.java --function methodName --no-pr ``` ### Optimizing class methods To optimize a method `methodName` in a class `ClassName`: ```bash codeflash --file path/to/your/file.py --function ClassName.method_name ``` ```bash codeflash --file path/to/your/file.ts --function ClassName.methodName ``` ```bash codeflash --file src/main/java/com/example/Utils.java --function methodName ``` In Java, use just the method name — no `ClassName.` prefix is needed. Codeflash discovers the method by name within the specified file.