Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

407
Visualizações
¿Por qué el tamaño del bloque para las lecturas de Python httplib está codificado como 8192 bytes?

Estoy buscando hacer una descarga de transmisión rápida -> cargar para mover archivos grandes a través de HTTP de un servidor a otro.

Durante esto, me di cuenta de que httplib, que es utilizado por urllib3 y, por lo tanto, también solicita, parece codificar cuánto obtiene de una secuencia a la vez a 8192 bytes.

https://github.com/python/cpython/blob/28453feaa8d88bbcbf6d834b1d5ca396d17265f2/Lib/http/client.py#L970

¿Por qué es esto? ¿Cuál es el beneficio de 8192 sobre otros tamaños?

over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

Por lo que encontré, el tamaño del bloque debe ser el tamaño de la página de los recursos, pero dado que el tamaño de la página solo está disponible en UNIX, esto se codificó en 8192 para que todos los demás sistemas, especialmente Windows, no se bloqueen en esto. De lo contrario, no hay otra razón para codificarlo.

Fuente: https://bugs.python.org/issue21790

over 4 years ago · Santiago Trujillo Relatório

0

servidor web Nginx

Esto es de nginx

 Syntax: client_body_buffer_size size; Default: client_body_buffer_size 8k|16k;

Establece el tamaño del búfer para leer el cuerpo de la solicitud del cliente. En caso de que el cuerpo de la solicitud sea más grande que el búfer, todo el cuerpo o solo una parte se escribe en un archivo temporal. De forma predeterminada, el tamaño del búfer es igual a dos páginas de memoria. Esto es 8K en x86, otras plataformas de 32 bits y x86-64. Suele ser 16K en otras plataformas de 64 bits

Servidor Web Apache

 ProxyIOBufferSize Directive Description: Determine size of internal data throughput buffer Syntax: ProxyIOBufferSize bytes Default: ProxyIOBufferSize 8192 Context: server config, virtual host Status: Extension Module: mod_proxy

Por lo tanto, Apache también usa 8192 de forma predeterminada como el tamaño del búfer del proxy.

cliente apache

La documentación del cliente Apache Java indica

https://hc.apache.org/httpcomponents-client-4.2.x/tutorial/html/connmgmt.html

  • CoreConnectionPNames.SOCKET_BUFFER_SIZE='http.socket.buffer-size': determina el tamaño del búfer de socket interno utilizado para almacenar datos en el búfer mientras se reciben/transmiten mensajes HTTP. Este parámetro espera un valor de tipo java.lang.Integer. Si no se establece este parámetro, HttpClient asignará búferes de socket de 8192 bytes.

Cliente Rubí

En ruby el valor se establece por defecto 16K

https://github.com/ruby/ruby/blob/814daf855e0aa2c3a1164dc765378d3a092a1825/lib/net/protocol.rb#L172

Entonces hay debajo del hilo

¿Cuál es un buen tamaño de búfer para la programación de sockets?

¿Cuál es el mejor tamaño de búfer de memoria para asignar para descargar un archivo de Internet?

¿Tamaño óptimo de lectura del búfer de archivo?

Si observa muchos de estos, el consenso se encuentra en 8K/16K como tamaño de búfer. Y no es que deba fijarse en eso sino que configurable y 8k/16K debería ser lo suficientemente bueno para la mayoría de las situaciones. Así que no veo ningún problema con Python que también use esos 8K de forma predeterminada. Pero sí, debería haber sido configurable.

Python 3.7 lo tendrá configurable como tal, pero eso puede no ayudar a su causa si no puede actualizarlo.

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda