WEB开发网
开发学院WEB开发Jsp 调整JavaTM 的I/O性能(一)(zt) 阅读

调整JavaTM 的I/O性能(一)(zt)

 2008-01-05 09:29:38 来源:WEB开发网   
核心提示:调整javaTM 的I/O性能这篇文章讨论并举例阐述了提高JavaTM I/O性能的多种技术,绝大多数技术是围绕着磁盘文件I/O的调整来谈 的,调整JavaTM 的I/O性能(一)(zt),但是,有些技术对网络I/O和视窗输出也同样适用,为了查看规则是 如何被应用的,就考虑下面的三个例子,首先介绍的技术包含底层I/O问

  调整javaTM 的I/O性能
这篇文章讨论并举例阐述了提高JavaTM I/O性能的多种技术。绝大多数技术是围绕着磁盘文件I/O的调整来谈 的,但是,有些技术对网络I/O和视窗输出也同样适用。首先介绍的技术包含底层I/O问题,然后对诸如压 缩、格式化和序列化这样的高层I/O进行讨论。但是,请注重,本讨论不涉及应用设计问题, 搜索算法和数 据结构的选择,也不讨论类似文件高速缓存(file caching)这样的系统级问题。


当讨论Java I/O时,Java编程语言所假定的两种不同的磁盘文件组织是没有任何意义的。这两种磁盘文件组 织,一种基于字节流,另一种基于字符序列。在 Java语言中,一个字符使用两个字节表示,而不是象C语言 那样使用一个字节表示一个字符。正因为如此,从文件中读取字符时需要一些转换。在某些情况下,这样的 区别非常重要,我们将用几个例子对此进行说明。


底层I/O问题
简介
加速I/O的基本规则
缓冲
读/写文本文件
格式化的开销
随机存储

高层I/O问题
压缩
高速缓存
标志化(Tokenization)
序列化(Serialization)
获取文件信息
更多的信息
加速I/O的基本规则


作为开始讨论的一种方法,下面列出了加速I/O的一些基本规则:


1.避免访问磁盘

2.避免访问下面的操作系统

3.避免方法调用

4.避免对字节和字符的单独处理


显然,这些规则不能被全面而严格地应用,因为假如那样的话,I/O就不可能工作了。但是,为了查看规则是 如何被应用的,就考虑下面的三个例子,这些例子计算一个文件中换行符('\n')的数目。


方法一:读取的方法


第一个方法简单地利用一个文件输入流(FileInputStream)上的读方法:


   import java.io.*;



   public class intro1 {

     public static void main(String args[]) {

       if (args.length != 1) {

         System.err.PRintln("missing filename");

         System.exit(1);

       }

       try {

         FileInputStream fis =

           new FileInputStream(args[0]);

         int cnt = 0;

Tags:调整 JavaTM 性能

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接