Как подсчитать количество операций чтения в секунду, которые моя программа выполняет в java? - PullRequest
0 голосов
/ 07 мая 2020

Мне нужно написать программу, которая записывает блок длиной 100 Byte с каждым write. Каждые 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();
    }

}

1 Ответ

1 голос
/ 07 мая 2020

В зависимости от того, как вы определяете

количество операций чтения в секунду

, вам необходимо отслеживать различные значения. Вы также указали, что вам нужно только операций записи в секунду за все время выполнения. Следовательно, вам нужно только рассчитать временной интервал в секундах, в течение которого выполнялась ваша программа, и разделить общее количество операций записи на это значение:

double duration = (double) (endSystemNanos - startSystemNanos) / 1_000_000L;
double writeOpsPerSecond = (double) totalWriteOps / duration;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...