⚡️ Speed up method IndexResourceAsyncio.has by 8%
#26
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.
📄 8% (0.08x) speedup for
IndexResourceAsyncio.hasinpinecone/db_control/resources/asyncio/index.py⏱️ Runtime :
20.3 microseconds→18.8 microseconds(best of43runs)📝 Explanation and details
The optimization replaces the
hasmethod's approach from usingavailable_indexes.names()to directly iterating overavailable_indexes.indexes.Key Change:
if name in available_indexes.names()- creates an intermediate list of all index names via list comprehension, then performs membership checkfor index in available_indexes.indexes: if index.name == name: return True- directly iterates over indexes and compares namesWhy This Is Faster:
names()method builds a complete list[i.name for i in self.indexes]regardless of where the target name appearsTrueimmediately upon finding the first match, avoiding unnecessary iterationsPerformance Characteristics:
The 8% runtime improvement (20.3μs → 18.8μs) comes primarily from avoiding the list comprehension overhead in
names(), while maintaining identical async behavior and correctness.✅ Correctness verification report:
🌀 Generated Regression Tests and Runtime
To edit these changes
git checkout codeflash/optimize-IndexResourceAsyncio.has-mh9qsdwtand push.