java - 如何测试交互式java代码的速度?

标签 java performance testing interactive

我的问题中的重要词是交互式:对于编程竞赛(UVa 在线评委),我正在编写交互式 java 代码:它在 System.out 上输出并等待 System.out 上的响应。在。

我想测试这段代码的速度,但如果我手动进行交互,我的人类打字技能会减慢执行速度,并且测量结果会有偏差。

因此,我想要一个线程/应用程序/脚本/当我的应用程序在 System.out 上写入时看到的任何东西,然后(这个线程/应用程序/脚本/任何东西)写入我的应用程序使用其 System.in 读取的东西.

我的应用程序应该使用 System.in 和 System.out 进行通信,因为一旦我将它提交给在线评委,它就会被评判。

我认为多线程不会完成这项工作,因为 System.in 总是从键盘读取,而不是从另一个线程读取。

import java.util.Scanner;

public class Main {

    public static void main(final String[] args) {
        System.out.println("What now?");
        final Scanner scanner = new Scanner(System.in);
        final String response = scanner.nextLine();
        scanner.close();
        System.out.println("Finished: " + response);
    }
}

如何在没有人敲键盘的情况下运行这段代码?

最佳答案

您的用例肯定可以使用多线程。 Java 机器人框架提供了发送击键的机制。引用:this post

关于java - 如何测试交互式java代码的速度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56181986/

相关文章:

macos - 我的代码是在 hackintosh 上运行吗?

testing - 如何配置gradle以输出执行的测试总数?

java - dojo中的domConstruct是抽象类吗

java - 如何在使用 Bazel 作为构建系统的 Android 项目中导入外部模块/依赖项(如 Flic)?

java - 弹出栈顶失败

HTML:编码整个图片地址,还是/images比较好

c++ - 为什么 C++ 优化器对这些临时变量有问题,或者更确切地说,为什么在紧密循环中应该避免 `v[]`?

java - 在 64 位 CENTOS 上安装 32 位 Java : error java/lang/Object

Java VM 内存性能 - 数组写入比数组读取快吗?

unit-testing - 干燥 EasyMock 测试