proxy.pac文件性能优化

我通过proxy.pac文件通过代理重新路由某些网站。

它基本上是这样的:

if (shExpMatch(host, "www.youtube.com")) { return "PROXY proxy.domain.tld:8080; DIRECT" } if (shExpMatch(host, "youtube.com")) { return "PROXY proxy.domain.tld:8080; DIRECT" } 

目前大约有125个站点使用这种方法重新路由。 不过,我打算在其中添加更多的域名,我猜它最终将成为500-1000个域名的列表。

不通过代理重新路由所有stream量很重要。

什么是保持这个文件优化,性能明智的最好方法?

谢谢

像往常一样:哈希或树木。

我会使用哈希:提取所请求的域名(剥离“www。”以及)的第一个(或更多的字符)以select相应的模式列表。

如果你只是检查平等使用'=='进行比较。 shExpMatch函数允许shellexpression式(*和?在它们的DOSshell含义中),所以第二个参数必须被parsing。 脚本在浏览器中运行,每个请求一次(或更less),所以性能不是问题,但是如果你写的是什么意思,代码就会更清晰。

我也会使用一个variables来保存代理expression式。 它可能不会保存运行时存储,因为重复的文字可能被重复使用,但会使代码更容易阅读。

http://www.proxypacfiles.com/上有详细的信息,包括示例和经验教训。