High memory allocation using SshCommand
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
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de sshnet/SSH.NET
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
-
Dificultad 3/5 1-2 días Aptitud para principiantes 68/100
-
Using SshClient on Linux under Wine throws System.Security.Cryptography.CryptographicException Abierto
Dificultad 4/5 3-5 días Aptitud para principiantes 48/100
-
Dificultad 3/5 1-2 días Aptitud para principiantes 67/100
-
Dificultad 4/5 3-5 días Aptitud para principiantes 55/100
Todos los issues de sshnet/SSH.NET
Issues similares
-
effort:S P3 refactor
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
nightscout/nocturne#1532 ·
-
core dependencies
Dificultad 1/5 Menos de una hora Aptitud para principiantes 80/100
-
documentation
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
-
C#/.NET Roslyn LSP Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
-
Suspicious code fragments Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
DotNetNext/SqlSugar#1458 ·