[英]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.