Performance issue to upload a file.
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- C#
- Sterne
- 4.4k
- Forks
- 993
- Ø Merge
- 9 T. 21 Std.
- Gemergte PRs (30 T.)
- 1
Beschreibung
When I want to upload a file, I can either use the method SftpClient.UploadFile or I can use
using (Stream destinationStream = sftpClient.OpenWrite(destinationPath))
{
byte[] buffer = new byte[10 * 1024 * 1024]; // 10 MB buffer
long totalBytesCopied = 0;
int currentBlockSize = 0;
Progress(totalBytesCopied);
while ((currentBlockSize = fileStream.Read(buffer, 0, buffer.Length)) > 0)
{
destinationStream.Write(buffer, 0, currentBlockSize);
totalBytesCopied += currentBlockSize;
Progress(totalBytesCopied);
}
}
With SftpClient.UploadFile, there is no problem.
But, if I use the previous code, the performances are very, very, very... very... bad.
And I am sure "fileStream.Read" is not the problem.
The method "Progress" is just a Console.WriteLine.
It seems the SftpFileStream is problematic when we want to upload a file.
Can you please fix this problem ?
Thank you very much.
Beitragsleitfaden
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Beginne mit dem Vergleich von SftpClient.UploadFile mit SftpClient.OpenWrite und dem im Issue gezeigten SftpFileStream-Pfad. Reproduziere den Upload anhand der bereitgestellten Schleife und messe ihn gegen UploadFile; abgeschlossen ist die Aufgabe, wenn der auf OpenWrite basierende Upload nicht mehr die gemeldete erhebliche Performance-Lücke aufweist.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- csharp
- Bereich
- networking
- Issue-Typ
- Bug
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Muss geklärt werden
- Anfängerfreundlichkeit
- 25/100