【发布时间】:2010-08-31 10:30:09
【问题描述】:
我有一个用于下载文件的 wcf 服务。它工作正常(终于),但我可以看到当它下载时 CPU 使用率约为 75%。
请指教
客户端代码
FileTransferServiceClient obj = new FileTransferServiceClient();
Byte[] buffer = new Byte[16 * 1024];
CoverScanZipRequest req = new CoverScanZipRequest(
new string[] { "1", "2" });
CoverScanZipResponse res = new CoverScanZipResponse();
res = obj.CoverScanZip(req);
int byteRead = res.CoverScanZipResult.Read(buffer, 0, buffer.Length);
Response.Buffer = false;
Response.ContentType = "application/zip";
Response.AddHeader("Content-disposition",
"attachment; filename=CoverScans.zip");
Stream outStream = Response.OutputStream;
while (byteRead > 0)
{
outStream.Write(buffer, 0, byteRead);
byteRead = res.CoverScanZipResult.Read(buffer, 0, buffer.Length);
}
res.CoverScanZipResult.Close();
outStream.Close();
【问题讨论】:
-
你希望它有多高?
-
几乎不可能在没有更多细节的情况下提供任何建议。请给我们一些代码。
-
通常我不希望它超过 40-50 %。
-
@Brain,对不起。我现在添加了调用 Web 服务的代码。请指教
-
可能是你读/写了很多小块,比如每 kB 的 kB。如果您通过读取/写入更大的片段来减少 CPU 使用率,您可以尝试。