Proxy

proxy.pac 文件性能優化

  • September 5, 2021

我通過帶有 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 的意思,它會使程式碼更清晰。

我還會使用一個變數來保存代理表達式。它可能不會節省執行時儲存,因為可能會重複使用重複的文字,但它會使程式碼更易於閱讀。

引用自:https://serverfault.com/questions/245598