首页 > 解决方案 > 如何通过使用 java 代码调用图形处理器来运行程序?

问题描述

我有一个 java 程序,它调用一个与代码本身分开的可执行文件。

Process p = Runtime.getRuntime().exec(System.getProperty("user.dir") + File.separator + "Example.exe");
BufferedReader bri = newBufferedReader(newInputStreamReader(p.getInputStream()));
BufferedReader bre = newBufferedReader(newInputStreamReader(p.getErrorStream()));

我使用这部分代码从项目目录中打开 Example.exe,然后使用 bufferredReader 来存储输出,它可以正常运行。我遇到的唯一问题是可执行文件本身的完成速度很慢,因为它的计算量很大,而且我发现当左键单击并使用 Windows 图形处理器选项独立运行程序时,它的速度要快得多。我想这可能是由于 GPU 优于 CPU 的优势,但尽管如此,当从 java 代码调用时,我不知道如何在正常运行(使用 CPU)选项上调用图形进程选项运行。有什么方法可以使用该选项打开它,可能是通过命令提示符间接打开它,或者使用特定的 java 代码更好?

标签: javagpuexecutable

解决方案


您应该可以通过视频卡的设置来执行此操作。有一个很好的Autodesk 知识库条目,解释了如何使用 Intel 和 AMD 显卡执行此操作。对于较新版本的 Windows 10 ,它现在已内置到操作系统中

本质上,您配置图形驱动程序以识别您正在运行的可执行文件,并让它以完全 GPU 加速而不是集成显卡启动。这应该可以防止您需要手动启动应用程序。您还可以通过更改计算机的电源配置文件来更改行为。如果您将其从省电(或平衡)更改为高性能,则不应禁用您的集成 GPU。

话虽如此,您的问题并不清楚应用程序实际上是在使用 GPU 来执行其计算。如果不是,则可能是该应用程序在其他地方出现瓶颈。确保尽快从应用程序中排出输出流。如果您不这样做,应用程序可能会阻塞等待输出缓冲区中的更多空间发送给您。


推荐阅读