如何计算我的程序在java中每秒的读取操作数



我需要编写一个程序,用每个write写入一个长度为100 Byte的块。每写入1000个块,状态消息也应该出现。

我认为我成功地做到了,但我的问题是每秒读取操作数的计算。我需要计算我的程序能做多少。我被允许使用System.nanoTime()

以下是我迄今为止写的内容:

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
public class EAWrite {
public static void main(String[] args) throws IOException {
int recordsWritten = 0;
File myFile = new File("D:\filename.txt");
FileOutputStream myInputFile = new FileOutputStream(myFile);
for (int i = 0; i < 10000; i++) {
myInputFile.write(100);
recordsWritten++;
if ((i % 100) == 0) {
System.out.println((recordsWritten - 1) + "records written.");
}
}
myInputFile.close();
}
}

取决于如何定义

每秒的读取操作数

您需要跟踪不同的值。您进一步指定,在整个执行时间内,每秒只需要写入操作。因此,您只需要计算程序运行的时间跨度(以秒为单位(,并将总写入操作除以该值:

double duration = (double) (endSystemNanos - startSystemNanos) / 1_000_000L;
double writeOpsPerSecond = (double) totalWriteOps / duration;

最新更新