PAC 文件最佳实践
PAC file best practice
我正在尝试清理 PAC 文件。以下哪个代码块更简洁and/or更快?
if (host == "localhost") {return "DIRECT";}
if (shExpMatch(host, "localhost.*")) {return "DIRECT";}
if (host == "127.0.0.1") {return "DIRECT";}
if (isPlainHostName(host)) {return "DIRECT";}
if (isInNet(hostIP, "10.0.0.0", "255.0.0.0")) {return "DIRECT";}
对比
if ( host == "localhost" ||
host == "127.0.0.1" ||
shExpMatch( host, "localhost.*" ) ||
isPlainHostName( host ) ||
isInNet( hostIP, "10.0.0.0", "255.0.0.0" ))
return "DIRECT";
我假设如果目标主机确实是 "localhost," 那么第一个会更快,因为它会立即命中 return 而不需要评估剩余的条件。但假设 none 的条件成立,哪种方法是首选?
第二个选项更快,因为它不必跳转多个 return 语句。正如 Alex K. 在他的评论中提到的那样,or 级联中的第一个 true 语句会停止评估。
我正在尝试清理 PAC 文件。以下哪个代码块更简洁and/or更快?
if (host == "localhost") {return "DIRECT";}
if (shExpMatch(host, "localhost.*")) {return "DIRECT";}
if (host == "127.0.0.1") {return "DIRECT";}
if (isPlainHostName(host)) {return "DIRECT";}
if (isInNet(hostIP, "10.0.0.0", "255.0.0.0")) {return "DIRECT";}
对比
if ( host == "localhost" ||
host == "127.0.0.1" ||
shExpMatch( host, "localhost.*" ) ||
isPlainHostName( host ) ||
isInNet( hostIP, "10.0.0.0", "255.0.0.0" ))
return "DIRECT";
我假设如果目标主机确实是 "localhost," 那么第一个会更快,因为它会立即命中 return 而不需要评估剩余的条件。但假设 none 的条件成立,哪种方法是首选?
第二个选项更快,因为它不必跳转多个 return 语句。正如 Alex K. 在他的评论中提到的那样,or 级联中的第一个 true 语句会停止评估。