Java程序延迟问题

时间:2013-08-09 12:32:50

标签: java logging log4j execution latency

我通过使用log4j创建日志和简单文件读写

来比较Java程序延迟
     String content = "Writing";

    File file = new File("D://filename.txt");

    // if file doesnt exists, then create it
    if (!file.exists()) {
        file.createNewFile();
    }

    FileWriter fw = new FileWriter(file);
    BufferedWriter bw = new BufferedWriter(fw);


    long startTimeF=System.nanoTime();
    for(int i=0;i<10;i++)   
    {
        bw.write(content);

    }
    bw.close();
    long endTimeF=System.nanoTime();
    System.out.println("Time elapsed for file write:"+(endTimeF-startTimeF));
    long startTimeL=System.nanoTime();
    for(int i=0;i<10;i++)   
    {
        _logger.info("Writing..:"+strDate); }
    long endTimeL=System.nanoTime();

    System.out.println("Time elapsed for logger    ="+(endTimeL-startTimeL));

O / P: 文件写入的时间:1826647 记录器经过的时间= 3909112

假设我将我的行交换为

long startTimeL = System.nanoTime();

    for(int i=0;i<10;i++)   
    {
        _logger.info("writing..:"+strDate); }
    long endTimeL=System.nanoTime();

    System.out.println("Time elapsed for logger    ="+(endTimeL-startTimeL));

    long startTimeF=System.nanoTime();
    for(int i=0;i<10;i++)   
    {
        bw.write(content);

    }
    bw.close();
    long endTimeF=System.nanoTime();
    System.out.println("Time elapsed for file write:"+(endTimeF-startTimeF));

O / P: 记录器经过的时间= 4018071 文件写入的时间:3115210

 What cause to get different output by only inter changing lines....(using Asynchronous Logging) ?

0 个答案:

没有答案