Skip to content

Commit ba98dc9

Browse files
author
maebahesioru
committed
perf: reduce memory usage and lazy-load proxy module
- Add Firefox prefs: disable WebGL, GPU accel, hardware video decoding, cap JS heap to 512MB, reduce HTTP connections - Shrink window size 1280x720 -> 1024x600 - Lazy-load proxy module in app.py/_start_stream_proxy() and remove unused import from server.py
1 parent 22e46d3 commit ba98dc9

3 files changed

Lines changed: 14 additions & 3 deletions

File tree

src/api/app.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414
from models import WebSocketConnectionManager
1515
from logger import initialize_logging, restore_streams
1616
from browser import _initialize_page_logic, _close_page_logic, load_excluded_models, _handle_initial_model_state_and_storage
17-
import proxy
1817
from asyncio import Queue, Lock
1918
from . import auth_utils
2019
playwright_manager: Optional[AsyncPlaywright] = None
@@ -82,6 +81,7 @@ async def _wait_for_port(port: int, timeout: float = 10.0, interval: float = 0.3
8281
return False
8382

8483
async def _start_stream_proxy():
84+
import proxy
8585
import server
8686
STREAM_PORT = os.environ.get('STREAM_PORT')
8787
if STREAM_PORT != '0':

src/launch_camoufox.py

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -499,8 +499,20 @@ def determine_proxy_configuration(internal_camoufox_proxy_arg=None):
499499
'network.dns.disablePrefetch': True,
500500
# Reduce font memory
501501
'gfx.font_rendering.fontconfig.max_generic_substitutions': 3,
502+
# Disable GPU / hardware acceleration
503+
'layers.acceleration.disabled': True,
504+
'gfx.direct2d.disabled': True,
505+
'media.hardware-video-decoding.enabled': False,
506+
# Disable WebGL (not needed for AI Studio)
507+
'webgl.disabled': True,
508+
'webgl.enable-webgl2': False,
509+
# Cap JS heap
510+
'javascript.options.mem.max': 512,
511+
# Reduce HTTP connections
512+
'network.http.max-connections': 6,
513+
'network.http.max-persistent-connections-per-server': 2,
502514
}
503-
launch_args_for_internal_camoufox = {'port': camoufox_port_internal, 'addons': [], 'exclude_addons': [DefaultAddons.UBO], 'window': (1280, 720), 'firefox_user_prefs': memory_optimization_prefs}
515+
launch_args_for_internal_camoufox = {'port': camoufox_port_internal, 'addons': [], 'exclude_addons': [DefaultAddons.UBO], 'window': (1024, 600), 'firefox_user_prefs': memory_optimization_prefs}
504516
if camoufox_proxy_internal:
505517
launch_args_for_internal_camoufox['proxy'] = {'server': camoufox_proxy_internal}
506518
if auth_file:

src/server.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@
2626
import uuid
2727
import datetime
2828
import aiohttp
29-
import proxy
3029
import queue
3130
from config import *
3231
from models import FunctionCall, ToolCall, MessageContentItem, Message, ChatCompletionRequest, ClientDisconnectedError, StreamToLogger, WebSocketConnectionManager, WebSocketLogHandler

0 commit comments

Comments
 (0)