⚡️ Speed up method LLMConfigRegistry.get_model_names by 5%
#163
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
📄 5% (0.05x) speedup for
LLMConfigRegistry.get_model_namesinskyvern/forge/sdk/api/llm/config_registry.py⏱️ Runtime :
40.5 microseconds→38.6 microseconds(best of250runs)📝 Explanation and details
The optimization removes the redundant
.keys()method call when converting the dictionary to a list.What changed:
list(cls._configs.keys())→list(cls._configs)Why this is faster:
When iterating over a dictionary in Python, the default iteration is over its keys. Calling
list(dict)directly creates a list from the dictionary's keys iterator, whilelist(dict.keys())first creates a dictionary view object and then converts it to a list, adding an unnecessary intermediate step.Performance impact:
Best performance gains are seen in:
This is a micro-optimization that maintains identical functionality while reducing the overhead of an unnecessary method call and intermediate object creation. Since
get_model_names()appears to be a utility method that could be called frequently when retrieving available model configurations, even small per-call improvements can compound meaningfully.✅ Correctness verification report:
🌀 Generated Regression Tests and Runtime
To edit these changes
git checkout codeflash/optimize-LLMConfigRegistry.get_model_names-mjav5q1jand push.