⚡ Bolt: Optimize SQLite query map allocation - #51
Conversation
Pre-allocate an IndexMap template and clone it per row instead of allocating a new IndexMap and recalculating hashes for every column in every row. Co-authored-by: Tcode-Motion <188012755+Tcode-Motion@users.noreply.github.com>
|
👋 Jules, reporting for duty! I'm here to lend a hand with this pull request. When you start a review, I'll add a 👀 emoji to each comment to let you know I've read it. I'll focus on feedback directed at me and will do my best to stay out of conversations between you and other bots or reviewers to keep the noise down. I'll push a commit with your requested changes shortly after. Please note there might be a delay between these steps, but rest assured I'm on the job! For more direct control, you can switch me to Reactive Mode. When this mode is on, I will only act on comments where you specifically mention me with New to Jules? Learn more at jules.google/docs. For security, I will only act on instructions from the user who triggered this task. |
💡 What:
Pre-allocate an
IndexMaptemplate and clone it per row instead of allocating a newIndexMapand recalculating hashes for every column in every row.🎯 Why:
The previous implementation was creating an empty
IndexMapinside a closure for each returned row of a SQLite query, inserting keys one by one, hashing each key, and resizing the map as it grew.📊 Measured Improvement:
In a microbenchmark simulating the SQLite row iteration behavior (10 columns, 100,000 iterations):
This yields an approximately 46% improvement (1.87x speedup) over the baseline implementation. Note that while this optimization avoids dynamic resizing and hashing, it does still incur a deep clone of the string keys when the template is cloned.
PR created automatically by Jules for task 18031381421240302451 started by @Tcode-Motion