[英]The performance impact of use System.getenv() in java
我有一个用jersey构建的Java REST Web服务,出于安全原因,我想在OS环境变量中保存方法的参数: DriverManager.getConnection();
。 网址,用户名和密码。
因为每个请求都需要创建自己的连接,所以我想知道是否有太多对System.getenv("key");
调用System.getenv("key");
是性能问题吗?
这样做的想法来自本文: http : //docs.aws.amazon.com/elasticbeanstalk/latest/dg/java-rds.html#java-rds-javase
拥有这样的东西将是一个更好的选择:
public class EnvironmentHelper {
static final String URL;
static final String USERNAME;
static final String PASSWORD;
static {
URL = System.getenv("URL");
USERNAME = System.getenv("USERNAME");
PASSWORD = System.getenv("PASSWORD");
}
}
这样,我只加载一次变量,对吗? 无论我收到多少请求。
System.getEnv(name)
转换为ProcessEnvironment.getEnv
,它实际上是对HashMap的查找(ProcessEnvironment是HashMap的扩展)。此HashMap加载在运行于类初始化的静态块中,因此查找起来非常快是O(1)的可能性很高。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.