High memory allocation using SshCommand

Đang mở
#1,776 9 bình luận 0 reaction 0 người được giao Xem trên GitHub

Chưa có ai nhận issue này.

Đánh giá

Độ khó
4/5
Thời gian dự kiến
3-5 ngày
Mức phù hợp với người mới
45/100
Loại issue
Lỗi
Độ rõ ràng
Khá rõ ràng
Mức độ hoạt động
Ít trao đổi
Công nghệ
csharp
Lĩnh vực
networking

Hướng nghiên cứu

Bắt đầu với phần triển khai SshCommand và kiểm tra cách các luồng đầu ra của nó được cấp phát và tiêu thụ, sử dụng memory snapshot được báo cáo làm cơ sở ban đầu. Xác định hành vi nào cần thay đổi đối với các lệnh không được giám sát đầu ra, sau đó xác minh rằng các lệnh chạy dài không còn giữ lại đầu ra không giới hạn và kịch bản dự kiến đã được bao phủ bằng các bài kiểm thử.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

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!

Ngôn ngữ chính
C#
Star
4.4k
Fork
993
Merge trung bình
9 ngày 21 giờ
Pull request đã merge (30 ngày)
1

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của sshnet/SSH.NET

Tất cả issue của sshnet/SSH.NET

Issue tương tự

Thêm issue về C#

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.