Skip to content

Add a performance comparison of two plugin versions (1.5.2 vs. current) - #234

Open
codeling wants to merge 2 commits into
mainfrom
claude/zealous-davinci-7slvps
Open

codeling wants to merge 2 commits into
mainfrom
claude/zealous-davinci-7slvps

Conversation

@codeling

@codeling codeling commented Oct 7, 2026

Copy link
Copy Markdown
Owner

Summary

Adds tests/performance/, a local (not CI) harness comparing what the plugin costs a Joomla site in two versions - by default tag 1.5.2 vs. HEAD - against a site without bfstop.

  • setup-sites.sh installs three identical Joomla 5.4.8 sites (none / baseline / current), each plugin from the release zip its own deploy.sh zip builds, with default settings.
  • bench.php serves them with PHP's built-in server (OPcache on) and measures, via a small auto_prepend_file (prepend.php):
    • installed footprint (zip, files, PHP lines, empty tables)
    • per-request server time, CPU, peak memory, PHP files, SQL queries for page views, failed logins, an address getting blocked, and blocked requests - repeated with differently sized tables
    • throughput / latency percentiles under concurrent load
    • database growth per failed login
    • the queries a request sends to bfstop's tables (MariaDB general log)
  • Writes report.md + results.json + raw per-request metrics.
  • run.sh does both steps; README.md documents requirements, options and caveats.

Notes

  • Needs MariaDB (1.5.2 only has MySQL SQL scripts; data is seeded with the sequence engine).
  • Requests carry a browser User-Agent and use a new user name per failed login: without that the current version's risk score / account throttle add deliberate multi-second sleeps that would swamp the measurement (documented in the README).
  • The old plugin is run on Joomla 5 (it doesn't support 6).

Test plan

  • --quick runs end to end (sequential, throughput, growth, query trace) and the report renders
  • setup-sites.sh verified from scratch and re-run on existing sites
  • php -l on the new files
  • Full-size run (default settings) - results to be posted separately

🤖 Generated with Claude Code

https://claude.ai/code/session_01PtohRckRkeL2TVCfEhc7oJ


Generated by Claude Code

claude added 2 commits October 7, 2026 17:28
tests/performance sets up three identical Joomla sites (no bfstop, the
plugin as of 1.5.2, the current checkout) and measures what the plugin
costs: installed size, per-request time/CPU/memory/PHP files/SQL queries
for page views, failed logins, blocking and blocked requests (with
differently sized tables), throughput under concurrent load, database
growth per failed login, and the queries sent to bfstop's tables.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PtohRckRkeL2TVCfEhc7oJ
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants