0

「プロセス」の応答時間を測定しようとしています (サーバーにデータを要求してからデータを提示しています)。データを要求してから (「送信」ボタンを押してから) データが txtbox に表示されるまでの時間を測定したいと考えています。

それは次のようになります。

    (these two are at the very top:)
    private long a
    private long b


   ...other code...


    a = System.currentTimeMillis();

    btnSend.addActionListener(new ActionListener(){

        @Override
        public void actionPerformed(ActionEvent arg0) {
            String fileContents;
            b = System.currentTimeMillis();
            try {
                fileContents = control.getFileContents(txtSearch.getText());
                txtView.setText(fileContents + "\n" + "\n" + "The process took "+(b-a)+"milliseconds to execute." + "\n" + "("+((b-a)/1000)+" seconds)");

            } catch (RemoteException e) {
                txtView.setText("File not found");
            }

        }

Antは機能しますが、初めてです。別のリクエストを送信すると、時間が古い時間に追加されます。最初のリクエストには 2 秒かかり、2 番目のリクエストには 7 秒かかりました (実際には 2 秒かかりました)。

次のように入力して a と b をリセットすることで、問題を回避しようとしました。

    a = 0; 
    b = 0;

リセットボタンで、しかしそれは物事が少し狂ったように見えるだけです.

問題を解決する方法について何か考えはありますか?

ありがとう

4

1 に答える 1

0

ボタンを作成するときに a の値を設定し、クリックすると b の値を設定しているように見えます。そうすれば、目に見える結果が表示されます。Aはそのままで、Bはどんどん離れていきます。その後、リセットすると、A が 0 になるため、「少しおかしくなり」ます。したがって、往復に約 45 年かかったことがわかります (currentTimeMillis() の値が 0 である 1970 年からの時間)。

代わりに、ボタンをクリックしたときに A の値を設定し、結果が得られた後に B の値を設定します。

このような:

btnSend.addActionListener(new ActionListener(){

    @Override
    public void actionPerformed(ActionEvent arg0) {
        String fileContents;
        a = System.currentTimeMillis();
        try {
            fileContents = control.getFileContents(txtSearch.getText());
            b = System.currentTimeMillis();
            txtView.setText(fileContents + "\n" + "\n" + "The process took "+(b-a)+"milliseconds to execute." + "\n" + "("+((b-a)/1000)+" seconds)");

        } catch (RemoteException e) {
            txtView.setText("File not found");
        }

    }
于 2015-05-05T22:46:38.730 に答える