zoukankan      html  css  js  c++  java
  • Web页面切图和CSS注意事项

    一、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。结束操作的委托将工作在一个线程池提供的线程之上。

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

  • 相关阅读:
    Vue框架(三)——Vue项目搭建和项目目录介绍、组件、路由
    Vue框架(二)——Vue指令(v-once指令、v-cloak指令、条件指令、v-pre指令、循环指令)、todolist案例、Vue实例(计算、监听)、组件、组件数据交互
    Vue框架(一)——Vue导读、Vue实例(挂载点el、数据data、过滤器filters)、Vue指令(文本指令v-text、事件指令v-on、属性指令v-bind、表单指令v-model)
    异步调用与回调机制
    进程池与线程池
    多线程实现并发的套接字通信
    线程queue
    定时器
    Event事件
    信号量
  • 原文地址:https://www.cnblogs.com/ranzige/p/web_css_web.html
Copyright © 2011-2022 走看看