Proxy
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 個域的列表。
不要通過代理重新路由所有流量,這一點很重要。
在性能方面保持此文件優化的最佳方法是什麼?
謝謝
像往常一樣:雜湊或樹。
我會使用散列:提取請求域名的第一個(或多個字元)(也剝離“www.”)以選擇相應的模式列表。
如果您只是檢查是否相等,請使用“==”進行比較。shExpMatch 函式允許 shell 表達式(* 和 ? 在它們的 DOS shell 含義中),因此必須解析第二個參數。該腳本在瀏覽器中執行,每個請求一次(或更少),因此性能不是問題,但如果您編寫 yuo 的意思,它會使程式碼更清晰。
我還會使用一個變數來保存代理表達式。它可能不會節省執行時儲存,因為可能會重複使用重複的文字,但它會使程式碼更易於閱讀。