Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

High memory allocation using SshCommand

Abierto
#1,776 9 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
4/5
Tiempo estimado
3-5 días
Aptitud para principiantes
45/100
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Tranquilo
Stack tecnológico
csharp
Área
networking

Línea de trabajo

Comienza con la implementación de SshCommand e inspecciona cómo se asignan y consumen sus flujos de salida, utilizando la instantánea de memoria reportada como referencia. Determina qué comportamiento debería cambiar para los comandos cuya salida no se supervisa y, después, verifica que los comandos de larga duración ya no retengan una salida ilimitada y que el escenario previsto esté cubierto por pruebas.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

Hi,

I noticed using SSH.Net there are a few issues using SshCommand:

  • Allocation of 2kB of buffer for every command, even short ones without output and without monitoring output
  • Not reading output causes these buffers to grow indefinitely for long running commands
  • No way to discard this output easily
  • Using sshcommands many at a time in a pool causes huge GC pressure with the many large allocations

An example from a single command running without cleaning the streams shows it allocating over 300kB of memory in a VS snapshot.

Possible solutions:

  • Allocate the pipestreams only when accessed, discarding input otherwise (breaking change)
  • Creating a new sshcommand that does not allocate.

I will be creating a pull request for scenario 2 as i need a solution for a project asap.

Thanks for the library!

Lenguaje dominante
C#
Estrellas
4.4k
Forks
993
Merge medio
9 d 21 h
PR fusionados (30 d)
1

Guía de contribución

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de sshnet/SSH.NET

Todos los issues de sshnet/SSH.NET

Issues similares

Más issues de C#

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.