一、Asp.net中的线程池设置

  在Asp.net的服务处理中,每当服务器收到一个请求,HttpRuntime将从HttpApplication池中获取一个HttpApplication对象处理此请求,请求的处理过程将被排入线程池中,对于Asp.net来说,在Machine.config文件的processModel部分中可以设置线程池中的参数。

  Asp.net线程相关的参数配置:

参数 配置
autoConfig 基于服务器的配置自动设置。
maxWorkerThreads 设置每个CPU的最大工作线程数量,可以设置为5~100,默认为20,建设设置为100
minWorkerThreads 设置每个CPU的最少工作线程数量,默认为1
maxIoThreads 配置每个CPU的最大I/O线程数量,可以设置的范围为5~100,默认为20,建议设置为100
minIoThreads 配置每个CPU最少工作线程数量,默认为1

  HttpRuntime元素的配置参数:

参数 配置
minFreeThreads 处理新请求保留的最少自由线程数量,默认值为8.建议每CPU设置为88个。这些最小空闲线程用于避免没有线程可用而造成死锁。因此,当线程池的线程小于这个数,请求就被排入队列,而不会使用这些线程处理。
minLocalRequestFreeThreads 为本地主机请求保留的最少自由线程数量,默认值为4.建议每CPU设置为76个。同上(只是针对本地请求)
appRequestQueueLimit 在Aso,net没有足够的线程来处理请求的时候,将会把这些请求排入一个请求队列中等待处理,该项用来设置这个队列的长度,当队列长度超过这个参数将返回503、默认为5000。

  优化的第一原则是:对于每一个请求尽可能使用一个线程完成处理。

二、异步步骤中的异步点

  在HttpApplication的处理过程中,为了提高线程的利用率,对于一个请求尽可能只使用一个线程完成处理。

  由于Asp.net处理采用管道的处理模式,必须保证处理步骤的逻辑顺序。所以,有些处理必须在后继的处理之前完成,所以,除非此时真的需要多个可以并行的计算密集任务,否则,启动多个线程并不能提高网站的处理速度。

对于HttpApplication处理管道中每一个事件的处理步骤,有同步与异步两个方式处理:

  • 同步:提供一个事件处理方法直接完成处理步骤;
  • 异步:一个用于启动涉及I/O的处理步骤,一个用于I/O完成之后的处理步骤;

  对于一个需要等待的处理步骤,我们可以分出一个异步点,在这个异步点之前启动耗时的操作,然后直接结束当前的线程,在没有线程参与的情况下,进行这个耗时的输入输出任务,在任务完成之后,重新从线程池获取一个线程来继续当前请求的处理。

如同步的BeginRequest对应的异步处理方式定义如下:

public void AddOnBeginRequestAsync(BeginEventHandler bh, EndEventHandler eh)

  其中BeginEventHandler用于启动处理的委托,EndEventHandler用于处理完成任务之后的委托。

  对于HttpApplication管道的处理来说,这些事件使用的同步方式的委托类型都是EventHandler类型,这个委托类型的定义如下:

public delegate void EventHandler(Object sender, EventArgs e)

  对于异步方式的处理,则使用相应的两个委托完成,一个用于启动的委托BeginEventHandler,一个用于结束的委托EndEventHandler。结束操作的委托将工作在一个线程池提供的线程之上。

  在异步方式下,处理管道将不再连续使用一个线程完成,而是每个处理步骤都可能在一个线程上进行,所以,我们不能假定处理管道总是处于一个线程,而使用基于线程的特征。

Web页面切图和CSS注意事项的更多相关文章

  1. [开发笔记]-页面切图、CSS前端设计、JS

    这两天在学习页面的切图,样式设计,把学习过程中注意的地方记录下来. 一. input输入框点击时去掉外边框 一般在IE,firefox下,设置 border:0 none; 即可.但在chrome下, ...

  2. 切图,css注意事项

    1.文字尽量不要独立放在div中,一般放在p,span中(显得不专业) 2.div给了width就不要用padding-left,padding-right:给了height就不给padding-to ...

  3. web中切图、快速切图与web雪碧图制作的方法

    声明: web小白的笔记,欢迎大神指点,联系QQ:1522025433. 工具:Photoshop 1.复制文字:点击文章工具后选择文字. 2.矩形选框工具 看信息 f8, 取消矩形选框 Ctrl+D ...

  4. 使用PHP写了一个图片分割等份工具,便于前台页面切图时使用。

    目的: 由于网站更新活动较频繁,其大多数以静态图片为主,设计人员在除了设计图后都要给前端制作人员再次切图从而达到页面加载图片缓慢的问题,为了减少工作量做了该工具. 功能: 上传一张图,将其分割成指定等 ...

  5. web前端切图处理

    技巧: 一. 如何在 Retina 屏幕的设备使用更高分辨率的图片 以 MacBook Pro 为例,它的标准分辨率高达 2560 x 1600,但是如果真的以这个分辨率显示网页,网页的有效区域就小的 ...

  6. 切图psd to html页面制作技术学习与总结

    切图流程和注意事项 切图的正确流程做法是: 1 写框架.拿到psd后,先不要做别的,直接在文本编辑器中将网页的框架写出来,不要假设这块将来css要去怎么渲染,完全自然化的标签,不加任何的css. 2 ...

  7. 渴切-开源中文css框架

    渴切:是国内优秀的开源css框架. 渴切是一个开源中文 (X)HTML/CSS 框架 ,它的目的是减少你的css开发时间.它提供一个可靠的css基础去创建你的项目,能够用于网站的快速设计,通过重设和重 ...

  8. ArcGIS Server 10中的切图/缓存机制深入【转】

    http://blog.newnaw.com/?p=789 两年前我写过一篇关于ArcGIS地图切图/缓存原理的文章,<ArcGIS Server的切图原理深入>,里面以tiling sc ...

  9. web页面引入字体

    一.常见web字体 TrueType (.ttf) Windows和Mac系统最常用的字体格式,其最大的特点就是它是由一种数学模式来进行定义的基于轮廓技术的字体,这使得它们比基于矢量的字体更容易处理, ...

随机推荐

  1. 决策树算法(ID3)

    Day Outlook Temperature Humidity Wind PlayTennis 1 Sunny Hot High Weak No 2 Sunny Hot High Strong No ...

  2. POJ 2987 Firing 网络流 最大权闭合图

    http://poj.org/problem?id=2987 https://blog.csdn.net/u014686462/article/details/48533253 给一个闭合图,要求输出 ...

  3. [UVa10296]Jogging Trails

    题目大意: 中国邮递员问题. 给你一个无向带权连通图,求经过所有边并返回起点的最短路径. 思路: Edmonds-Johnson算法. 显然,当原图为欧拉图时,答案即为其欧拉回路的长度. 考虑原图不存 ...

  4. bzoj 1337 最小圆覆盖

    /************************************************************** Problem: 1337 User: idy002 Language: ...

  5. ROS知识(19)----写一个简单的pluginlib例子

    参考资料: 官方教程:Writing and Using a Simple Plugin

  6. spring---aop(2)---Spring AOP的JDK动态代理

    写在前面 spring 事务是springAOP 的一个实现.我们以分析spring的事务,来分析spring的AOP实现. 基本知识 如果目标方法被spring的事务声明,则执行该目标方法的对象就会 ...

  7. Spring_Spring集成Quartz定时任务框架介绍和Cron表达式详解

    在JavaEE系统中,我们会经常用到定时任务,比如每天凌晨生成前天报表,每一小时生成汇总数据等等.我们可以使用java.util.Timer结合java.util.TimerTask来完成这项工作,但 ...

  8. android WebView中js的alert()失效

    WebView的设置代码 wv = (WebView) findViewById(R.id.webView1); wv.getSettings().setJavaScriptEnabled(true) ...

  9. Syslink Control in MFC 9.0(转)

    Visual Studio 2008 (formely code-named ‘Orcas’) has several important updates for VC++ and MFC. Amon ...

  10. fragment和fragmentactivity解析

    一.为什么要使用Fragment  1.当我们须要动态的多界面切换的时候,就须要将UI元素和Activity融合成一个模块.在2.3中我们一般通过各种Activity中进行跳转来实现多界面的跳转和单个 ...