Skip to content

perf(response): reduce response initialization overhead#494

Merged
0x676e67 merged 2 commits intomainfrom
perf
Jan 16, 2026
Merged

perf(response): reduce response initialization overhead#494
0x676e67 merged 2 commits intomainfrom
perf

Conversation

@0x676e67
Copy link
Copy Markdown
Owner

No description provided.

@gemini-code-assist
Copy link
Copy Markdown
Contributor

Summary of Changes

Hello @0x676e67, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request introduces performance enhancements to the response handling logic by refactoring the core Response struct. The primary change involves consolidating HTTP response metadata into a single Parts struct, which significantly reduces the overhead during object initialization. This internal restructuring is complemented by updates to all property accessors, ensuring that the public API remains consistent while benefiting from the underlying optimizations. Additionally, the method for retrieving response body bytes has been modernized to use an asynchronous approach, aiming for more efficient non-blocking operations.

Highlights

  • Response Struct Refactoring: The Response struct has been significantly refactored to consolidate various HTTP response properties (like version, status, headers, extensions, etc.) into a single http::response::Parts struct. This simplifies the Response struct's definition and internal representation.
  • Optimized Initialization: The Response::new constructor has been streamlined. Instead of individually extracting and storing multiple fields, it now directly stores the http::response::Parts struct, which reduces the overhead associated with response object initialization.
  • Updated Property Accessors: All getters for response properties such as status, version, headers, content_length, local_addr, remote_addr, cookies, history, and tls_info have been updated. They now retrieve data from the consolidated parts field or through helper methods, ensuring backward compatibility for the public API.
  • Asynchronous Bytes Method: The bytes method has been converted to an async function. It now directly leverages the tokio runtime for execution and returns a PyBuffer, which is expected to improve performance and better integrate with asynchronous operations for retrieving the response body.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

gemini-code-assist[bot]

This comment was marked as off-topic.

@0x676e67 0x676e67 merged commit 790d958 into main Jan 16, 2026
31 checks passed
@0x676e67 0x676e67 deleted the perf branch January 16, 2026 13:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant