gRpc netty创建.dll文件窗口



在tomcat(版本9.0.43)的temp文件夹中,我注意到有许多.dll文件具有这种模式名称:' io_grpc_netty_shaded_netty_tcnative_windows_x86_SOME_RANDOM_NUMBER

. dll。我注意到一个.dll文件是创建至少一次当tomcat启动,但我不确定它是否正在创建也在运行时通过一些操作。

在这个java项目中,这些依赖关系可能很重要。

<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-gcp-dependencies</artifactId>
<version>1.2.8.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-gcp-starter-vision</artifactId>
<version>1.2.8.RELEASE</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>2.4.3</version>
<scope>provided</scope>
</dependency>
</dependencies>

为了不创建这么多的.dll文件,在长期运行中会使系统内存混乱,有没有一种方法告诉java web应用程序只使用一个.dll?

我尝试了在这个链接中找到的临时解决方案,但它不适合我。

这是我发现的另一个解决方案,但我正在使用Spring的ApplicationRunner来运行一些东西,我不知道如何帮助…我猜的一种方法是在ApplicationRunner中运行一条指令来删除那些.dll文件,但我真的不喜欢这个想法。

.dll不是连续创建的。但它们可以在每次部署战争时创建。由于Windows的行为,它们不能在Java进程运行时被安全删除。

可以通过使用-Dio.grpc.netty.shaded.io.netty.handler.ssl.noOpenSsl=true启动tomcat来禁用netty- alternative(这可能会影响性能)。如果使用Java 8,性能差异可能很大。如果使用Java 11或更高版本,则差异要小得多。

最新更新