Ich habe einige Legacy-Code, der ziemlich einfach ist. Code extrahiert Dateien aus einer ZIP-Datei, demerialisiert den Inhalt der Datei aus der ZIP-Datei von XML in Objekte und macht etwas mit diesen Objekten.Code arbeitet viel langsamer auf Produktionsserver
Zip-Datei ist um 90mb. Das Problem ist, dass dieser Code ungefähr 3 Sekunden auf dem lokalen Computer ausgeführt wird (1,5 Sekunden zum Extrahieren und ungefähr 1,3 Sekunden zum Deserialisieren aller Dateien), aber wenn ich diesen Code auf Windows Server und IIS 6.1 veröffentliche, dauert es ungefähr 28 Sekunden die gleiche Aktion mit der gleichen Datei. 14 Sekunden zum Extrahieren und 13 Sekunden zum Deserialisieren.
Server ist VPS, 8 Kerne, 16 GB RAM.
Hat jemand irgendwelche Ideen?
public List<FileNameStream> UnzipFilesTest(List<string> files, string zippedPathAndFile)
{
//var result = new Dictionary<string, MemoryStream>();
var unzipedFiles = new List<FileNameStream>();
string file1 = System.Web.Hosting.HostingEnvironment.MapPath(zippedPathAndFile);
if (File.Exists(file1))
{
using (MemoryStream data = new MemoryStream())
{
using (Ionic.Zip.ZipFile zipFile = Ionic.Zip.ZipFile.Read(file1))
{
zipFile.ParallelDeflateThreshold = -1;
foreach (ZipEntry e in zipFile)
{
if (files.Contains(e.FileName, StringComparer.OrdinalIgnoreCase))
{
e.Extract(data);
unzipedFiles.Add(new FileNameStream() { FileContent = Encoding.UTF8.GetString(fs..ToArray()), FileName = e.FileName }); //(e.FileName, data);
}
}
}
}
}
return unzipedFiles;
}
Wahrscheinlich Festplattenproblem, SSD vs HDD? –
90mb Datei und das ist ein großer Unterschied? Btw lokalen Rechner hat keine SSD – Robert
Ist die Zip-Datei auf dem Server oder Zugriff über ein Netzwerk? –