Benchmarks
Plugin footprint 82% from 16 tests
Installer Passed 1 test
🔺 Critical test (weight: 50) | Verifying that this plugin installs correctly without errors
Install script ran successfully
Server metrics [RAM: ▲1.72MB] [CPU: ▲13.79ms] 75% from 4 tests
Server-side resources used by BackWPup - WordPress Backup Plugin
The following require your attention
- CPU: Total CPU usage should be kept under 500.00ms (currently 2,311.15ms on /wp-admin/admin.php?page=backwpup)
Page | Memory (MB) | CPU Time (ms) |
---|---|---|
Home / | 4.78 ▲1.31 | 49.04 ▲6.33 |
Dashboard /wp-admin | 5.19 ▲1.88 | 65.55 ▲16.91 |
Posts /wp-admin/edit.php | 5.24 ▲1.88 | 63.68 ▲12.88 |
Add New Post /wp-admin/post-new.php | 7.72 ▲1.84 | 112.47 ▲21.31 |
Media Library /wp-admin/upload.php | 5.09 ▲1.86 | 51.84 ▲19.04 |
Add new job /wp-admin/admin.php?page=backwpupeditjob | 7.38 | 101.14 |
Settings /wp-admin/admin.php?page=backwpupsettings | 5.94 | 82.00 |
Jobs /wp-admin/admin.php?page=backwpupjobs | 5.95 | 54.76 |
Backups /wp-admin/admin.php?page=backwpupbackups | 5.14 | 47.84 |
Dashboard /wp-admin/admin.php?page=backwpup | 6.25 | 2,311.15 |
Logs /wp-admin/admin.php?page=backwpuplogs | 5.52 | 76.99 |
About /wp-admin/admin.php?page=backwpupabout | 5.15 | 44.72 |
Server storage [IO: ▲16.48MB] [DB: ▲0.03MB] Passed 3 tests
Analyzing filesystem and database footprints of this plugin
This plugin installed successfully
Filesystem: 3,175 new files
Database: no new tables, 6 new options
New WordPress options |
---|
widget_recent-comments |
widget_recent-posts |
can_compress_scripts |
db_upgraded |
theysaidso_admin_options |
widget_theysaidso_widget |
Browser metrics Passed 4 tests
This is an overview of browser requirements for BackWPup - WordPress Backup Plugin
There were no issues detected in relation to browser resource usage
Page | Nodes | Memory (MB) | Script (ms) | Layout (ms) |
---|---|---|---|---|
Home / | 2,841 ▲79 | 14.28 ▼0.06 | 1.72 ▼0.05 | 45.45 ▲3.61 |
Dashboard /wp-admin | 2,246 ▲68 | 5.61 ▲0.02 | 95.95 ▼20.70 | 42.00 ▼3.25 |
Posts /wp-admin/edit.php | 2,156 ▲53 | 2.04 ▲0.03 | 38.86 ▼3.97 | 35.85 ▼2.81 |
Add New Post /wp-admin/post-new.php | 1,569 ▲43 | 23.20 ▼0.03 | 628.77 ▼1.27 | 49.56 ▼2.84 |
Media Library /wp-admin/upload.php | 1,451 ▲51 | 4.23 ▲0.03 | 103.06 ▲6.07 | 43.19 ▲2.63 |
Add new job /wp-admin/admin.php?page=backwpupeditjob | 1,289 | 1.93 | 31.66 | 40.14 |
Settings /wp-admin/admin.php?page=backwpupsettings | 1,995 | 2.25 | 31.01 | 33.46 |
Jobs /wp-admin/admin.php?page=backwpupjobs | 1,135 | 1.89 | 28.00 | 29.15 |
Backups /wp-admin/admin.php?page=backwpupbackups | 1,171 | 1.87 | 28.99 | 30.28 |
Dashboard /wp-admin/admin.php?page=backwpup | 4,115 | 37.28 | 1,086.97 | 70.07 |
Logs /wp-admin/admin.php?page=backwpuplogs | 1,172 | 1.78 | 37.88 | 37.24 |
About /wp-admin/admin.php?page=backwpupabout | 1,569 | 1.80 | 29.35 | 79.19 |
Uninstaller [IO: ▲0.00MB] [DB: ▲0.03MB] 75% from 4 tests
🔸 Tests weight: 35 | It is important to correctly uninstall your plugin, without leaving any traces
It is recommended to fix the following
- Zombie WordPress options detected upon uninstall: 6 options
- can_compress_scripts
- theysaidso_admin_options
- widget_theysaidso_widget
- db_upgraded
- widget_recent-comments
- widget_recent-posts
Smoke tests 50% from 4 tests
Server-side errors Passed 1 test
🔹 Test weight: 20 | This is a shallow check for server-side errors
Everything seems fine, however this is by no means an exhaustive test
SRP 0% from 2 tests
🔹 Tests weight: 20 | SRP (Single-Responsibility Principle) - PHP files must act as libraries and never output text or perform any action when accessed directly in a browser
Please take a closer look at the following
- 1× PHP files perform the task of outputting text when accessed with GET requests:
- > /wp-content/plugins/backwpup/vendor/swiftmailer/swiftmailer/lib/swiftmailer_generate_mimes_config.php
- 2024× GET requests to PHP files trigger server-side errors or Error 500 responses (only 10 are shown):
- > PHP Fatal error
Uncaught Error: Class 'phpseclib3\\Crypt\\EC\\BaseCurves\\Prime' not found in wp-content/plugins/backwpup/vendor/phpseclib/phpseclib/phpseclib/Crypt/EC/Curves/secp112r1.php:19
- > PHP Fatal error
Uncaught Error: Class 'Microsoft\\Graph\\Model\\Entity' not found in wp-content/plugins/backwpup/vendor/microsoft/microsoft-graph/src/Model/Directory.php:27
- > PHP Fatal error
Uncaught Error: Class 'Microsoft\\Graph\\Model\\Entity' not found in wp-content/plugins/backwpup/vendor/microsoft/microsoft-graph/src/Model/MediaContentRatingIreland.php:26
- > PHP Fatal error
Uncaught Error: Class 'Microsoft\\Graph\\Model\\Entity' not found in wp-content/plugins/backwpup/vendor/microsoft/microsoft-graph/src/Model/DefenderDetectedMalwareActions.php:26
- > PHP Fatal error
Uncaught Error: Class 'OpenCloud\\Common\\PersistentObject' not found in wp-content/plugins/backwpup/vendor/rackspace/php-opencloud/lib/OpenCloud/Compute/Resource/Flavor.php:26
- > PHP Fatal error
Uncaught Error: Class 'Microsoft\\Graph\\Core\\Enum' not found in wp-content/plugins/backwpup/vendor/microsoft/microsoft-graph/src/Model/Enablement.php:29
- > PHP Fatal error
Uncaught Error: Class 'Microsoft\\Graph\\Core\\Enum' not found in wp-content/plugins/backwpup/vendor/microsoft/microsoft-graph/src/Model/DayOfWeek.php:29
- > PHP Warning
require_once(phing/Task.php): failed to open stream: No such file or directory in wp-content/plugins/backwpup/vendor/guzzle/guzzle/phing/tasks/GuzzlePearPharPackageTask.php on line 9
- > PHP Fatal error
Uncaught Error: Class 'phpseclib3\\Crypt\\EC\\BaseCurves\\KoblitzPrime' not found in wp-content/plugins/backwpup/vendor/phpseclib/phpseclib/phpseclib/Crypt/EC/Curves/secp256k1.php:23
- > PHP Fatal error
Uncaught Error: Class 'OpenCloud\\Common\\Service\ovaService' not found in wp-content/plugins/backwpup/vendor/rackspace/php-opencloud/lib/OpenCloud/Compute/Service.php:53
- > PHP Fatal error
User-side errors Passed 1 test
🔹 Test weight: 20 | This is a shallow check for browser errors
No browser errors were detected
Optimizations
Plugin configuration 96% from 29 tests
readme.txt Passed 16 tests
It's important to format your readme.txt file correctly as it is parsed for the public listing of your plugin
5 plugin tags: database backup, restore, backup, cloud backup, wordpress backup
backwpup/backwpup.php 92% from 13 tests
The entry point to "BackWPup - WordPress Backup Plugin" version 4.0.2 is a PHP file that has certain tags in its header comment area
It is important to fix the following:
- Domain Path: The domain path points to an invalid folder, "/languages/" does not exist
Code Analysis 3% from 3 tests
File types 0% from 1 test
🔸 Test weight: 35 | An overview of files in this plugin; executable files are not allowed
Almost there! Just fix the following issues
- For security reasons, never distribute binary or executable files with your plugin
- .bat - Batch File in Windows
- ☣ wp-content/plugins/backwpup/vendor/aws/aws-crt-php/run_tests.bat
- .bat - Batch File in Windows
Language | Files | Blank lines | Comment lines | Lines of code |
---|---|---|---|---|
PHP | 2,974 | 41,808 | 180,176 | 248,727 |
JSON | 5 | 58 | 0 | 3,518 |
XSD | 3 | 92 | 48 | 2,803 |
Markdown | 19 | 451 | 0 | 1,714 |
XML | 6 | 37 | 11 | 1,184 |
JavaScript | 24 | 147 | 121 | 991 |
C | 10 | 250 | 89 | 882 |
C/C++ Header | 2 | 105 | 38 | 441 |
YAML | 16 | 65 | 65 | 370 |
reStructuredText | 4 | 147 | 170 | 190 |
Bourne Shell | 5 | 23 | 4 | 183 |
GLSL | 1 | 17 | 0 | 55 |
Ant | 1 | 10 | 1 | 34 |
m4 | 1 | 4 | 4 | 22 |
Bourne Again Shell | 1 | 5 | 0 | 13 |
SVG | 1 | 0 | 0 | 11 |
Dockerfile | 1 | 8 | 0 | 10 |
INI | 2 | 0 | 0 | 3 |
DOS Batch | 1 | 2 | 0 | 2 |
CSS | 1 | 0 | 0 | 1 |
PHP code 50% from 2 tests
A brief analysis of cyclomatic complexity and code structure for this plugin
These items need your attention
- Method cyclomatic complexity has to be reduced to less than 100 (currently 179)
Cyclomatic complexity | |
---|---|
Average complexity per logical line of code | 0.35 |
Average class complexity | 9.67 |
▷ Minimum class complexity | 1.00 |
▷ Maximum class complexity | 679.00 |
Average method complexity | 2.32 |
▷ Minimum method complexity | 1.00 |
▷ Maximum method complexity | 179.00 |
Code structure | ||
---|---|---|
Namespaces | 296 | |
Interfaces | 221 | |
Traits | 41 | |
Classes | 2,639 | |
▷ Abstract classes | 288 | 10.91% |
▷ Concrete classes | 2,351 | 89.09% |
▷ Final classes | 105 | 4.47% |
Methods | 19,110 | |
▷ Static methods | 1,984 | 10.38% |
▷ Public methods | 16,731 | 87.55% |
▷ Protected methods | 1,109 | 5.80% |
▷ Private methods | 1,270 | 6.65% |
Functions | 883 | |
▷ Named functions | 292 | 33.07% |
▷ Anonymous functions | 591 | 66.93% |
Constants | 2,793 | |
▷ Global constants | 117 | 4.19% |
▷ Class constants | 2,676 | 95.81% |
▷ Public constants | 2,627 | 98.17% |
Plugin size 50% from 2 tests
Image compression 50% from 2 tests
Using a strong compression for your PNG files is a great way to speed-up your plugin
25 PNG files occupy 0.85MB with 0.13MB in potential savings
Potential savings
Compression of 5 random PNG files using pngquant | |||
---|---|---|---|
File | Size - original | Size - compressed | Savings |
assets/images/hgbtredhover.png | 9.48KB | 10.67KB | 0.00% |
assets/images/imagesec.png | 10.18KB | 7.14KB | ▼ 29.84% |
assets/images/current.png | 0.13KB | 0.21KB | 0.00% |
assets/images/imagedata.png | 6.21KB | 3.27KB | ▼ 47.29% |
assets/images/hgboxleft.png | 1.54KB | 1.85KB | 0.00% |