Bank Conflict?

penyunwudong 2010-07-15 08:47:45
刚学习cuda编程的知识,对Bank Conflict理解不清楚,希望各位大牛帮忙解释下~
...全文
485 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
zalyer 2012-09-03
  • 打赏
  • 举报
回复
比喻成通道容易理解

[Quote=引用 10 楼 的回复:]
直观来看,16个bank就相当于16个并行存取通道,每个通道内存放着若干数据,可以并行存取,

如1楼所述,数组数据被依次分散存放在16个通道内,原文是这样说的,

Shared memory has 32 banks that are organized such that

successive 32-bit words are assigned to successive ba……
[/Quote]
hohaics 2012-08-03
  • 打赏
  • 举报
回复
直观来看,16个bank就相当于16个并行存取通道,每个通道内存放着若干数据,可以并行存取,

如1楼所述,数组数据被依次分散存放在16个通道内,原文是这样说的,

Shared memory has 32 banks that are organized such that

successive 32-bit words are assigned to successive banks, i.e. interleaved.

接连的 32-bit words assigned 接连的 banks
ddweidong 2012-06-04
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
这类的文章挺多的。

Shared memory 是以 4 bytes 为单位分成 banks。因此,假设以下的数据:

__shared__ int data[128];

那么,data[0] 是 bank 0、data[1] 是 bank 1、data[2] 是 bank 2、…、data[15] 是 bank 15,而 data[16] 又回到 bank 0。由于 wa……
[/Quote]讲的很好,“因此,如果程序在存取 shared memory 的时候,使用以下的方式: int number = data[base + tid];”这句解决了我的疑惑
frank0712105003 2012-05-26
  • 打赏
  • 举报
回复
恩,很清楚了。。
jmailhappy 2011-03-28
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 xhsh001 的回复:]
既然一个SM里只有16个bank,且每个bank只有4Byte,也就是只能保存16个整数,那int data[128]中这128个整数是如何保存在共享存储器里的?
[/Quote]

Tesla 的每个 SM 拥有 16KB 共享存储器,用于同一个线程块内的线程间通信。为了使一
个 half-warp 内的线程能够在一个内核周期中并行访问,共享存储器被组织成 16 个 bank,
每个 bank 拥有 32bit 的宽度,故每个 bank 可保存 256 个整形或单精度浮点数,或者说目前
的 bank 组织成了 256 行 16 列的矩阵。
如果一个 half-warp 中有一部分线程访问属于同一
bank 的数据,则会产生 bank conflict,降低访存效率,在冲突最严重的情况下,速度会比
全局显存还慢,但是如果 half-warp 的线程访问同一地址的时候,会产生一次广播,其速度
反而没有下降。在不发生 bank conflict 时,访问共享存储器的速度与寄存器相同。在不同
的块之间,共享存储器是毫不相关的。 ------风辰的 CUDA 入门教程


jmailhappy 2011-03-28
  • 打赏
  • 举报
回复
同意楼上的,我也很疑惑
xhsh001 2011-02-21
  • 打赏
  • 举报
回复
既然一个SM里只有16个bank,且每个bank只有4Byte,也就是只能保存16个整数,那int data[128]中这128个整数是如何保存在共享存储器里的?
xhsh001 2011-02-21
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 zhui22222 的回复:]
很多时候 shared memory 的 bank conflict 可以透过修改数据存放的方式来解决。例如,以下的程序:

data[tid] = global_data[tid];
...
int number = data[16 * tid];

会造成严重的 bank conflict,...
[/Quote]

我不大理解,这里怎么会造成严重的bank conflict呢?16*tid都是16的倍数,都对应着bank 0,这应当会执行一次广播啊。
  • 打赏
  • 举报
回复
MARK..
penyunwudong 2010-07-19
  • 打赏
  • 举报
回复
谢了,讲得很清楚,可以理解了~
zhui22222 2010-07-16
  • 打赏
  • 举报
回复
这类的文章挺多的。

Shared memory 是以 4 bytes 为单位分成 banks。因此,假设以下的数据:

__shared__ int data[128];

那么,data[0] 是 bank 0、data[1] 是 bank 1、data[2] 是 bank 2、…、data[15] 是 bank 15,而 data[16] 又回到 bank 0。由于 warp 在执行时是以 half-warp 的方式执行,因此分属于不同的 half warp 的 threads,不会造成 bank conflict。

因此,如果程序在存取 shared memory 的时候,使用以下的方式:

int number = data[base + tid];

那就不会有任何 bank conflict,可以达到最高的效率。但是,如果是以下的方式:

int number = data[base + 4 * tid];

那么,thread 0 和 thread 4 就会存取到同一个 bank,thread 1 和 thread 5 也是同样,这样就会造成 bank conflict。在这个例子中,一个 half warp 的 16 个 threads 会有四个 threads 存取同一个 bank,因此存取 share memory 的速度会变成原来的 1/4。

一个重要的例外是,当多个 thread 存取到同一个 shared memory 的地址时,shared memory 可以将这个地址的 32 bits 数据「广播」到所有读取的 threads,因此不会造成 bank conflict。例如:

int number = data[3];

这样不会造成 bank conflict,因为所有的 thread 都读取同一个地址的数据。

很多时候 shared memory 的 bank conflict 可以透过修改数据存放的方式来解决。例如,以下的程序:

data[tid] = global_data[tid];
...
int number = data[16 * tid];

会造成严重的 bank conflict,为了避免这个问题,可以把数据的排列方式稍加修改,把存取方式改成:

int row = tid / 16;
int column = tid % 16;
data[row * 17 + column] = global_data[tid];
...
int number = data[17 * tid];

这样就不会造成 bank conflict 了。
Java Servlet API说明文档 绪言 这是一份关于2.1版JavaServletAPI的说明文档,作为对这本文档的补充,你可以到http://java.sun.com/products/servlet/index.html下面下载Javadoc格式的文档。 谁需要读这份文档 这份文档描述了JavaServletAPI的最新版本2.1版。所以,这本书对于Servlet的开发者及servlet引擎的开发者同样适用。 JavaServletAPI的组成 JavaServletAPI由两个软件包组成:一个是对应HTTP的软件包,另一个是不对应HTTP的通用的软件包。这两个软件包的同时存在使得JavaServletAPI能够适应将来的其他请求-响应的协议。 这份文档以及刚才提及的Javadoc格式的文档都描述了这两个软件包,Javadoc格式的文档还描述了你应该如何使用这两个软件包中的所有方法。 有关规范 你也许对下面的这些Internet规范感兴趣,这些规范将直接影响到ServletAPI的发展和执行。你可以从http://info.internet.isi.edu/7c/in-notes/rfc/.cache找到下面提到的所有这些RFC规范。 RFC1738统一资源定位器(URL) RFC1808相关统一资源定位器 RFC1945超文本传输协议--HTTP/1.0 RFC2045多用途Internet邮件扩展(多用途网际邮件扩充协议(MIME))第一部分:Internet信息体格式 RFC2046多用途Internet邮件扩展(多用途网际邮件扩充协议(MIME))第二部分:媒体类型 RFC2047多用途网际邮件扩充协议(MIME)(多用途Internet邮件扩展)第三部分:信息标题扩展用于非ASCII文本 RFC2048多用途Internet邮件扩展(多用途网际邮件扩充协议(MIME))第四部分:注册步骤 RFC2049多用途Internet邮件扩展(多用途网际邮件扩充协议(MIME))第五部分:一致性标准和例子 RFC2068超文本传输协议--HTTP/1.1 RFC2069一个扩展HTTP:摘要访问鉴定 RFC2109HTTP状态管理机制 RFC2145HTTP版本号的使用和解释 RFC2324超文本CoffeePot控制协议(HTCPCP/1.0) 万维网协会(http://www.w3.org)管理着这些协议的规范和执行。 有关JavaServlets JavaTMservlets是一个不受平台约束的Java小程序,它可以被用来通过多种方法扩充一个Web服务器的功能。你可以把Servlet理解成Server上的applets,它被编译成字节码,这样它就可以被动态地载入并用效地扩展主机的处理能力。 Servlet与applets不同的地方是,它不运行在Web浏览器或其他图形化的用户界面上。Servlet通过servlet引擎运行在Web服务器中,以执行请求和响应,请求、响应的典型范例是HTTP协议。 一个客户端程序,可以是一个Web浏览器,或者是非其他的可以连接上Internet的程序,它会访问Web服务器并发出请求。这个请求被运行在Web服务器上的Servlet引擎处理,并返回响应到Servlet。Servlet通过HTTP将这个响应转发到客户端。 在功能上,Servlet与CGI、NSAPI有点类似,但是,与他们不同的是:Servlet具有平台无关性。 JavaServlet概论 Servlet与其他普通的server扩展机制有以下进步: 因为它采用了不同的进程处理模式,所以它比CGI更快。 它使用了许多Web服务器都支持的标准的API。 它继承了Java的所有优势,包括易升级以及平台无关性。 它可以调用Java所提供的大量的API的功能模块。 这份文档说明了JavaServletAPI的类和接口的方法。有关更多的信息,请参看下面的API说明。 Servlet的生命周期 一个Javaservlet具有一个生命周期,这个生命周期定义了一个Servlet如何被载入并被初始化,如何接收请求并作出对请求的响应,如何被从服务中清除。Servlet的生命周期被javax.servlet.Servlet这个接口所定义。 所有的JavaServlet都会直接地或间接地执行javax.servlet.Servlet接口,这样它才能在一个Servlet引擎中运行。Servlet引擎是Web服务器按照JavaServletAPI定制的扩展。Servlet引擎提供网络服务,能够理解MIME请求,并提供一个运行Servlet的容器。 javax.servlet.Servlet接口定义了在Servlet的生命周期中特定时间以及特定顺序被调用的方法。 Servlet的解析和载入 Servlet引擎解析并载入一个Servlet,这个过程可以发生在引擎启动时,需要一个Servlet去响应请求时,以及在此之间的任何时候。 Servlet引擎利用Java类载入工具载入一个Servlet,Servlet引擎可以从一个本地的文件系统、一个远程的文件系统以及网络载入Servlet。 Servlet的初始化 Servlet引擎载入Servlet后,Servlet引擎必须对Servlet进行初始化,在这一过程中,你可以读取一些固定存储的数据、初始化JDBC的连接以及建立与其他资源的连接。 在初始化过程中,javax.servlet.Servlet接口的init()方法提供了Servlet的初始化信息。这样,Servlet可以对自己进行配置。 init()方法获得了一个Servlet配置对象(ServletConfig)。这个对象在Servlet引擎中执行,并允许Servlet通过它获处相关参数。这个对象使得Servlet能够访问ServletContext对象。 Servlet处理请求\r Servlet被初始化之后,它已经可以处理来自客户端的请求,每一个来自客户端的请求都被描述成一个ServletRequest对象,Servlet的响应被描述成一个ServletResponse对象。 当客户端发出请求时,Servlet引擎传递给Servlet一个ServletRequest对象和一个ServletResponse对象,这两个对象作为参数传递到service()方法中。 Servlet也可以执行ServletRequest接口和ServletResponse接口。ServletRequest接口使得Servlet有权使用客户端发出的请求。Servlet可以通过ServletInputStream对象读取请求信息。 ServletResponse接口允许Servlet建立响应头和状态代码。通过执行这个接口,Servlet有权使用ServletOutputStream类来向客户端返回数据。 多线程和映射\r 在多线程的环境下,Servlet必须能处理许多同时发生的请求。例外的情况是这个Servlet执行了SingleThreadModel接口,如果是那样的话,Servlet只能同时处理一个请求。 Servlet依照Servlet引擎的映射来响应客户端的请求。一个映射对包括一个Servlet实例以及一个Servlet返回数据的URL,例如:HelloServletwith/hello/index.html。 然而,一个映射可能是由一个URL和许多Servlet实例组成,例如:一个分布式的Servlet引擎可能运行在不止一个的服务器中,这样的话,每一个服务器中都可能有一个Servlet实例,以平衡进程的载入。作为一个Servlet的开发者,你不能假定一个Servlet只有一个实例。 Servlet的卸载 Servlet引擎并不必需保证一个Servlet在任何时候或在服务开启的任何时候都被载入。Servlet引擎可以自由的在任何时候使用或清除一个Servlet。因此,我们不能依赖一个类或实例来存储重要的信息。 当Servlet引擎决定卸载一个Servlet时(例如,如果这个引擎被关闭或者需要让资源),这个引擎必须允许Servlet释放正在使用的资源并存储有关资料。为了完成以上工作,引擎会调用Servlet的destroy()方法。 在卸载一个Servlet之前,Servlet引擎必须等待所有的service()方法完成或超时结束(Servlet引擎会对超时作出定义)。当一个Servlet被卸载时,引擎将不能给Servlet发送任何请求。引擎必须释放Servlet并完成无用存储单元的收集 Servlet映射技术\r 作为一个Servlet引擎的开发者,你必须对于如何映射客户端的请求到Servlet有大量的适应性。这份说明文档不规定映射如何发生。但是,你必须能够自由地运用下面的所有技术: 映射一个Servlet到一个URL 例如,你可以指定一个特殊的Servlet它仅被来自/feedback/index.html的请求调用。 映射一个Servlet到以一个指定的目录名开始的所有URL 例如,你可以映射一个Servlet到/catalog,这样来自/catalog/、/catalog/garden和/catalog/housewares/index.html的请求都会被映射到这个Servlet。但是来自/catalogtwo或/catalog.html的请求没被映射。 映射一个Servlet到所有以一个特定的字段结尾的所有URL 例如,你可以映射一个来自于所有以in.thtml结尾的请求到一个特定的Servlet。 映射一个Servlet到一个特殊的URL/servlet/servlet_name。 例如,如果你建立了一个名叫listattributes的Servlet,你可以通过使用/servlet/listattributes来访问这个Servlet。 通过类名调用Servlet 例如,如果Servlet引擎接收了来自/servlet/com.foo.servlet.MailServlet的请求,Servlet引擎会载入这个com.foo.servlet.MailServlet类,建立实例,并通过这个Servlet来处理请求。 Servlet环境 ServletContext接口定义了一个Servlet环境对象,这个对象定义了一个在Servlet引擎上的Servlet的视图。通过使用这个对象,Servlet可以记录事件、得到资源并得到来自Servlet引擎的类(例如RequestDispatcher对象)。一个Servlet只能运行在一个Servlet环境中,但是不同的Servlet可以在Servlet引擎上有不同的视图。 如果Servlet引擎支持虚拟主机,每个虚拟主机有一个Servlet环境。一个Servlet环境不能在虚拟主机之间共享。 Servlet引擎能够允许一个Servlet环境有它自己的活动范围。 例如,一个Servlet环境是属于bank应用的,它将被映射到/bank目录下。在这种情况下,一个对getContext方法的调用会返回/bank的Servlet环境。 HTTP会话 HTTP是一个没有状态的协议。要建立一个有效的Web服务应用,你必须能够识别一个连续的来自远端的客户机的唯一的请求。随着时间的过去,发展了许多会话跟踪的技术,但是使用起来都比较麻烦。 JavaServletAPI提供了一个简单的接口,通过这个接口,Servlet引擎可以有效地跟踪用户的会话。 建立Session 因为HTTP是一个请求-响应协议,一个会话在客户机加入之前会被认为是一个新的会话。加入的意思是返回会话跟踪信息到服务器中,指出会话已被建立。在客户端加入之前,我们不能判断下一个客户端请求是目前会话的一部分。 在下面的情况下,Session会被认为是新的Session。 客户端的Session在此之前还不知道 客户端选择不加入Session,例如,如果客户端拒绝接收来自服务器的cookie 作为一个Servlet的开发者,你必须决定你的Web应用是否处理客户机不加入或不能加入Session。服务器会在Web服务器或Servlet规定的时间内维持一个Session对象。当Session终止时,服务器会释放Session对象以及所有绑定在Session上的对象。 绑定对象到Session中 如果有助于你处理应用的数据需求,你也许需要绑定对象到Session中,你可以通过一个唯一的名字绑定任何的对象到Session中,这时,你需要使用HttpSession对象。任何绑定到Session上的对象都可以被处理同一会话的Servlet调用。 有些对象可能需要你知道什么时候会被放置到Session中或从Session中移开。你可以通过使用HttpSessionBindingListener接口获得这些信息。当你的应用存储数据到Session中,或从Session中清除数据,Servlet都会通过HttpSessionBindingListener检杳什么类被绑定或被取消绑定。这个接口的方法会通报被绑定或被取消绑定的对象。 绪言 这是一份关于2.1版JavaServletAPI的说明文档,作为对这本文档的补充,你可以到http://java.sun.com/products/servlet/index.html下面下载Javadoc格式的文档。 谁需要读这份文档 这份文档描述了JavaServletAPI的最新版本2.1版。所以,这本书对于Servlet的开发者及servlet引擎的开发者同样适用。 JavaServletAPI的组成 JavaServletAPI由两个软件包组成:一个是对应HTTP的软件包,另一个是不对应HTTP的通用的软件包。这两个软件包的同时存在使得JavaServletAPI能够适应将来的其他请求-响应的协议。 这份文档以及刚才提及的Javadoc格式的文档都描述了这两个软件包,Javadoc格式的文档还描述了你应该如何使用这两个软件包中的所有方法。 有关规范 你也许对下面的这些Internet规范感兴趣,这些规范将直接影响到ServletAPI的发展和执行。你可以从http://info.internet.isi.edu/7c/in-notes/rfc/.cache找到下面提到的所有这些RFC规范。 RFC1738统一资源定位器(URL) RFC1808相关统一资源定位器 RFC1945超文本传输协议--HTTP/1.0 RFC2045多用途Internet邮件扩展(多用途网际邮件扩充协议(MIME))第一部分:Internet信息体格式 RFC2046多用途Internet邮件扩展(多用途网际邮件扩充协议(MIME))第二部分:媒体类型 RFC2047多用途网际邮件扩充协议(MIME)(多用途Internet邮件扩展)第三部分:信息标题扩展用于非ASCII文本 RFC2048多用途Internet邮件扩展(多用途网际邮件扩充协议(MIME))第四部分:注册步骤 RFC2049多用途Internet邮件扩展(多用途网际邮件扩充协议(MIME))第五部分:一致性标准和例子 RFC2068超文本传输协议--HTTP/1.1 RFC2069一个扩展HTTP:摘要访问鉴定 RFC2109HTTP状态管理机制 RFC2145HTTP版本号的使用和解释 RFC2324超文本CoffeePot控制协议(HTCPCP/1.0) 万维网协会(http://www.w3.org)管理着这些协议的规范和执行。 有关JavaServlets JavaTMservlets是一个不受平台约束的Java小程序,它可以被用来通过多种方法扩充一个Web服务器的功能。你可以把Servlet理解成Server上的applets,它被编译成字节码,这样它就可以被动态地载入并用效地扩展主机的处理能力。 Servlet与applets不同的地方是,它不运行在Web浏览器或其他图形化的用户界面上。Servlet通过servlet引擎运行在Web服务器中,以执行请求和响应,请求、响应的典型范例是HTTP协议。 一个客户端程序,可以是一个Web浏览器,或者是非其他的可以连接上Internet的程序,它会访问Web服务器并发出请求。这个请求被运行在Web服务器上的Servlet引擎处理,并返回响应到Servlet。Servlet通过HTTP将这个响应转发到客户端。 在功能上,Servlet与CGI、NSAPI有点类似,但是,与他们不同的是:Servlet具有平台无关性。 JavaServlet概论 Servlet与其他普通的server扩展机制有以下进步: 因为它采用了不同的进程处理模式,所以它比CGI更快。 它使用了许多Web服务器都支持的标准的API。 它继承了Java的所有优势,包括易升级以及平台无关性。 它可以调用Java所提供的大量的API的功能模块。 这份文档说明了JavaServletAPI的类和接口的方法。有关更多的信息,请参看下面的API说明。 Servlet的生命周期 一个Javaservlet具有一个生命周期,这个生命周期定义了一个Servlet如何被载入并被初始化,如何接收请求并作出对请求的响应,如何被从服务中清除。Servlet的生命周期被javax.servlet.Servlet这个接口所定义。 所有的JavaServlet都会直接地或间接地执行javax.servlet.Servlet接口,这样它才能在一个Servlet引擎中运行。Servlet引擎是Web服务器按照JavaServletAPI定制的扩展。Servlet引擎提供网络服务,能够理解MIME请求,并提供一个运行Servlet的容器。 javax.servlet.Servlet接口定义了在Servlet的生命周期中特定时间以及特定顺序被调用的方法。 Servlet的解析和载入\r Servlet引擎解析并载入一个Servlet,这个过程可以发生在引擎启动时,需要一个Servlet去响应请求时,以及在此之间的任何时候。 Servlet引擎利用Java类载入工具载入一个Servlet,Servlet引擎可以从一个本地的文件系统、一个远程的文件系统以及网络载入Servlet。 Servlet的初始化 Servlet引擎载入Servlet后,Servlet引擎必须对Servlet进行初始化,在这一过程中,你可以读取一些固定存储的数据、初始化JDBC的连接以及建立与其他资源的连接。 在初始化过程中,javax.servlet.Servlet接口的init()方法提供了Servlet的初始化信息。这样,Servlet可以对自己进行配置。 init()方法获得了一个Servlet配置对象(ServletConfig)。这个对象在Servlet引擎中执行,并允许Servlet通过它获处相关参数。这个对象使得Servlet能够访问ServletContext对象。 Servlet处理请求\r Servlet被初始化之后,它已经可以处理来自客户端的请求,每一个来自客户端的请求都被描述成一个ServletRequest对象,Servlet的响应被描述成一个ServletResponse对象。 当客户端发出请求时,Servlet引擎传递给Servlet一个ServletRequest对象和一个ServletResponse对象,这两个对象作为参数传递到service()方法中。 Servlet也可以执行ServletRequest接口和ServletResponse接口。ServletRequest接口使得Servlet有权使用客户端发出的请求。Servlet可以通过ServletInputStream对象读取请求信息。 ServletResponse接口允许Servlet建立响应头和状态代码。通过执行这个接口,Servlet有权使用ServletOutputStream类来向客户端返回数据。 多线程和映射\r 在多线程的环境下,Servlet必须能处理许多同时发生的请求。例外的情况是这个Servlet执行了SingleThreadModel接口,如果是那样的话,Servlet只能同时处理一个请求。 Servlet依照Servlet引擎的映射来响应客户端的请求。一个映射对包括一个Servlet实例以及一个Servlet返回数据的URL,例如:HelloServletwith/hello/index.html。 然而,一个映射可能是由一个URL和许多Servlet实例组成,例如:一个分布式的Servlet引擎可能运行在不止一个的服务器中,这样的话,每一个服务器中都可能有一个Servlet实例,以平衡进程的载入。作为一个Servlet的开发者,你不能假定一个Servlet只有一个实例。 Servlet的卸载 Servlet引擎并不必需保证一个Servlet在任何时候或在服务开启的任何时候都被载入。Servlet引擎可以自由的在任何时候使用或清除一个Servlet。因此,我们不能依赖一个类或实例来存储重要的信息。 当Servlet引擎决定卸载一个Servlet时(例如,如果这个引擎被关闭或者需要让资源),这个引擎必须允许Servlet释放正在使用的资源并存储有关资料。为了完成以上工作,引擎会调用Servlet的destroy()方法。 在卸载一个Servlet之前,Servlet引擎必须等待所有的service()方法完成或超时结束(Servlet引擎会对超时作出定义)。当一个Servlet被卸载时,引擎将不能给Servlet发送任何请求。引擎必须释放Servlet并完成无用存储单元的收集 Servlet映射技术\r 作为一个Servlet引擎的开发者,你必须对于如何映射客户端的请求到Servlet有大量的适应性。这份说明文档不规定映射如何发生。但是,你必须能够自由地运用下面的所有技术: 映射一个Servlet到一个URL 例如,你可以指定一个特殊的Servlet它仅被来自/feedback/index.html的请求调用。 映射一个Servlet到以一个指定的目录名开始的所有URL 例如,你可以映射一个Servlet到/catalog,这样来自/catalog/、/catalog/garden和/catalog/housewares/index.html的请求都会被映射到这个Servlet。但是来自/catalogtwo或/catalog.html的请求没被映射。 映射一个Servlet到所有以一个特定的字段结尾的所有URL 例如,你可以映射一个来自于所有以in.thtml结尾的请求到一个特定的Servlet。 映射一个Servlet到一个特殊的URL/servlet/servlet_name。 例如,如果你建立了一个名叫listattributes的Servlet,你可以通过使用/servlet/listattributes来访问这个Servlet。 通过类名调用Servlet 例如,如果Servlet引擎接收了来自/servlet/com.foo.servlet.MailServlet的请求,Servlet引擎会载入这个com.foo.servlet.MailServlet类,建立实例,并通过这个Servlet来处理请求。 Servlet环境 ServletContext接口定义了一个Servlet环境对象,这个对象定义了一个在Servlet引擎上的Servlet的视图。通过使用这个对象,Servlet可以记录事件、得到资源并得到来自Servlet引擎的类(例如RequestDispatcher对象)。一个Servlet只能运行在一个Servlet环境中,但是不同的Servlet可以在Servlet引擎上有不同的视图。 如果Servlet引擎支持虚拟主机,每个虚拟主机有一个Servlet环境。一个Servlet环境不能在虚拟主机之间共享。 Servlet引擎能够允许一个Servlet环境有它自己的活动范围。 例如,一个Servlet环境是属于bank应用的,它将被映射到/bank目录下。在这种情况下,一个对getContext方法的调用会返回/bank的Servlet环境。 HTTP会话 HTTP是一个没有状态的协议。要建立一个有效的Web服务应用,你必须能够识别一个连续的来自远端的客户机的唯一的请求。随着时间的过去,发展了许多会话跟踪的技术,但是使用起来都比较麻烦。 JavaServletAPI提供了一个简单的接口,通过这个接口,Servlet引擎可以有效地跟踪用户的会话。 建立Session 因为HTTP是一个请求-响应协议,一个会话在客户机加入之前会被认为是一个新的会话。加入的意思是返回会话跟踪信息到服务器中,指出会话已被建立。在客户端加入之前,我们不能判断下一个客户端请求是目前会话的一部分。 在下面的情况下,Session会被认为是新的Session。 客户端的Session在此之前还不知道 客户端选择不加入Session,例如,如果客户端拒绝接收来自服务器的cookie 作为一个Servlet的开发者,你必须决定你的Web应用是否处理客户机不加入或不能加入Session。服务器会在Web服务器或Servlet规定的时间内维持一个Session对象。当Session终止时,服务器会释放Session对象以及所有绑定在Session上的对象。 绑定对象到Session中 如果有助于你处理应用的数据需求,你也许需要绑定对象到Session中,你可以通过一个唯一的名字绑定任何的对象到Session中,这时,你需要使用HttpSession对象。任何绑定到Session上的对象都可以被处理同一会话的Servlet调用。 有些对象可能需要你知道什么时候会被放置到Session中或从Session中移开。你可以通过使用HttpSessionBindingListener接口获得这些信息。当你的应用存储数据到Session中,或从Session中清除数据,Servlet都会通过HttpSessionBindingListener检杳什么类被绑定或被取消绑定。这个接口的方法会通报被绑定或被取消绑定的对象。 软件包:javax.servlet.http 所包含的接口:HttpServletRequest;HttpServletResponse;HttpSession;HttpSessionBindingListener;HttpSessionContext。 所包含的类:Cookie;HttpServlet;HttpSessionBindingEvent;HttpUtils。 一、HttpServletRequest接口 定义\ publicinterfaceHttpServletRequestextendsServletRequest; 用来处理一个对Servlet的HTTP格式的请求信息。 方法 1、getAuthType publicStringgetAuthType(); 返回这个请求的身份验证模式。 2、getCookies publicCookie[]getCookies(); 返回一个数组,该数组包含这个请求中当前的所有cookie。如果这个请求中没有cookie,返回一个空数组。 3、getDateHeader publiclonggetDateHeader(Stringname); 返回指定的请求头域的值,这个值被转换成一个反映自1970-1-1日(GMT)以来的精确到毫秒的长整数。 如果头域不能转换,抛出一个IllegalArgumentException。如果这个请求头域不存在,这个方法返回-1。 4、getHeader publicStringgetHeader(Stringname); 返回一个请求头域的值。(译者注:与上一个方法不同的是,该方法返回一个字符串) 如果这个请求头域不存在,这个方法返回-1。 5、getHeaderNames publicEnumerationgetHeaderNames(); 该方法返回一个String对象的列表,该列表反映请求的所有头域名。 有的引擎可能不允许通过这种方法访问头域,在这种情况下,这个方法返回一个空的列表。 6、getIntHeader publicintgetIntHeader(Stringname); 返回指定的请求头域的值,这个值被转换成一个整数。 如果头域不能转换,抛出一个IllegalArgumentException。如果这个请求头域不存在,这个方法返回-1。 7、getMethod publicStringgetMethod(); 返回这个请求使用的HTTP方法(例如:GET、POST、PUT) 8、getPathInfo publicStringgetPathInfo(); 这个方法返回在这个请求的URL的Servlet路径之后的请求URL的额外的路径信息。如果这个请求URL包括一个查询字符串,在返回值内将不包括这个查询字符串。这个路径在返回之前必须经过URL解码。如果在这个请求的URL的Servlet路径之后没有路径信息。这个方法返回空值。 9、getPathTranslated publicStringgetPathTranslated(); 这个方法获得这个请求的URL的Servlet路径之后的额外的路径信息,并将它转换成一个真实的路径。在进行转换前,这个请求的URL必须经过URL解码。如果在这个URL的Servlet路径之后没有附加路径信息。这个方法返回空值。 10、getQueryString publicStringgetQueryString(); 返回这个请求URL所包含的查询字符串。一个查询字串符在一个URL中由一个“?”引出。如果没有查询字符串,这个方法返回空值。 11、getRemoteUser publicStringgetRemoteUser 返回作了请求的用户名,这个信息用来作HTTP用户论证。 如果在请求中没有用户名信息,这个方法返回空值。 12、getRequestedSessionId publicStringgetRequestedSessionId(); 返回这个请求相应的sessionid。如果由于某种原因客户端提供的sessionid是无效的,这个sessionid将与在当前session中的sessionid不同,与此同时,将建立一个新的session。 如果这个请求没与一个session关联,这个方法返回空值。 13、getRequestURI publicStringgetRequestURI(); 从HTTP请求的第一行返回请求的URL中定义被请求的资源的部分。如果有一个查询字符串存在,这个查询字符串将不包括在返回值当中。例如,一个请求通过/catalog/books?id=1这样的URL路径访问,这个方法将返回/catalog/books。这个方法的返回值包括了Servlet路径和路径信息。 如果这个URL路径中的的一部分经过了URL编码,这个方法的返回值在返回之前必须经过解码。 14、getServletPath publicStringgetServletPath(); 这个方法返回请求URL反映调用Servlet的部分。例如,一个Servlet被映射到/catalog/summer这个URL路径,而一个请求使用了/catalog/summer/casual这样的路径。所谓的反映调用Servlet的部分就是指/catalog/summer。 如果这个Servlet不是通过路径匹配来调用。这个方法将返回一个空值。 15、getSession publicHttpSessiongetSession(); publicHttpSessiongetSession(booleancreate); 返回与这个请求关联的当前的有效的session。如果调用这个方法时没带参数,那么在没有session与这个请求关联的情况下,将会新建一个session。如果调用这个方法时带入了一个布尔型的参数,只有当这个参数为真时,session才会被建立。 为了确保session能够被完全维持。Servlet开发者必须在响应被提交之前调用该方法。 如果带入的参数为假,而且没有session与这个请求关联。这个方法会返回空值。 16、isRequestedSessionIdValid publicbooleanisRequestedSessionIdValid(); 这个方法检查与此请求关联的session当前是不是有效。如果当前请求中使用的session无效,它将不能通过getSession方法返回。 17、isRequestedSessionIdFromCookie publicbooleanisRequestedSessionIdFromCookie(); 如果这个请求的sessionid是通过客户端的一个cookie提供的,该方法返回真,否则返回假。 18、isRequestedSessionIdFromURL publicbooleanisRequestedSessionIdFromURL(); 如果这个请求的sessionid是通过客户端的URL的一部分提供的,该方法返回真,否则返回假。请注意此方法与isRequestedSessionIdFromUrl在URL的拼写上不同。 以下方法将被取消\\r 19、isRequestedSessionIdFromUrl publicbooleanisRequestedSessionIdFromUrl(); 该方法被isRequestedSessionIdFromURL代替。 二、HttpServletResponse接口 定义\\r publicinterfaceHttpServletResponseextendsServletResponse 描述一个返回到客户端的HTTP回应。这个接口允许Servlet程序员利用HTTP协议规定的头信息。 成员变量 publicstaticfinalintSC_CONTINUE=100; publicstaticfinalintSC_SWITCHING_PROTOCOLS=101; publicstaticfinalintSC_OK=200; publicstaticfinalintSC_CREATED=201; publicstaticfinalintSC_ACCEPTED=202; publicstaticfinalintSC_NON_AUTHORITATIVE_INFORMATION=203; publicstaticfinalintSC_NO_CONTENT=204; publicstaticfinalintSC_RESET_CONTENT=205; publicstaticfinalintSC_PARTIAL_CONTENT=206; publicstaticfinalintSC_MULTIPLE_CHOICES=300; publicstaticfinalintSC_MOVED_PERMANENTLY=301; publicstaticfinalintSC_MOVED_TEMPORARILY=302; publicstaticfinalintSC_SEE_OTHER=303; publicstaticfinalintSC_NOT_MODIFIED=304; publicstaticfinalintSC_USE_PROXY=305; publicstaticfinalintSC_BAD_REQUEST=400; publicstaticfinalintSC_UNAUTHORIZED=401; publicstaticfinalintSC_PAYMENT_REQUIRED=402; publicstaticfinalintSC_FORBIDDEN=403; publicstaticfinalintSC_NOT_FOUND=404; publicstaticfinalintSC_METHOD_NOT_ALLOWED=405; publicstaticfinalintSC_NOT_ACCEPTABLE=406; publicstaticfinalintSC_PROXY_AUTHENTICATION_REQUIRED=407; publicstaticfinalintSC_REQUEST_TIMEOUT=408; publicstaticfinalintSC_CONFLICT=409; publicstaticfinalintSC_GONE=410; publicstaticfinalintSC_LENGTH_REQUIRED=411; publicstaticfinalintSC_PRECONDITION_FAILED=412; publicstaticfinalintSC_REQUEST_ENTITY_TOO_LARGE=413; publicstaticfinalintSC_REQUEST_URI_TOO_LONG=414; publicstaticfinalintSC_UNSUPPORTED_MEDIA_TYPE=415; publicstaticfinalintSC_INTERNAL_SERVER_ERROR=500; publicstaticfinalintSC_NOT_IMPLEMENTED=501; publicstaticfinalintSC_BAD_GATEWAY=502; publicstaticfinalintSC_SERVICE_UNAVAILABLE=503; publicstaticfinalintSC_GATEWAY_TIMEOUT=504; publicstaticfinalintSC_HTTP_VERSION_NOT_SUPPORTED=505; 以上HTTP产状态码是由HTTP/1.1定义的。 方法 1、addCookie publicvoidaddCookie(Cookiecookie); 在响应中增加一个指定的cookie。可多次调用该方法以定义多个cookie。为了设置适当的头域,该方法应该在响应被提交之前调用。 2、containsHeader publicbooleancontainsHeader(Stringname); 检查是否设置了指定的响应头。 3、encodeRedirectURL publicStringencodeRedirectURL(Stringurl); 对sendRedirect方法使用的指定URL进行编码。如果不需要编码,就直接返回这个URL。之所以提供这个附加的编码方法,是因为在redirect的情况下,决定是否对URL进行编码的规则和一般情况有所不同。所给的URL必须是一个绝对URL。相对URL不能被接收,会抛出一个IllegalArgumentException。 所有提供给sendRedirect方法的URL都应通过这个方法运行,这样才能确保会话跟踪能够在所有浏览器中正常运行。 4、encodeURL publicStringencodeURL(Stringurl); 对包含sessionID的URL进行编码。如果不需要编码,就直接返回这个URL。Servlet引擎必须提供URL编码方法,因为在有些情况下,我们将不得不重写URL,例如,在响应对应的请求中包含一个有效的session,但是这个session不能被非URL的(例如cookie)的手段来维持。 所有提供给Servlet的URL都应通过这个方法运行,这样才能确保会话跟踪能够在所有浏览器中正常运行。 5、sendError publicvoidsendError(intstatusCode)throwsIOException; publicvoidsendError(intstatusCode,Stringmessage)throws IOException; 用给定的状态码发给客户端一个错误响应。如果提供了一个message参数,这将作为响应体的一部分被发出,否则,服务器会返回错误代码所对应的标准信息。 调用这个方法后,响应立即被提交。在调用这个方法后,Servlet不会再有更多的输出。 6、sendRedirect publicvoidsendRedirect(Stringlocation)throwsIOException; 使用给定的路径,给客户端发出一个临时转向的响应(SC_MOVED_TEMPORARILY)。给定的路径必须是绝对URL。相对URL将不能被接收,会抛出一个IllegalArgumentException。 这个方法必须在响应被提交之前调用。调用这个方法后,响应立即被提交。在调用这个方法后,Servlet不会再有更多的输出。 7、setDateHeader publicvoidsetDateHeader(Stringname,longdate); 用一个给定的名称和日期值设置响应头,这里的日期值应该是反映自1970-1-1日(GMT)以来的精确到毫秒的长整数。如果响应头已经被设置,新的值将覆盖当前的值。 8、setHeader publicvoidsetHeader(Stringname,Stringvalue); 用一个给定的名称和域设置响应头。如果响应头已经被设置,新的值将覆盖当前的值。 9、setIntHeader publicvoidsetIntHeader(Stringname,intvalue); 用一个给定的名称和整形值设置响应头。如果响应头已经被设置,新的值将覆盖当前的值。 10、setStatus publicvoidsetStatus(intstatusCode); 这个方法设置了响应的状态码,如果状态码已经被设置,新的值将覆盖当前的值。 以下的几个方法将被取消\ 11、encodeRedirectUrl publicStringencodeRedirectUrl(Stringurl); 该方法被encodeRedirectURL取代。 12、encodeUrl publicStringencodeUrl(Stringurl); 该方法被encodeURL取代。 13、setStatus publicvoidsetStatus(intstatusCode,Stringmessage); 这个方法设置了响应的状态码,如果状态码已经被设置,新的值将覆盖当前的值。如果提供了一个message,它也将会被作为响应体的一部分被发送。 三、HttpSession接口 定义\ publicinterfaceHttpSession 这个接口被Servlet引擎用来实现在HTTP客户端和HTTP会话两者的关联。这种关联可能在多外连接和请求中持续一段给定的时间。session用来在无状态的HTTP协议下越过多个请求页面来维持状态和识别用户。 一个session可以通过cookie或重写URL来维持。 方法 1、getCreationTime publiclonggetCreationTime(); 返回建立session的时间,这个时间表示为自1970-1-1日(GMT)以来的毫秒数。 2、getId publicStringgetId(); 返回分配给这个session的标识符。一个HTTPsession的标识符是一个由服务器来建立和维持的唯一的字符串。 3、getLastAccessedTime publiclonggetLastAccessedTime(); 返回客户端最后一次发出与这个session有关的请求的时间,如果这个session是新建立的,返回-1。这个时间表示为自1970-1-1日(GMT)以来的毫秒数。 4、getMaxInactiveInterval publicintgetMaxInactiveInterval(); 返加一个秒数,这个秒数表示客户端在不发出请求时,session被Servlet引擎维持的最长时间。在这个时间之后,Servlet引擎可能被Servlet引擎终止。如果这个session不会被终止,这个方法返回-1。 当session无效后再调用这个方法会抛出一个IllegalStateException。 5、getValue publicObjectgetValue(Stringname); 返回一个以给定的名字绑定到session上的对象。如果不存在这样的绑定,返回空值。 当session无效后再调用这个方法会抛出一个IllegalStateException。 6、getValueNames publicString[]getValueNames(); 以一个数组返回绑定到session上的所有数据的名称。 当session无效后再调用这个方法会抛出一个IllegalStateException。 7、invalidate publicvoidinvalidate(); 这个方法会终止这个session。所有绑定在这个session上的数据都会被清除。并通过HttpSessionBindingListener接口的valueUnbound方法发出通告。 8、isNew publicbooleanisNew(); 返回一个布尔值以判断这个session是不是新的。如果一个session已经被服务器建立但是还没有收到相应的客户端的请求,这个session将被认为是新的。这意味着,这个客户端还没有加入会话或没有被会话公认。在他发出下一个请求时还不能返回适当的session认证信息。 当session无效后再调用这个方法会抛出一个IllegalStateException。 9、putValue publicvoidputValue(Stringname,Objectvalue); 以给定的名字,绑定给定的对象到session中。已存在的同名的绑定会被重置。这时会调用HttpSessionBindingListener接口的valueBound方法。 当session无效后再调用这个方法会抛出一个IllegalStateException。 10、removeValue publicvoidremoveValue(Stringname); 取消给定名字的对象在session上的绑定。如果未找到给定名字的绑定的对象,这个方法什么出不做。这时会调用HttpSessionBindingListener接口的valueUnbound方法。 当session无效后再调用这个方法会抛出一个IllegalStateException。 11、setMaxInactiveInterval publicintsetMaxInactiveInterval(intinterval); 设置一个秒数,这个秒数表示客户端在不发出请求时,session被Servlet引擎维持的最长时间。 以下这个方法将被取消\ 12、getSessionContext publicHttpSessionContextgetSessionContext(); 返回session在其中得以保持的环境变量。这个方法和其他所有HttpSessionContext的方法一样被取消了。 四、HttpSessionBindingListener接口 定义\ publicinterfaceHttpSessionBindingListener 这个对象被加入到HTTP的session中,执行这个接口会通告有没有什么对象被绑定到这个HTTPsession中或被从这个HTTPsession中取消绑定。 方法 1、valueBound publicvoidvalueBound(HttpSessionBindingEventevent); 当一个对象被绑定到session中,调用此方法。HttpSession.putValue方法被调用时,Servlet引擎应该调用此方法。 2、valueUnbound publicvoidvalueUnbound(HttpSessionBindingEventevent); 当一个对象被从session中取消绑定,调用此方法。HttpSession.removeValue方法被调用时,Servlet引擎应该调用此方法。 五、HttpSessionContext接口 定义\ 此接口将被取消\ publicinterfaceHttpSessionContext 这个对象是与一组HTTPsession关联的单一的实体。 这个接口由于安全的原因被取消,它出现在目前的版本中仅仅是为了兼容性的原因。这个接口的方法将模拟以前的版本的定义返回相应的值。 方法 1、getSession publicHttpSessiongetSession(StringsessionId); 当初用来返回与这个sessionid相关的session。现在返回空值。 2、getIds publicEnumerationgetIds(); 当初用来返回这个环境下所有sessionid的列表。现在返回空的列表。 六、Cookie类\ 定义\ publicclassCookieimplementsCloneable 这个类描述了一个cookie,有关cookie的定义你可以参照NetscapeCommunicationsCorporation的说明,也可以参照RFC2109。 构造函数 publicCookie(Stringname,Stringvalue); 用一个name-value对定义一个cookie。这个name必须能被HTTP/1.1所接受。 以字符$开头的name被RFC2109保留。 给定的name如果不能被HTTP/1.1所接受,该方法抛出一个IllegalArgumentException。 方法 1、getComment publicStringgetComment(); 返回描述这个cookie目的的说明,如果未定义这个说明,返回空值。 2、getDomain publicStringgetDomain(); 返回这个cookie可以出现的区域,如果未定义区域,返回空值。 3、getMaxAge publicintgetMaxAge(); 这个方法返回这个cookie指定的最长存活时期。如果未定义这个最长存活时期,该方法返回-1。 4、getName publicStringgetName(); 该方法返回cookie名。 5、getPath publicStringgetPath(); 返回这个cookie有效的所有URL路径的前缀,如果未定义,返回空值。 6、getSecure publicbooleangetSecure(); 如果这个cookie只通过安全通道传输返回真,否则返回假。 7、getValue publicStringgetValue(); 该方法返回cookie的值。 8、getVersion publicintgetVersion(); 返回cookie的版本。版本1由RFC2109解释。版本0由NetscapeCommunicationsCorporation的说明解释。新构造的cookie默认使用版本0。 9、setComment publicvoidsetComment(Stringpurpose); 如果一个用户将这个cookie提交给另一个用户,必须通过这个说明描述这个cookie的目的。版本0不支持这个属性。 10、setDomain publicvoidsetDomain(Stringpattern); 这个方法设置cookie的有效域的属性。这个属性指定了cookie可以出现的区域。一个有效域以一个点开头(.foo.com),这意味着在指定的域名解析系统的区域中(可能是www.foo.com但不是a.b.foo.com)的主机可以看到这个cookie。默认情况是,cookie只能返回保存它的主机。 11、setMaxAge publicvoidsetMaxAge(intexpiry); 这个方法设定这个cookie的最长存活时期。在该存活时期之后,cookie会被终目。负数表示这个cookie不会生效,0将从客户端删除这个cookie。 12、setPath publicvoidsetPath(Stringuri); 这个方法设置cookie的路径属性。客户端只能向以这个给定的路径String开头的路径返回cookie。 13、setSecure publicvoidsetSecure(booleanflag); 指出这个cookie只能通过安全通道(例如HTTPS)发送。只有当产生这个cookie的服务器使用安全协议发送这个cookie值时才能这样设置。 14、setValue publicvoidsetValue(StringnewValue); 设置这个cookie的值,对于二进制数据采用BASE64编码。 版本0不能使用空格、{}、()、=、,、“”、/、?、@、:以及;。 15、setVersion publicvoidsetVersion(intv); 设置cookie的版本号 七、HttpServlet类\ 定义\ publicclassHttpServletextendsGenericServletimplements Serializable 这是一个抽象类,用来简化HTTPServlet写作的过程。它是GenericServlet类的扩充,提供了一个处理HTTP协议的框架。 在这个类中的service方法支持例如GET、POST这样的标准的HTTP方法。这一支持过程是通过分配他们到适当的方法(例如doGet、doPost)来实现的。 方法 1、doDelete protectedvoiddoDelete(HttpServletRequestrequest, HttpServletResponseresponse)throwsServletException, IOException; 被这个类的service方法调用,用来处理一个HTTPDELETE操作。这个操作允许客户端请求从服务器上删除URL。这一操作可能有负面影响,对此用户就负起责任。 这一方法的默认执行结果是返回一个HTTPBAD_REQUEST错误。当你要处理DELETE请求时,你必须重载这一方法。 2、doGet protectedvoiddoGet(HttpServletRequestrequest, HttpServletResponseresponse)throwsServletException, IOException; 被这个类的service方法调用,用来处理一个HTTPGET操作。这个操作允许客户端简单地从一个HTTP服务器“获得”资源。对这个方法的重载将自动地支持HEAD方法。 GET操作应该是安全而且没有负面影响的。这个操作也应该可以安全地重复。 这一方法的默认执行结果是返回一个HTTPBAD_REQUEST错误。 3、doHead protectedvoiddoHead(HttpServletRequestrequest, HttpServletResponseresponse)throwsServletException, IOException; 被这个类的service方法调用,用来处理一个HTTPHEAD操作。默认的情况是,这个操作会按照一个无条件的GET方法来执行,该操作不向客户端返回任何数据,而仅仅是返回包含内容长度的头信息。 与GET操作一样,这个操作应该是安全而且没有负面影响的。这个操作也应该可以安全地重复。 这个方法的默认执行结果是自动处理HTTPHEAD操作,这个方法不需要被一个子类执行。 4、doOptions protectedvoiddoOptions(HttpServletRequestrequest, HttpServletResponseresponse)throwsServletException, IOException; 被这个类的service方法调用,用来处理一个HTTPOPTION操作。这个操作自动地决定支持哪一种HTTP方法。例如,一个Servlet写了一个HttpServlet的子类并重载了doGet方法,doOption会返回下面的头: Allow:GET,HEAD,TRACE,OPTIONS 你一般不需要重载这个方法。 5、doPost protectedvoiddoPost(HttpServletRequestrequest, HttpServletResponseresponse)throwsServletException, IOException; 被这个类的service方法调用,用来处理一个HTTPPOST操作。这个操作包含请求体的数据,Servlet应该按照他行事。 这个操作可能有负面影响。例如更新存储的数据或在线购物。 这一方法的默认执行结果是返回一个HTTPBAD_REQUEST错误。当你要处理POST操作时,你必须在HttpServlet的子类中重载这一方法。 6、doPut protectedvoiddoPut(HttpServletRequestrequest, HttpServletResponseresponse)throwsServletException, IOException; 被这个类的service方法调用,用来处理一个HTTPPUT操作。这个操作类似于通过FTP发送文件。 这个操作可能有负面影响。例如更新存储的数据或在线购物。 这一方法的默认执行结果是返回一个HTTPBAD_REQUEST错误。当你要处理PUT操作时,你必须在HttpServlet的子类中重载这一方法。 7、doTrace protectedvoiddoTrace(HttpServletRequestrequest, HttpServletResponseresponse)throwsServletException, IOException; 被这个类的service方法调用,用来处理一个HTTPTRACE操作。这个操作的默认执行结果是产生一个响应,这个响应包含一个反映trace请求中发送的所有头域的信息。 当你开发Servlet时,在多数情况下你需要重载这个方法。 8、getLastModified protectedlonggetLastModified(HttpServletRequestrequest); 返回这个请求实体的最后修改时间。为了支持GET操作,你必须重载这一方法,以精确地反映最后修改的时间。这将有助于浏览器和代理服务器减少装载服务器和网络资源,从而更加有效地工作。返回的数值是自1970-1-1日(GMT)以来的毫秒数。 默认的执行结果是返回一个负数,这标志着最后修改时间未知,它也不能被一个有条件的GET操作使用。 9、service protectedvoidservice(HttpServletRequestrequest, HttpServletResponseresponse)throwsServletException, IOException; publicvoidservice(ServletRequestrequest,ServletResponseresponse) throwsServletException,IOException; 这是一个Servlet的HTTP-specific方案,它分配请求到这个类的支持这个请求的其他方法。 当你开发Servlet时,在多数情况下你不必重载这个方法。 八、HttpSessionBindingEvent类\ 定义\ publicclassHttpSessionBindingEventextendsEventObject 这个事件是在监听到HttpSession发生绑定和取消绑定的情况时连通HttpSessionBindingListener的。这可能是一个session被终止或被认定无效的结果。 事件源是HttpSession.putValue或HttpSession.removeValue。 构造函数 publicHttpSessionBindingEvent(HttpSessionsession,Stringname); 通过引起这个事件的Session和发生绑定或取消绑定的对象名构造一个新的HttpSessionBindingEvent。 方法 1、getName publicStringgetName(); 返回发生绑定和取消绑定的对象的名字。 2、getSession publicHttpSessiongetSession(); 返回发生绑定和取消绑定的session的名字。 九、HttpUtils类\ 定义\ publicclassHttpUtils 收集HTTPServlet使用的静态的有效的方法。 方法 1、getRequestURL publicstaticStringBuffergetRequestURL(HttpServletRequest request); 在服务器上重建客户端用来建立请求的URL。这个方法反映了不同的协议(例如http和https)和端口,但不包含查询字符串。 这个方法返回一个StringBuffer而不是一个String,这样URL可以被Servlet开发者有效地修改。 2、parsePostData publicstaticHashtableparsePostData(intlen, ServletInputstreamin); 解析一个包含MIME类型application/x-www-form-urlencoded的数据的流,并创建一个具有关键值-数据对的hashtable。这里的关键值是字符串,数据是该字符串所对应的值的列表。一个关键值可以在POST的数据中出现一次或多次。这个关键值每出现一次,它的相应的值就被加入到hashtable中的字符串所对应的值的列表中。 从POST数据读出的数据将经过URL解码,+将被转换为空格以十六进制传送的数据(例如%xx)将被转换成字符。 当POST数据无效时,该方法抛出一个IllegalArgumentException。 3、parseQueryString publicstaticHashtableparseQueryString(Strings); 解析一个查询字符串,并创建一个具有关键值-数据对的hashtable。这里的数据是该字符串所对应的值的列表。一个关键值可以出现一次或多次。这个关键值每出现一次,它的相应的值就被加入到hashtable中的字符串所对应的值的列表中。 从查询字符串读出的数据将经过URL解码,+将被转换为空格以十六进制传送的数据(例如%xx)将被转换成字符。 当查询字符串无效时,该方法抛出一个IllegalArgumentException。 bytecode 字节码:由Java编译器和Java解释程序生成的机器代码。 cookie 由Web服务器建立的数据,该数据存储在用户的计算机上,提供了一个Web站点跟踪用户的参数并存储在用户自己硬盘上的方法。 HTTP 超文本传输协议。一个请求响应协议用来连接WWW服务器向客户端浏览器传输HTML页面。 输入流对象\r 一个对象,由ServletInputStream类定义,被Servlet用来从客户端读取请求。 映射\r 由Servlet实例和Servlet返回数据的URL组成的一对,例如,HelloServlet和/hello/index.html。 输出流对象\r 一个对象,由ServletOutputStreamclass类定义,被Servlet用来向客户端返回数据。 requestdispatcherobject 由RequestDispatcher接口定义的一个对象,用来从客户端接收请求,并将其发送到Web服务器上可用的其他资源(例如Servlet、CGI、HTML文件或JSP文件)。 sandboxedservlet 在一个安全性约束下运行的Servlet。 servlet 一个小的,具有平台无关性的,没有图形用户界面的Java程序。它可以在许多方面扩充Web服务的功能。 servletconfigurationobject ServletConfig接口定义的一个对象,用来配置一个Servlet。 servletcontextobject ServletContext接口定义的一个对象。给予Servlet有关Servlet引擎的信息。 servlet引擎\r 由Web服务器提供商制作的一个环境,可以允许Servlet在具体的Web服务器上运行。 servlet请求对象 由ServletRequest接口定义的一个对象,允许Servlet获得用关客户端请求的数据。 servletresponseobject 由ServletResponse接口定义的一个对象,允许Servlet作出响应。 servletrunner JavaServletDeveloper’sKit(JSDK)中的sun.servlet.http.HttpServer过程,它使得Servlet得以运行。 会话跟踪 在一个Web应用程序中,识别一个从同一个客户端发出的连续的唯一的请求的能力。 SSL 加密套接字协议层。一个安全协议,用来在Iternet上的客户端浏览器和服务器交换密钥和加密数据。 URI 统一资源标识。定义一个Internet地址,它是一个URL的超集。 URL 统一资源路径。这个地址定义了到达一个WWW上的文件的路线,通常由协议前缀、域名、目录名和文件名组成。
CPU-Z Readme file ------------------ Version 1.45 May 2008 Contact : cpuz@cpuid.com Web page: http://www.cpuid.com/cpuz.php Validation page : http://valid.x86-secret.com/ Forum : http://forum.x86-secret.com/forumdisplay.php?f=16 CPUID SDK : http://www.cpuid-pro.com/devkits.php CPU-Z is a freeware and can be freely distributed. Configuration file (cpuz.ini) ------------------------------ The configuration file must be named cpuz.ini and be present at the same directory level as cpuz.exe. It contains the following : [CPU-Z] TextFontName=Verdana TextFontSize=13 TextFontColor=000060 LabelFontName=Verdana LabelFontSize=13 PCI=ON MaxPCIBus=256 DMI=ON Sensor=ON SMBus=ON - TextFontName : Font used for the information boxes. - TextFontSize : Size of the font used for the information boxes. - TextFontColor : Color of the font used for the information boxes. Value is expressed in hexadecimal, and consists in a classic Red/Green/Blue color code : RRGGBB - LabelFontName : Font used for the label boxes. - LabelFontSize : Size of the font used for the label boxes. - Sensor : Set to OFF disables sensor chip detection and voltages measurement. - PCI : Set to OFF disables the PCI information. This disables chipset, SPD and, depending on the hardware, sensoring information. - MaxPCIBus : Sets the maximum PCI bus to scan. Default value is 256. - DMI : Set to OFF disables the DMI (Desktop Management Interface) information. This concerns BIOS vendor and version, motherboard vendor and revision. - SMBus : Set to OFF disables SMBus information : SPD, and, depending on the hardware, sensoring information. Parameters ---------- -txt=filename : Launch CPU-Z in ghost mode (no interface appears) and generates the register dump file (.txt) in the same directory as the exe file. -html=filename : Same as "-txt" except it generates the html report. -core=id : Displays clock speed of core #id (id can be set from 0 to Number of cores minus one). Keys ---- F5 : save the current tab in a bmp file F6 : save the current tab in the clipboard F7 : save cvf file in the current directory Cache Latency Tool ------------------ The cache latency tool can be downloaded at that address : http://www.cpuid.com/download/latency.zip History ------- -------------------------------------------------------------------------------------------------- 1.45 - May 2008 - Intel Atom Z500/Z510/Z520/Z530/Z540 processors. - Intel Core 2 Duo E7x00 processor. - AMD 45 nm Phenom (Dened & Shanghai) processors. - Intel P45 chipset. MD5 cpuz.exe (1.45) : DD4E540C04297CF93DC721166C13446E -------------------------------------------------------------------------------------------------- 1.44.2 - Mars 2008 - NVIDIA 650i, 680i, 750a/780a, 750i, 780i, 790i chipsets (1.44.2) - Intel G35 chipset (1.44.2) - Updated support for VIA chipsets (1.44.2) - Support for the new validator (1.44.1) - Preliminary support for VIA Isaiah processor. - Support for all VIA Model D processors: VIA C7-M, VIA C7-D, VIA Eden, VIA Eden. - Memory timings on Intel 5400A/B MCH (Skulltrail). - Fix AMD Phenom detection issue on Windows Vista 64. MD5 (1.44.2) : 81FB48A6EC7355E8D0DD71ADC2157CF6 -------------------------------------------------------------------------------------------------- 1.43 - January 2008 - Intel Skulltrail platform support (Core 2 Extreme QX9775 + 5400B MCH). - Intel X48 chipset detection. - AMD Athlon 64-LE 1600 and 1620 support. - Fix detection issues on unlocked Phenom (ES/BE). -------------------------------------------------------------------------------------------------- 1.42 - November 2007 - Intel Wolfdale/Yorkfield/Penryn CPUs support. - AMD Phenom and Opteron Barcelona support improved. - Current core selection menu (right click on the CPU page). - Loading progress. -------------------------------------------------------------------------------------------------- 1.41 - September 2007 - New CPU voltage monitoring. - Intel Xeon Tigerton support. - Intel IA64 CPUs support (Itanium / Itanium2)(special thanks to Rami Radi and Ray Hinchliffe). - AMD K10 Phenom preliminary support. - NVIDIA MCP73 support. - Intel XMP profiles support. - Memory modules nominal voltage. -------------------------------------------------------------------------------------------------- 1.40.5 - July 2007 - NVIDIA nForce 560 chipset support. - Intel Dynamic FSB technology support. - Athlon 64 X2 BE & Sempron LE (TDP 45W). - SiS671/FX/DX/MX northbridge support. - SiS968 southbridge support. -------------------------------------------------------------------------------------------------- 1.40 - May 2007 - VIA P4M800CE chipset support. - Preliminary support for Intel Penryn CPUs family (45 nm). - Intel Core 2 Duo E6x20, Pentium E2140/2160 processors recognition. - Intel P35, G33, G31, Q35, Q33, X38 chipsets support. - Intel GL960/GM965/PM965 chipsets support. - AMD Athlon 64 "Lima" processor support. - AMD Geode LX processor support. - NVIDIA nForce 520 chipset support. - New parameter "-console" to generate output in a command prompt (Windows XP only). - New icon. -------------------------------------------------------------------------------------------------- 1.39 - February 2007 - Windows Vista 64 support. - VIA CX700/VX700 chipset. - Added Merom XE (X7900/X7800) - Added "PCI" and "MaxPCIBus" in the ini file to configure PCI scanning. - Added "-core" parameter to display the clock speed of the specified core. - Lot of bug fixes. -------------------------------------------------------------------------------------------------- 1.38 - November 2006 - VIA P4M890 and P4M900 chipsets. - NVIDIA 650i and 680i chipset. - AMD Athlon 64 FX-7x processor. - Core 2 Duo E6850, E6750, E6650 processors. - socket 775 Xeon processor. - New parameters "-txt" and "-html" (see above). - Lot of bug fixes. -------------------------------------------------------------------------------------------------- 1.37 - October 2006 - Intel Core 2 Quad, Celeron 360, Mobile Core 2 Duo T5200 support. - Changed SSE4 to SSSE3 (Supplemental SSE3). - Added VIA VT8237A southbridge. - New HTML report. - Several bug fixes. -------------------------------------------------------------------------------------------------- 1.36 - August 2006 - New processor information display. - Intel 5000X/P/Z/V SPD support. - Intel Pentium D 925 & 945. -------------------------------------------------------------------------------------------------- 1.35 - June 2006 - ATI RS350, RS400, RS480/RX480, RS482, RD580/RX580, RS600/RD600, RS690, RS700 chipsets support. - ATI SB600 southbridge support. - Intel P965 chipset support. - Engineering samples Core based CPUs report. - Windows Vista product line report. -------------------------------------------------------------------------------------------------- 1.34.1 - May 2006 - AMD socket AM2/S1/F (rev F.) CPUs support. - Enhanced Performance Profile (EPP) memory information report. - Added Trc (bank cycle time) in DDR2 SPD report. - Added Trc (bank cycle time) on i925, i945, i955, i975 chipsets. - FB-DIMM DDR2 SPD information report. - Core 2 Duo names and logos added. - Turion 64 X2 logo added. - Several bug fixed. -------------------------------------------------------------------------------------------------- 1.33.1 - April 2006 - Intel i965 chipset support added. - Fix SPD detection problem on SiS 964/965/966 southbridges. - ODC (Odd Divisor Correct) for Athlon64 rev E. -------------------------------------------------------------------------------------------------- 1.33 - April 2006 - Memory Command Rate timing added. - Improved support for Intel Conroe/Merom CPUs. - Celeron M 420/430 Yonah. - Xeon Dual core Dempsey. - VIA C7-M CPU detection added. - VIA PT880, PT880 Pro, K8T900 chipsets support. - nVidia nForce 550/560/570 (MCP55) chipset support. - VIA VT8251 southbridge support. - Fixed HyperTransport information misreports (in dump file). - Added K6-2 and K6-III logos. -------------------------------------------------------------------------------------------------- 1.32.1 - March 2006 - New Intel logos. - Added Pentium D 925, Pentium EE 965. - Several bugs fixed. -------------------------------------------------------------------------------------------------- 1.32 - February 2006 - Athlon FX-60 detection added. - Athlon64 new memory dividers. - Celeron 35x Cedar Mill, Pentium D 805. - Core Solo & Core Duo detection improved. - VIA C7 CPU detection added. - Intel i975X, i945GT chipsets support. - ATI RD580 chipset support. - ULi smbus support improved. - Fix smbus conflict with ClockGen. -------------------------------------------------------------------------------------------------- 1.31 - November 2005 - Improved support for ATI RS480/482 chipsets. - GeForce 6100/6150 (nForce 410/430) chipsets support. - Intel E7520 chipset support. - New CPUs support : AMD Opteron socket 939, Intel Pentium 4 Cedar Mill and Presler, Intel Xeon Paxville, Intel Pentium M Yonah SC & DC. - Several bug fixed. -------------------------------------------------------------------------------------------------- 1.30 - August 2005 - Latest Sempron and Turion support improved. - Intel Xeon Potomac, Pentium M 780 support. - Improved Windows version report. - Support for SMBus on latest SiS bridges (964, 965, 966) and ULi bridges. - Increased clocks refresh rate. - Several bug fixed. -------------------------------------------------------------------------------------------------- 1.29 - June 2005 - New PCI devices report. - Switch for VCore report in .ini file. - VCore report on some uGuru mainboards. - Improved clocks computation. - Improved support for latest AMD CPUs, Celeron D 3x1 (EM64T). - Improved support for SiS 649, 650 and 656 chipsets, Intel 915PM chipset. - Improved stability when several instances of CPU-Z are running in the same time. - Restored html report in ghost mode (see "Parameters" chapter above). -------------------------------------------------------------------------------------------------- 1.28.6 - March 2005 - Support for Athlon 64 X2 CPUs - Support for i955X chipset - Bunch of bugs -------------------------------------------------------------------------------------------------- 1.28 - March 2005 - Support for SiS chipsets improved : 648FX, 649, 655FX, 655TX, 656 - Support for nVidia nForce4 SLI Intel Edition - Support for Intel Pentium D, Pentium XE, AMD Turion, Opteron 252 - New F7 key to simplifiy the creation of the validation file -------------------------------------------------------------------------------------------------- 1.27 - February 2005 - Support for Intel Pentium 4 6xx CPUs. - New validation system. - Hundred of bug fixes. -------------------------------------------------------------------------------------------------- 1.26 - December 2004 - VCore display on Pentium M CPUs. - New CPU clock computation. - Improved support of Transmeta CPUs. - Several bugs fixed. -------------------------------------------------------------------------------------------------- 1.25 - November 2004 - nVidia nForce4 chipset support - Intel Pentium 4J support - New button to refresh memory timings - Several bugs fixed -------------------------------------------------------------------------------------------------- 1.24 - September 2004 - AMD Sempron support - New memory SPD page - PCI-Express graphic interface support - Configuration file - External cache latency tool - Restored html report - Fix several bugs -------------------------------------------------------------------------------------------------- 1.23 - June 2004 - Intel i915P/G, i925X chipsets support - Intel LGA775 CPUs support - Intel's CPU number display - New AMD Athlon 64 steppings - New report in one file -------------------------------------------------------------------------------------------------- 1.22 - April 2004 - New CPUs : Xeon Nocona, Celeron Prescott - DDR2 memory support - Clock mode when iconized -------------------------------------------------------------------------------------------------- 1.21 - January 2004 - one file package - Windows 64 support - new chipsets support - new CPU support : Celeron M, Pentium 4 "Prescott" -------------------------------------------------------------------------------------------------- 1.20a - October 2003 - memory frequency and ratio on nForce2 - KT600 support - W83627THF VRM mode - SPD read improvement - Fix some memory leaks (DMI) - Fix memory size report - Fix AGP side band status --------------------------------------------------------------------------------------------------
CPU-Z Readme file ------------------ Version 1.47 August 2008 Contact : cpuz@cpuid.com Web page: http://www.cpuid.com/cpuz.php Validation page : http://valid.x86-secret.com/ Forum : http://forum.x86-secret.com/forumdisplay.php?f=16 CPUID SDK : http://www.cpuid-pro.com/devkits.php CPU-Z is a freeware and can be freely distributed. Configuration file (cpuz.ini) ------------------------------ The configuration file must be named cpuz.ini and be present at the same directory level as cpuz.exe. It contains the following : [CPU-Z] TextFontName=Verdana TextFontSize=13 TextFontColor=000060 LabelFontName=Verdana LabelFontSize=13 PCI=ON MaxPCIBus=256 DMI=ON Sensor=ON SMBus=ON Display=ON - TextFontName : Font used for the information boxes. - TextFontSize : Size of the font used for the information boxes. - TextFontColor : Color of the font used for the information boxes. Value is expressed in hexadecimal, and consists in a classic Red/Green/Blue color code : RRGGBB - LabelFontName : Font used for the label boxes. - LabelFontSize : Size of the font used for the label boxes. - Sensor : Set to OFF disables sensor chip detection and voltages measurement. - PCI : Set to OFF disables the PCI information. This disables chipset, SPD and, depending on the hardware, sensoring information. - MaxPCIBus : Sets the maximum PCI bus to scan. Default value is 256. - DMI : Set to OFF disables the DMI (Desktop Management Interface) information. This concerns BIOS vendor and version, motherboard vendor and revision. - SMBus : Set to OFF disables SMBus information : SPD, and, depending on the hardware, sensoring information. - Display : Set to OFF disables the video card information reported in the validator. Parameters ---------- -txt=filename : Launch CPU-Z in ghost mode (no interface appears) and generates the register dump file (.txt) in the same directory as the exe file. -html=filename : Same as "-txt" except it generates the html report. -core=id : Displays clock speed of core #id (id can be set from 0 to Number of cores minus one). Keys ---- F5 : save the current tab in a bmp file F6 : save the current tab in the clipboard F7 : save cvf file in the current directory Cache Latency Tool ------------------ The cache latency tool can be downloaded at that address : http://www.cpuid.com/download/latency.zip History ------- -------------------------------------------------------------------------------------------------- 1.47 - August 2008 - Intel Core i7 processor. - Intel Core 2 Duo S Mobile processors. - NVIDIA MCP79/7A chipset. - AMD 790GX / SB750 chipset. MD5 cpuz.exe (1.47) : A7484EFA3C32BC968C248CB1237FF493 -------------------------------------------------------------------------------------------------- 1.46 - June 2008 - AMD Puma platform (Turion & Turion Ultra "Griffin"); - AMD Black Edition processors. - Intel Xeon EX "Dunnington". MD5 cpuz.exe (1.46) : C47432C41EC26156128F7B8E09E884CF -------------------------------------------------------------------------------------------------- 1.45 - May 2008 - Intel Atom Z500/Z510/Z520/Z530/Z540 processors. - Intel Core 2 Duo E7x00 processor. - AMD 45 nm Phenom (Dened & Shanghai) processors. - Intel P45 chipset. MD5 cpuz.exe (1.45) : DD4E540C04297CF93DC721166C13446E -------------------------------------------------------------------------------------------------- 1.44.2 - Mars 2008 - NVIDIA 650i, 680i, 750a/780a, 750i, 780i, 790i chipsets (1.44.2) - Intel G35 chipset (1.44.2) - Updated support for VIA chipsets (1.44.2) - Support for the new validator (1.44.1) - Preliminary support for VIA Isaiah processor. - Support for all VIA Model D processors: VIA C7-M, VIA C7-D, VIA Eden, VIA Eden. - Memory timings on Intel 5400A/B MCH (Skulltrail). - Fix AMD Phenom detection issue on Windows Vista 64. MD5 (1.44.2) : 81FB48A6EC7355E8D0DD71ADC2157CF6 -------------------------------------------------------------------------------------------------- 1.43 - January 2008 - Intel Skulltrail platform support (Core 2 Extreme QX9775 + 5400B MCH). - Intel X48 chipset detection. - AMD Athlon 64-LE 1600 and 1620 support. - Fix detection issues on unlocked Phenom (ES/BE). -------------------------------------------------------------------------------------------------- 1.42 - November 2007 - Intel Wolfdale/Yorkfield/Penryn CPUs support. - AMD Phenom and Opteron Barcelona support improved. - Current core selection menu (right click on the CPU page). - Loading progress. -------------------------------------------------------------------------------------------------- 1.41 - September 2007 - New CPU voltage monitoring. - Intel Xeon Tigerton support. - Intel IA64 CPUs support (Itanium / Itanium2)(special thanks to Rami Radi and Ray Hinchliffe). - AMD K10 Phenom preliminary support. - NVIDIA MCP73 support. - Intel XMP profiles support. - Memory modules nominal voltage. -------------------------------------------------------------------------------------------------- 1.40.5 - July 2007 - NVIDIA nForce 560 chipset support. - Intel Dynamic FSB technology support. - Athlon 64 X2 BE & Sempron LE (TDP 45W). - SiS671/FX/DX/MX northbridge support. - SiS968 southbridge support. -------------------------------------------------------------------------------------------------- 1.40 - May 2007 - VIA P4M800CE chipset support. - Preliminary support for Intel Penryn CPUs family (45 nm). - Intel Core 2 Duo E6x20, Pentium E2140/2160 processors recognition. - Intel P35, G33, G31, Q35, Q33, X38 chipsets support. - Intel GL960/GM965/PM965 chipsets support. - AMD Athlon 64 "Lima" processor support. - AMD Geode LX processor support. - NVIDIA nForce 520 chipset support. - New parameter "-console" to generate output in a command prompt (Windows XP only). - New icon. -------------------------------------------------------------------------------------------------- 1.39 - February 2007 - Windows Vista 64 support. - VIA CX700/VX700 chipset. - Added Merom XE (X7900/X7800) - Added "PCI" and "MaxPCIBus" in the ini file to configure PCI scanning. - Added "-core" parameter to display the clock speed of the specified core. - Lot of bug fixes. -------------------------------------------------------------------------------------------------- 1.38 - November 2006 - VIA P4M890 and P4M900 chipsets. - NVIDIA 650i and 680i chipset. - AMD Athlon 64 FX-7x processor. - Core 2 Duo E6850, E6750, E6650 processors. - socket 775 Xeon processor. - New parameters "-txt" and "-html" (see above). - Lot of bug fixes. -------------------------------------------------------------------------------------------------- 1.37 - October 2006 - Intel Core 2 Quad, Celeron 360, Mobile Core 2 Duo T5200 support. - Changed SSE4 to SSSE3 (Supplemental SSE3). - Added VIA VT8237A southbridge. - New HTML report. - Several bug fixes. -------------------------------------------------------------------------------------------------- 1.36 - August 2006 - New processor information display. - Intel 5000X/P/Z/V SPD support. - Intel Pentium D 925 & 945. -------------------------------------------------------------------------------------------------- 1.35 - June 2006 - ATI RS350, RS400, RS480/RX480, RS482, RD580/RX580, RS600/RD600, RS690, RS700 chipsets support. - ATI SB600 southbridge support. - Intel P965 chipset support. - Engineering samples Core based CPUs report. - Windows Vista product line report. -------------------------------------------------------------------------------------------------- 1.34.1 - May 2006 - AMD socket AM2/S1/F (rev F.) CPUs support. - Enhanced Performance Profile (EPP) memory information report. - Added Trc (bank cycle time) in DDR2 SPD report. - Added Trc (bank cycle time) on i925, i945, i955, i975 chipsets. - FB-DIMM DDR2 SPD information report. - Core 2 Duo names and logos added. - Turion 64 X2 logo added. - Several bug fixed. -------------------------------------------------------------------------------------------------- 1.33.1 - April 2006 - Intel i965 chipset support added. - Fix SPD detection problem on SiS 964/965/966 southbridges. - ODC (Odd Divisor Correct) for Athlon64 rev E. -------------------------------------------------------------------------------------------------- 1.33 - April 2006 - Memory Command Rate timing added. - Improved support for Intel Conroe/Merom CPUs. - Celeron M 420/430 Yonah. - Xeon Dual core Dempsey. - VIA C7-M CPU detection added. - VIA PT880, PT880 Pro, K8T900 chipsets support. - nVidia nForce 550/560/570 (MCP55) chipset support. - VIA VT8251 southbridge support. - Fixed HyperTransport information misreports (in dump file). - Added K6-2 and K6-III logos. -------------------------------------------------------------------------------------------------- 1.32.1 - March 2006 - New Intel logos. - Added Pentium D 925, Pentium EE 965. - Several bugs fixed. -------------------------------------------------------------------------------------------------- 1.32 - February 2006 - Athlon FX-60 detection added. - Athlon64 new memory dividers. - Celeron 35x Cedar Mill, Pentium D 805. - Core Solo & Core Duo detection improved. - VIA C7 CPU detection added. - Intel i975X, i945GT chipsets support. - ATI RD580 chipset support. - ULi smbus support improved. - Fix smbus conflict with ClockGen. -------------------------------------------------------------------------------------------------- 1.31 - November 2005 - Improved support for ATI RS480/482 chipsets. - GeForce 6100/6150 (nForce 410/430) chipsets support. - Intel E7520 chipset support. - New CPUs support : AMD Opteron socket 939, Intel Pentium 4 Cedar Mill and Presler, Intel Xeon Paxville, Intel Pentium M Yonah SC & DC. - Several bug fixed. -------------------------------------------------------------------------------------------------- 1.30 - August 2005 - Latest Sempron and Turion support improved. - Intel Xeon Potomac, Pentium M 780 support. - Improved Windows version report. - Support for SMBus on latest SiS bridges (964, 965, 966) and ULi bridges. - Increased clocks refresh rate. - Several bug fixed. -------------------------------------------------------------------------------------------------- 1.29 - June 2005 - New PCI devices report. - Switch for VCore report in .ini file. - VCore report on some uGuru mainboards. - Improved clocks computation. - Improved support for latest AMD CPUs, Celeron D 3x1 (EM64T). - Improved support for SiS 649, 650 and 656 chipsets, Intel 915PM chipset. - Improved stability when several instances of CPU-Z are running in the same time. - Restored html report in ghost mode (see "Parameters" chapter above). -------------------------------------------------------------------------------------------------- 1.28.6 - March 2005 - Support for Athlon 64 X2 CPUs - Support for i955X chipset - Bunch of bugs -------------------------------------------------------------------------------------------------- 1.28 - March 2005 - Support for SiS chipsets improved : 648FX, 649, 655FX, 655TX, 656 - Support for nVidia nForce4 SLI Intel Edition - Support for Intel Pentium D, Pentium XE, AMD Turion, Opteron 252 - New F7 key to simplifiy the creation of the validation file -------------------------------------------------------------------------------------------------- 1.27 - February 2005 - Support for Intel Pentium 4 6xx CPUs. - New validation system. - Hundred of bug fixes. -------------------------------------------------------------------------------------------------- 1.26 - December 2004 - VCore display on Pentium M CPUs. - New CPU clock computation. - Improved support of Transmeta CPUs. - Several bugs fixed. -------------------------------------------------------------------------------------------------- 1.25 - November 2004 - nVidia nForce4 chipset support - Intel Pentium 4J support - New button to refresh memory timings - Several bugs fixed -------------------------------------------------------------------------------------------------- 1.24 - September 2004 - AMD Sempron support - New memory SPD page - PCI-Express graphic interface support - Configuration file - External cache latency tool - Restored html report - Fix several bugs -------------------------------------------------------------------------------------------------- 1.23 - June 2004 - Intel i915P/G, i925X chipsets support - Intel LGA775 CPUs support - Intel's CPU number display - New AMD Athlon 64 steppings - New report in one file -------------------------------------------------------------------------------------------------- 1.22 - April 2004 - New CPUs : Xeon Nocona, Celeron Prescott - DDR2 memory support - Clock mode when iconized -------------------------------------------------------------------------------------------------- 1.21 - January 2004 - one file package - Windows 64 support - new chipsets support - new CPU support : Celeron M, Pentium 4 "Prescott" -------------------------------------------------------------------------------------------------- 1.20a - October 2003 - memory frequency and ratio on nForce2 - KT600 support - W83627THF VRM mode - SPD read improvement - Fix some memory leaks (DMI) - Fix memory size report - Fix AGP side band status --------------------------------------------------------------------------------------------------
CPU-Z 自读文件 ------------------ Version 1.56 版本号 1.56 October 2010 2010年10月 Contact : cpuz@cpuid.com 联系我们 :cpuz@cpuid.com Web page: http://www.cpuid.com/cpuz.php 网站:http://www.cpuid.com/cpuz.php Validation page : http://valid.canardpc.com 确认页面 :http://valid.canardpc.com Hall of Fame : http://valid.canardpc.com/records.php 名人堂 :http://valid.canardpc.com/records.php Forum : http://forum.canardpc.com/forumdisplay.php?f=74 社区 :http://forum.canardpc.com/forumdisplay.php? CPUID SDK : http://www.cpuid-pro.com/devkits.php CPUID SDK介绍 :http://www.cpuid-pro.com/devkits.php Configuration file (cpuz.ini) 配置文件 (cpuz.ini) ------------------------------ The configuration file must be named cpuz.ini and be present at the same directory level as cpuz.exe. It contains the following : 配置文件必须存放在cpuz.exe. 同一文件夹下名字为cpuz.ini [CPU-Z] TextFontName=Verdana TextFontSize=13 TextFontColor=000060 LabelFontName=Verdana LabelFontSize=13 PCI=1 MaxPCIBus=256 DMI=1 Sensor=1 SMBus=1 Display=1 ShowDutyCycles=0 UseDisplayAPI=1 - TextFontName : Font used for the information boxes. 信息框字体样式 - TextFontSize : Size of the font used for the information boxes. 信息框字体大小 - TextFontColor : Color of the font used for the information boxes. Value is expressed in hexadecimal, and consists in a classic Red/Green/Blue color code : RRGGBB 信息框使用字体颜色。RBG颜色:RRGGBB/000060 - LabelFontName : Font used for the label boxes. 标签框字体样式 - LabelFontSize : Size of the font used for the label boxes. 标签框字体大小 - Sensor : Set to OFF (or 0) disables sensor chip detection and voltages measurement. 1 to enable.传感器检测设置,1为开启、0为关闭 关闭后将不显示温度及电压 - PCI : Set to OFF (or 0) disables the PCI information. This disables chipset, SPD and, depending on the hardware, sensoring information. 1 to enable.PCI检测设置,1为开启、0为关闭 关闭后将不会显示主板、SPD及硬件传感器信息 - MaxPCIBus : Sets the maximum PCI bus to scan. Default value is 256. - DMI : Set to OFF (or 0) disables the DMI (Desktop Management Interface) information. This concerns BIOS vendor and version, motherboard vendor and revision. 1 to enable. DMI设置,1为开启、0为关闭。管壁厚 - SMBus : Set to OFF (or 0) disables SMBus information : SPD, and, depending on the hardware, sensoring information. 1 to enable.SMBUS设置,1为开启、0为关闭 关闭后将不会显示主板、SPD及硬件传感器信息 - Display : Set to OFF (or 0) disables the video card information reported in the validator. 1 to enable. 显示设备设置,1为启开、0为关闭 关闭后将不会显示显示设备信息 - ShowDutyCycles : Set to 1, switches the alternate clock computation method based on duty cycles. 0 to disable.占空比设置,1为开启、0为关闭 关闭后不会进行占空比计算时钟的方法 - UseDisplayAPI : Set to 1, uses the display driver to read the display adapters information. Parameters 参数 ---------- -txt=filename : Launch CPU-Z in ghost mode (no interface appears) and generates the register dump file (.txt) in the same directory as the exe file. 导出报告为txt文本格式 -html=filename : Same as "-txt" except it generates the html report. 导出报告为html超文本格式 -core=id : Displays clock speed of core #id (id can be set from 0 to Number of cores minus one). Keys ---- F5 : save the current tab in a bmp file F5 :保存当前页面为bmp文件 F6 : save the current tab in the clipboard F6 :保存当前页面在剪贴板中 F7 : save cvf file in the current directory F7 :保存CVF在默认目录 Cache Latency Tool ------------------ The cache latency tool can be downloaded at that address : http://www.cpuid.com/download/latency.zip Cache Latency Tool下载地址 :http://www.cpuid.com/download/latency.zip History 更新历史 ------- -------------------------------------------------------------------------------------------------- 1.56 - October 2010 - Intel Core i3/i5/i7 "2000" serie processors (Sandy Bridge) with new logos. - Intel Core i7 970 "Gulftown". - Intel P67 chipset. - AMD Phenom II, Athlon II and Sempron II "Caspian" processors. -------------------------------------------------------------------------------------------------- 1.55 - July 2010 - VIA VX900/VX900M and VN1000/VN1000M chipsets. - Intel Core i5-760, Core i7-875K and Core i5-655K processors. - Intel Core i7-940XM, 840QM, 740QM mobile processors. - Intel Core i5-450M, 540UM, 430UM, Core i3-370M mobile processors. - Intel Pentium P6000 processor. - New parameter in cpuz.ini : UseDisplayAPI -------------------------------------------------------------------------------------------------- 1.54 - March 2010 - Intel Core i7-880, Core i5-680, Core i3-550 processors. - Intel Xeon 5600 line (32nm) processors. - AMD Phenom II X6, Sempron II, Turion II, Turion II Ultra and Athlon II Mobile "Caspian" processors. - NVIDIA GeForce 320M chipset. - AMD 870/880G890GX + SB800/SB850 chipset. - Introduction of validation rooms. -------------------------------------------------------------------------------------------------- 1.53 - December 2009 - Fix validation issue with AMD Phenom processors (1.53.1). - Preliminary support for Intel Pinetrail platform (1.53.1). - Intel Core i7 930 & 950, Core i7 980X "Gulftown", Xeon W3565. - Intel Mobile Core i7/i5/i3 "Arrendale" (LV and ULV). - Intel "Clarkdale" platform improved support. - AMD Phenom FX-5000, Athlon II X2/X3/X4, Athlon L110. - AMD AM3 socket detection improved. - VIA VX800 and VX855 chipsets support. - ATI Radeon 2100 and Radeon X1250 support. - DirectX 11 detection fix. - Hardware virtualization support now reported as instructions set. - New HTML report with less information. -------------------------------------------------------------------------------------------------- 1.52 - July 2009 - Fix Core i7 clock bug (1.52.2) - New design with "Graphics" tab. - NVIDIA nForce 980a chipset support. - Intel Core i5 and Core i3 processors. - Intel Atom Z530, Pentium DC E6300 (2.8GHz) and Core 2 Solo processors. - Intel P55 and US15W chipsets preliminary support. - AMD Phenom TWKR support. - AMD Phenom X2 "Callisto" and Athlon X2 "Regor" processors. - AMD Opteron 6-core "Istanbul" processor. - Improved support for Windows 7. - New Intel logos. MD5 checksum : please refer to http://www.cpuid.com/cpuz.php#history -------------------------------------------------------------------------------------------------- 1.51 - April 2009 - New version with installer. - NVIDIA ION platform. - Intel "Clarkdale" processor preliminary support. MD5 checksum : please refer to http://www.cpuid.com/cpuz.php#history -------------------------------------------------------------------------------------------------- 1.50 - February 2009 - Improved support for AMD Phenom II processor. - Support for NVIDIA 740i chipset. - Several bug fixes. MD5 cpuz.exe (1.50) : E1C827C54F527404EDDA6D65DA0280D8 -------------------------------------------------------------------------------------------------- 1.49 - December 2008 - AMD Phenom II processor. - New Intel Core 2 models. - Improved loading time. - New online validation process. MD5 cpuz.exe (1.49) : B836E86B40D7AFAF99D9C512E8CC9FEF -------------------------------------------------------------------------------------------------- 1.48 - October 2008 - Improved support for Intel Core i7 (Bloomfield & Gainestown). - Intel Atom dual-core version support. - AMD Athlon "Kuma" processor support. - Alternate clock computation method based on "duty cycles" for Intel Core 2 processors (see ShowDutyCycles in cpuz.ini) MD5 cpuz.exe (1.48) : DB78FBF1F99B7709240B495E59758CCE -------------------------------------------------------------------------------------------------- 1.47 - August 2008 - Intel Core i7 processor. - Intel Core 2 Duo S Mobile processors. - NVIDIA MCP79/7A chipset. - AMD 790GX / SB750 chipset. MD5 cpuz.exe (1.47) : A7484EFA3C32BC968C248CB1237FF493 -------------------------------------------------------------------------------------------------- 1.46 - June 2008 - AMD Puma platform (Turion & Turion Ultra "Griffin"); - AMD Black Edition processors. - Intel Xeon EX "Dunnington". MD5 cpuz.exe (1.46) : C47432C41EC26156128F7B8E09E884CF -------------------------------------------------------------------------------------------------- 1.45 - May 2008 - Intel Atom Z500/Z510/Z520/Z530/Z540 processors. - Intel Core 2 Duo E7x00 processor. - AMD 45 nm Phenom (Dened & Shanghai) processors. - Intel P45 chipset. MD5 cpuz.exe (1.45) : DD4E540C04297CF93DC721166C13446E -------------------------------------------------------------------------------------------------- 1.44.2 - Mars 2008 - NVIDIA 650i, 680i, 750a/780a, 750i, 780i, 790i chipsets (1.44.2) - Intel G35 chipset (1.44.2) - Updated support for VIA chipsets (1.44.2) - Support for the new validator (1.44.1) - Preliminary support for VIA Isaiah processor. - Support for all VIA Model D processors: VIA C7-M, VIA C7-D, VIA Eden, VIA Eden. - Memory timings on Intel 5400A/B MCH (Skulltrail). - Fix AMD Phenom detection issue on Windows Vista 64. MD5 (1.44.2) : 81FB48A6EC7355E8D0DD71ADC2157CF6 -------------------------------------------------------------------------------------------------- 1.43 - January 2008 - Intel Skulltrail platform support (Core 2 Extreme QX9775 + 5400B MCH). - Intel X48 chipset detection. - AMD Athlon 64-LE 1600 and 1620 support. - Fix detection issues on unlocked Phenom (ES/BE). -------------------------------------------------------------------------------------------------- 1.42 - November 2007 - Intel Wolfdale/Yorkfield/Penryn CPUs support. - AMD Phenom and Opteron Barcelona support improved. - Current core selection menu (right click on the CPU page). - Loading progress. -------------------------------------------------------------------------------------------------- 1.41 - September 2007 - New CPU voltage monitoring. - Intel Xeon Tigerton support. - Intel IA64 CPUs support (Itanium / Itanium2)(special thanks to Rami Radi and Ray Hinchliffe). - AMD K10 Phenom preliminary support. - NVIDIA MCP73 support. - Intel XMP profiles support. - Memory modules nominal voltage. -------------------------------------------------------------------------------------------------- 1.40.5 - July 2007 - NVIDIA nForce 560 chipset support. - Intel Dynamic FSB technology support. - Athlon 64 X2 BE & Sempron LE (TDP 45W). - SiS671/FX/DX/MX northbridge support. - SiS968 southbridge support. -------------------------------------------------------------------------------------------------- 1.40 - May 2007 - VIA P4M800CE chipset support. - Preliminary support for Intel Penryn CPUs family (45 nm). - Intel Core 2 Duo E6x20, Pentium E2140/2160 processors recognition. - Intel P35, G33, G31, Q35, Q33, X38 chipsets support. - Intel GL960/GM965/PM965 chipsets support. - AMD Athlon 64 "Lima" processor support. - AMD Geode LX processor support. - NVIDIA nForce 520 chipset support. - New parameter "-console" to generate output in a command prompt (Windows XP only). - New icon. -------------------------------------------------------------------------------------------------- 1.39 - February 2007 - Windows Vista 64 support. - VIA CX700/VX700 chipset. - Added Merom XE (X7900/X7800) - Added "PCI" and "MaxPCIBus" in the ini file to configure PCI scanning. - Added "-core" parameter to display the clock speed of the specified core. - Lot of bug fixes. -------------------------------------------------------------------------------------------------- 1.38 - November 2006 - VIA P4M890 and P4M900 chipsets. - NVIDIA 650i and 680i chipset. - AMD Athlon 64 FX-7x processor. - Core 2 Duo E6850, E6750, E6650 processors. - socket 775 Xeon processor. - New parameters "-txt" and "-html" (see above). - Lot of bug fixes. -------------------------------------------------------------------------------------------------- 1.37 - October 2006 - Intel Core 2 Quad, Celeron 360, Mobile Core 2 Duo T5200 support. - Changed SSE4 to SSSE3 (Supplemental SSE3). - Added VIA VT8237A southbridge. - New HTML report. - Several bug fixes. -------------------------------------------------------------------------------------------------- 1.36 - August 2006 - New processor information display. - Intel 5000X/P/Z/V SPD support. - Intel Pentium D 925 & 945. -------------------------------------------------------------------------------------------------- 1.35 - June 2006 - ATI RS350, RS400, RS480/RX480, RS482, RD580/RX580, RS600/RD600, RS690, RS700 chipsets support. - ATI SB600 southbridge support. - Intel P965 chipset support. - Engineering samples Core based CPUs report. - Windows Vista product line report. -------------------------------------------------------------------------------------------------- 1.34.1 - May 2006 - AMD socket AM2/S1/F (rev F.) CPUs support. - Enhanced Performance Profile (EPP) memory information report. - Added Trc (bank cycle time) in DDR2 SPD report. - Added Trc (bank cycle time) on i925, i945, i955, i975 chipsets. - FB-DIMM DDR2 SPD information report. - Core 2 Duo names and logos added. - Turion 64 X2 logo added. - Several bug fixed. -------------------------------------------------------------------------------------------------- 1.33.1 - April 2006 - Intel i965 chipset support added. - Fix SPD detection problem on SiS 964/965/966 southbridges. - ODC (Odd Divisor Correct) for Athlon64 rev E. -------------------------------------------------------------------------------------------------- 1.33 - April 2006 - Memory Command Rate timing added. - Improved support for Intel Conroe/Merom CPUs. - Celeron M 420/430 Yonah. - Xeon Dual core Dempsey. - VIA C7-M CPU detection added. - VIA PT880, PT880 Pro, K8T900 chipsets support. - nVidia nForce 550/560/570 (MCP55) chipset support. - VIA VT8251 southbridge support. - Fixed HyperTransport information misreports (in dump file). - Added K6-2 and K6-III logos. -------------------------------------------------------------------------------------------------- 1.32.1 - March 2006 - New Intel logos. - Added Pentium D 925, Pentium EE 965. - Several bugs fixed. -------------------------------------------------------------------------------------------------- 1.32 - February 2006 - Athlon FX-60 detection added. - Athlon64 new memory dividers. - Celeron 35x Cedar Mill, Pentium D 805. - Core Solo & Core Duo detection improved. - VIA C7 CPU detection added. - Intel i975X, i945GT chipsets support. - ATI RD580 chipset support. - ULi smbus support improved. - Fix smbus conflict with ClockGen. -------------------------------------------------------------------------------------------------- 1.31 - November 2005 - Improved support for ATI RS480/482 chipsets. - GeForce 6100/6150 (nForce 410/430) chipsets support. - Intel E7520 chipset support. - New CPUs support : AMD Opteron socket 939, Intel Pentium 4 Cedar Mill and Presler, Intel Xeon Paxville, Intel Pentium M Yonah SC & DC. - Several bug fixed. -------------------------------------------------------------------------------------------------- 1.30 - August 2005 - Latest Sempron and Turion support improved. - Intel Xeon Potomac, Pentium M 780 support. - Improved Windows version report. - Support for SMBus on latest SiS bridges (964, 965, 966) and ULi bridges. - Increased clocks refresh rate. - Several bug fixed. -------------------------------------------------------------------------------------------------- 1.29 - June 2005 - New PCI devices report. - Switch for VCore report in .ini file. - VCore report on some uGuru mainboards. - Improved clocks computation. - Improved support for latest AMD CPUs, Celeron D 3x1 (EM64T). - Improved support for SiS 649, 650 and 656 chipsets, Intel 915PM chipset. - Improved stability when several instances of CPU-Z are running in the same time. - Restored html report in ghost mode (see "Parameters" chapter above). -------------------------------------------------------------------------------------------------- 1.28.6 - March 2005 - Support for Athlon 64 X2 CPUs - Support for i955X chipset - Bunch of bugs -------------------------------------------------------------------------------------------------- 1.28 - March 2005 - Support for SiS chipsets improved : 648FX, 649, 655FX, 655TX, 656 - Support for nVidia nForce4 SLI Intel Edition - Support for Intel Pentium D, Pentium XE, AMD Turion, Opteron 252 - New F7 key to simplifiy the creation of the validation file -------------------------------------------------------------------------------------------------- 1.27 - February 2005 - Support for Intel Pentium 4 6xx CPUs. - New validation system. - Hundred of bug fixes. -------------------------------------------------------------------------------------------------- 1.26 - December 2004 - VCore display on Pentium M CPUs. - New CPU clock computation. - Improved support of Transmeta CPUs. - Several bugs fixed. -------------------------------------------------------------------------------------------------- 1.25 - November 2004 - nVidia nForce4 chipset support - Intel Pentium 4J support - New button to refresh memory timings - Several bugs fixed -------------------------------------------------------------------------------------------------- 1.24 - September 2004 - AMD Sempron support - New memory SPD page - PCI-Express graphic interface support - Configuration file - External cache latency tool - Restored html report - Fix several bugs -------------------------------------------------------------------------------------------------- 1.23 - June 2004 - Intel i915P/G, i925X chipsets support - Intel LGA775 CPUs support - Intel's CPU number display - New AMD Athlon 64 steppings - New report in one file -------------------------------------------------------------------------------------------------- 1.22 - April 2004 - New CPUs : Xeon Nocona, Celeron Prescott - DDR2 memory support - Clock mode when iconized -------------------------------------------------------------------------------------------------- 1.21 - January 2004 - one file package 一个文件包 - Windows 64 support 支持Windows64位操作系统 - new chipsets support 新主板支持 - new CPU support : Celeron M, Pentium 4 "Prescott" 新CPU支持:赛扬 M,奔腾4 "Prescott" -------------------------------------------------------------------------------------------------- 1.20a - October 2003 - memory frequency and ratio on nForce2 - KT600 support 增加对威盛KT600芯片组支持 - W83627THF VRM mode - SPD read improvement SPD - Fix some memory leaks (DMI) 修复一些内存DMI信息 - Fix memory size report 修复内存大小报告 - Fix AGP side band status 修复AGP带宽状态 --------------------------------------------------------------------------------------------------

581

社区成员

发帖
与我相关
我的任务
社区描述
CUDA™是一种由NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题。 它包含了CUDA指令集架构(ISA)以及GPU内部的并行计算引擎。
社区管理员
  • CUDA编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧