1111
1212class BrowserBinaryNotFoundError (RuntimeError ):
1313 """
14- Chrome / Brave の実行ファイルが検出できず、ZenDriver がブラウザを起動できない場合に送出される例外
14+ Chrome / Brave の実行ファイルが検出できず、Zendriver がブラウザを起動できない場合に送出される例外
1515 """
1616
1717
@@ -31,7 +31,7 @@ def __init__(self, twitter_account: TwitterAccount) -> None:
3131
3232 self .twitter_account = twitter_account
3333
34- # ZenDriver のブラウザインスタンス
34+ # Zendriver のブラウザインスタンス
3535 self ._browser : Browser | None = None
3636 # 現在アクティブなタブ(ページ)インスタンス
3737 self ._page : Tab | None = None
@@ -64,7 +64,7 @@ async def setup(self) -> None:
6464 # セットアップ処理の完了を把握するための Future を作成
6565 setup_complete_future = asyncio .get_running_loop ().create_future ()
6666
67- # ZenDriver でヘッドレスブラウザを起動
67+ # Zendriver でヘッドレスブラウザを起動
6868 logging .info (f'{ self .log_prefix } Starting browser...' )
6969 try :
7070 self ._browser = await Browser .create (
@@ -75,6 +75,32 @@ async def setup(self) -> None:
7575 headless = True ,
7676 # ブラウザは現在の環境にインストールされているものを自動選択させる
7777 browser = 'auto' ,
78+ # Chrome 系ブラウザの起動最適化フラグをチューニングし、なるべくメモリ使用量を下げる
79+ # Zendriver デフォルトで指定されているフラグに加え、さらに以下のフラグを追加する
80+ browser_args = [
81+ # ウインドウをゲストモードで起動する
82+ '--bwsi' ,
83+ # 互換性の問題だとかが起きそうな予感がするので GPU レンダリングを無効化
84+ '--disable-gpu' ,
85+ '--use-gl=swiftshader' ,
86+ # レンダラープロセスを1つに制限することで、メモリ使用量を抑える
87+ # 今の所タブは1つしか開かないので、1つで十分
88+ '--renderer-process-limit=1' ,
89+ # 一時フォルダに作成されるプロファイルに保存するディスクキャッシュ領域を可能な限り小さくする
90+ '--disk-cache-size=1048576' ,
91+ '--media-cache-size=1048576' ,
92+ # Chrome に実装されている各機能のうち、ヘッドレス用途では不要なものを無効化する
93+ '--disable-client-side-phishing-detection' ,
94+ '--disable-component-extensions-with-background-pages' ,
95+ '--disable-domain-reliability' ,
96+ '--disable-default-apps' ,
97+ '--disable-extensions' ,
98+ '--disable-notifications' ,
99+ '--disable-print-preview' ,
100+ '--disable-speech-api' ,
101+ '--disable-sync' ,
102+ '--disable-translate' ,
103+ ]
78104 )
79105 except FileNotFoundError as ex :
80106 logging .error (f'{ self .log_prefix } Chrome or Brave is not installed.' , exc_info = ex )
0 commit comments