C# 使用HttpHandler在ASP.Net网页中加载缩略图

C# 使用HttpHandler在ASP.Net网页中加载缩略图,c#,asp.net,httphandler,C#,Asp.net,Httphandler,我的要求是在我的Asp.NETWeb应用程序中在2秒内加载100个缩略图。每个图像的实际大小约为800 KB。因此,我使用web处理程序方法动态地重新调整图像大小(此处图像大小减小为8KB)。在这里,我发现96个请求被发送到服务器,缩略图在4秒内加载。我发现90%的时间都浪费在Firebug net选项卡中检查的阻塞中。所以我从96个请求变成了一个请求。因此,web处理程序接受一个请求,创建96个缩略图图像,并将96个缩略图组合成一个大的单个图像,然后将此单个图像写入输出流。然后,我使用.Net

我的要求是在我的Asp.NETWeb应用程序中在2秒内加载100个缩略图。每个图像的实际大小约为800 KB。因此,我使用web处理程序方法动态地重新调整图像大小(此处图像大小减小为8KB)。在这里,我发现96个请求被发送到服务器,缩略图在4秒内加载。我发现90%的时间都浪费在Firebug net选项卡中检查的阻塞中。所以我从96个请求变成了一个请求。因此,web处理程序接受一个请求,创建96个缩略图图像,并将96个缩略图组合成一个大的单个图像,然后将此单个图像写入输出流。然后,我使用.Net线程池机制在web处理程序中创建缩略图。因此,加载时间减少到2.6秒。我发现服务器处理实际只花费了1秒或更短的时间。剩余的1.6秒正在丢失。我的问题如下

  • 我的处理时间浪费在哪里了。服务器端还是客户端?如果在服务器端,瓶颈在哪里?如何确定请求处理和页面加载时间

  • Web处理程序是调整图像大小的更好方法吗

  • 我能有别的解决办法吗
  • 我的系统配置是

    处理器-英特尔核心-i7, 内存:-4 GB

    Web服务器: IIS 7

    操作系统: 视窗7

    请帮帮我

    >我的处理时间浪费在哪里了。服务器端还是客户端

    也许它介于。。。1.6秒似乎是传输数据的正确时间:

    8KB per image * 100 images ~= 1MB of data
    1 M bytes = 8 M bits
    8 M bits / 1.6 secs = 5 Mbps transfer rate
    ... sounds reasonable to within an order of magnitude
    
    您的“一个大映像”方法可能更好,因为这将减少100个单独请求的开销。不过,请注意在ASP.NET进程中使用后台线程

    传输时间是一个限制因素。即使您可以让服务器立即响应,您仍然需要等待数据返回到客户端

    另一个限制因素是客户端浏览器渲染图像的速度

    基本上,您的需求正在突破实用ATM的界限

    >我的处理时间浪费在哪里了。服务器端还是客户端

    也许它介于。。。1.6秒似乎是传输数据的正确时间:

    8KB per image * 100 images ~= 1MB of data
    1 M bytes = 8 M bits
    8 M bits / 1.6 secs = 5 Mbps transfer rate
    ... sounds reasonable to within an order of magnitude
    
    您的“一个大映像”方法可能更好,因为这将减少100个单独请求的开销。不过,请注意在ASP.NET进程中使用后台线程

    传输时间是一个限制因素。即使您可以让服务器立即响应,您仍然需要等待数据返回到客户端

    另一个限制因素是客户端浏览器渲染图像的速度


    基本上,您的需求已经突破了实际ATM的界限。

    如果没有看到您已经尝试过的代码,就无法告诉您很多信息……生成缩略图的代码是这样的:?如果没有看到您已经尝试过的代码,就无法告诉您很多信息……生成缩略图的代码是这样的:?