我使用 maven 使用以下命令运行我的程序:
mvn exec:java -Dexec.mainClass="some.path.to.my.class"
在 Linux 多 CPU 服务器上。当我检查 CPU 使用率时,我看到 java 只吃 1 个 CPU 核心。我在某处读到设置-server
参数可能会有所帮助。
我必须设置哪些参数以及如何使用mvn exec:java
命令传递它们?
我使用 maven 使用以下命令运行我的程序:
mvn exec:java -Dexec.mainClass="some.path.to.my.class"
在 Linux 多 CPU 服务器上。当我检查 CPU 使用率时,我看到 java 只吃 1 个 CPU 核心。我在某处读到设置-server
参数可能会有所帮助。
我必须设置哪些参数以及如何使用mvn exec:java
命令传递它们?
您可以在 pom 配置的 commandlineArgs 部分中设置它,如文档中所述
例如:
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.2.1</version>
<executions>
<execution>
<goals>
<goal>exec</goal>
</goals>
</execution>
</executions>
<configuration>
<executable>maven</executable>
<commandlineArgs>-server</commandlineArgs>
</configuration>
</plugin>
</plugins>
虽然我完全不确定这是你的问题——你确定写过多线程代码吗?您无需在服务器模式下运行 JVM 即可使用多个线程。
处理器关联允许您将线程或进程绑定到特定的 CPU 内核。Java 没有对处理器亲和性的原生支持,但我们可以使用 taskset命令设置进程亲和性。假设我们有一个 Java 进程正在运行,并且我们想将它固定到特定的 CPU。请参阅以下链接以获取更多详细信息并了解如何执行此操作: cpu pinning java