mirror of
https://forge.fsky.io/oneflux/omegafox.git
synced 2026-02-10 04:52:03 -08:00
remove benchmark utility
This commit is contained in:
parent
bca4090cd3
commit
828839bff5
3 changed files with 0 additions and 129 deletions
|
|
@ -1,25 +0,0 @@
|
|||
FROM debian:latest
|
||||
|
||||
# Set working directory
|
||||
WORKDIR /app
|
||||
|
||||
# Install Python and essential tools
|
||||
RUN apt-get update && apt-get install -y \
|
||||
python3 \
|
||||
python3-pip \
|
||||
curl \
|
||||
wget \
|
||||
xvfb \
|
||||
&& apt-get clean
|
||||
|
||||
# Install Playwright dependencies
|
||||
RUN pip3 install --no-cache-dir playwright tabulate camoufox[geoip] --break-system-packages && \
|
||||
playwright install-deps && \
|
||||
playwright install firefox && \
|
||||
python3 -m camoufox fetch
|
||||
|
||||
# Copy the benchmark script
|
||||
COPY benchmark.py /app/
|
||||
|
||||
# Default entrypoint to run the benchmark
|
||||
ENTRYPOINT ["python3", "/app/benchmark.py"]
|
||||
|
|
@ -1,7 +0,0 @@
|
|||
build:
|
||||
podman build -t camoufox-benchmark .
|
||||
|
||||
run:
|
||||
podman run camoufox-benchmark --mode headless --browser firefox
|
||||
podman run camoufox-benchmark --mode headless --browser camoufox
|
||||
podman run camoufox-benchmark --mode headless --browser camoufox-ubo
|
||||
|
|
@ -1,97 +0,0 @@
|
|||
import argparse
|
||||
import subprocess
|
||||
import time
|
||||
|
||||
from camoufox.pkgman import launch_path
|
||||
from camoufox.sync_api import Camoufox
|
||||
from camoufox.virtdisplay import VirtualDisplay
|
||||
from playwright.sync_api import sync_playwright
|
||||
from tabulate import tabulate
|
||||
|
||||
# URLs to benchmark
|
||||
urls = ["about:blank", "https://google.com", "https://yahoo.com"]
|
||||
|
||||
|
||||
def get_firefox_memory(name):
|
||||
"""Get the total memory usage of all processes named 'firefox'."""
|
||||
try:
|
||||
result = subprocess.run(["ps", "-C", name, "-o", "rss="], capture_output=True, text=True)
|
||||
memory_kb = sum(int(line.strip()) for line in result.stdout.splitlines())
|
||||
memory_mb = memory_kb / 1024 # Convert KB to MB
|
||||
return memory_mb
|
||||
except Exception as e:
|
||||
print(f"Error getting Firefox memory: {e}")
|
||||
return 0
|
||||
|
||||
|
||||
def get_average_memory(name, duration):
|
||||
"""Monitor memory usage for Firefox over a duration (seconds) and return the average."""
|
||||
memory_samples = []
|
||||
for n in range(duration):
|
||||
memory_samples.append(get_firefox_memory(name))
|
||||
# print(f"> Mem ({n}sec): {memory_samples[-1]} MB")
|
||||
time.sleep(1)
|
||||
return sum(memory_samples) / len(memory_samples) if memory_samples else 0
|
||||
|
||||
|
||||
def run_playwright(mode, browser_name):
|
||||
headless = mode == "headless"
|
||||
memory_usage = []
|
||||
# Set up virtual display
|
||||
virt = VirtualDisplay()
|
||||
env = {"DISPLAY": virt.get()}
|
||||
|
||||
if browser_name == "camoufox-ubo":
|
||||
camoufox = Camoufox(headless=headless, env=env)
|
||||
browser = camoufox.start()
|
||||
elif browser_name == "firefox":
|
||||
playwright = sync_playwright().start()
|
||||
browser = playwright.firefox.launch(headless=headless, env=env)
|
||||
elif browser_name == "camoufox":
|
||||
playwright = sync_playwright().start()
|
||||
browser = playwright.firefox.launch(
|
||||
headless=headless, env=env, executable_path=launch_path()
|
||||
)
|
||||
|
||||
for url in urls:
|
||||
page = browser.new_page()
|
||||
page.goto(url)
|
||||
time.sleep(5) # Allow the page to load
|
||||
memory = get_average_memory(
|
||||
name="camoufox-bin" if browser_name.startswith('camoufox') else 'firefox', duration=10
|
||||
)
|
||||
memory_usage.append((url, memory))
|
||||
page.close()
|
||||
|
||||
browser.close()
|
||||
|
||||
return memory_usage
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
# Set up argument parsing
|
||||
parser = argparse.ArgumentParser(description="Run a browser memory benchmark.")
|
||||
parser.add_argument(
|
||||
"--mode",
|
||||
type=str,
|
||||
choices=["headless", "headful"],
|
||||
required=True,
|
||||
help="Mode to run the browser in (headless or headful).",
|
||||
)
|
||||
parser.add_argument(
|
||||
"--browser",
|
||||
type=str,
|
||||
choices=["firefox", "camoufox", "camoufox-ubo"],
|
||||
required=True,
|
||||
help="Browser to use for the benchmark.",
|
||||
)
|
||||
|
||||
args = parser.parse_args()
|
||||
|
||||
# Run the benchmark
|
||||
results = run_playwright(args.mode, args.browser)
|
||||
|
||||
# Format results as a table
|
||||
print(f"\n=== MEMORY RESULTS FOR {args.browser.upper()} ===")
|
||||
table = [["URL", "Memory Usage (MB)"]] + results
|
||||
print(tabulate(table, headers="firstrow", tablefmt="grid"))
|
||||
Loading…
Add table
Reference in a new issue