Benchmarks
Plugin footprint 82% from 16 tests
Installer Passed 1 test
🔺 Critical test (weight: 50) | All plugins must install correctly, without throwing any errors, warnings, or notices
Installer ran successfully
Server metrics [RAM: ▲2.74MB] [CPU: ▲17.99ms] 75% from 4 tests
Server-side resources used by Visualizer: Tables and Charts Manager for WordPress #
It is recommended to improve the following
- CPU: Total CPU usage should be kept under 500.00ms (currently 3,792.91ms on /wp-admin/admin.php?page=ti-about-visualizer)
Page | Memory (MB) | CPU Time (ms) |
---|---|---|
Home / | 6.03 ▲2.57 | 60.34 ▲12.51 |
Dashboard /wp-admin | 6.14 ▲2.84 | 64.16 ▲11.26 |
Posts /wp-admin/edit.php | 6.16 ▲2.81 | 60.22 ▲11.23 |
Add New Post /wp-admin/post-new.php | 9.31 ▲3.42 | 161.95 ▲74.23 |
Media Library /wp-admin/upload.php | 5.99 ▲2.76 | 72.49 ▲36.95 |
Support /wp-admin/admin.php?page=viz-support | 5.95 | 49.79 |
Setup Wizard /wp-admin/admin.php?page=visualizer-setup-wizard | 6.03 | 60.77 |
About Us /wp-admin/admin.php?page=ti-about-visualizer | 6.96 | 3,792.91 |
Server storage [IO: ▲15.65MB] [DB: ▲0.90MB] Passed 3 tests
How much does this plugin use your filesystem and database?
This plugin installed successfully
Filesystem: 928 new files
Database: no new tables, 11 new options
New WordPress options |
---|
widget_theysaidso_widget |
visualizer_fresh_install |
visualizer_install |
can_compress_scripts |
visualizer-new-user |
visualizer-upgraded-from |
db_upgraded |
theysaidso_admin_options |
widget_recent-posts |
widget_recent-comments |
... |
Browser metrics Passed 4 tests
Visualizer: Tables and Charts Manager for WordPress #: an overview of browser usage
There were no issues detected in relation to browser resource usage
Page | Nodes | Memory (MB) | Script (ms) | Layout (ms) |
---|---|---|---|---|
Home / | 3,010 ▲249 | 14.38 ▼0.18 | 1.73 ▼0.17 | 32.25 ▼7.82 |
Dashboard /wp-admin | 2,419 ▲239 | 5.55 ▼0.06 | 85.17 ▼8.56 | 45.34 ▲2.61 |
Posts /wp-admin/edit.php | 2,199 ▲96 | 1.99 ▼0.04 | 35.06 ▼6.19 | 32.34 ▼17.54 |
Add New Post /wp-admin/post-new.php | 1,619 ▲91 | 24.92 ▲1.78 | 910.47 ▲230.68 | 39.40 ▼22.58 |
Media Library /wp-admin/upload.php | 1,496 ▲102 | 4.31 ▲0.09 | 100.12 ▼1.45 | 43.30 ▼1.72 |
Support /wp-admin/admin.php?page=viz-support | 1,464 | 10.20 | 277.96 | 62.20 |
Setup Wizard /wp-admin/admin.php?page=visualizer-setup-wizard | 1,616 | 2.42 | 57.32 | 259.16 |
About Us /wp-admin/admin.php?page=ti-about-visualizer | 1,217 | 6.46 | 142.22 | 43.93 |
Uninstaller [IO: ▲0.00MB] [DB: ▲0.90MB] 75% from 4 tests
🔸 Tests weight: 35 | All plugins must uninstall correctly, removing their source code and extra database tables they might have created
Please fix the following items
- This plugin does not fully uninstall, leaving 10 options in the database
- db_upgraded
- theysaidso_admin_options
- visualizer_install
- widget_recent-posts
- can_compress_scripts
- visualizer-upgraded
- widget_theysaidso_widget
- widget_recent-comments
- visualizer-new-user
- visualizer-upgraded-from
Smoke tests 50% from 4 tests
Server-side errors Passed 1 test
🔹 Test weight: 20 | Just a short smoke test targeting errors on the server (in the Apache logs)
The smoke test was a success, however most plugin functionality was not tested
SRP 0% from 2 tests
🔹 Tests weight: 20 | The single-responsibility principle applies for WordPress plugins as well - please make sure your PHP files perform no actions when accessed directly
The following issues need your attention
- 121× PHP files output text when accessed directly (only 10 are shown):
- > /wp-content/plugins/visualizer/vendor/phpoffice/phpspreadsheet/samples/Basic/01_Simple_download_xls.php
- > /wp-content/plugins/visualizer/vendor/phpoffice/phpspreadsheet/samples/Autofilter/10_Autofilter_selection_display.php
- > /wp-content/plugins/visualizer/vendor/markbaker/complex/examples/complexTest.php
- > /wp-content/plugins/visualizer/vendor/phpoffice/phpspreadsheet/samples/Chart/34_Chart_update.php
- > /wp-content/plugins/visualizer/vendor/phpoffice/phpspreadsheet/samples/Basic/31_Document_properties_write_xls.php
- > /wp-content/plugins/visualizer/vendor/phpoffice/phpspreadsheet/samples/Chart/33_Chart_create_area.php
- > /wp-content/plugins/visualizer/vendor/phpoffice/phpspreadsheet/samples/Basic/01_Simple_download_ods.php
- > /wp-content/plugins/visualizer/vendor/phpoffice/phpspreadsheet/samples/Pdf/21_Pdf_TCPDF.php
- > /wp-content/plugins/visualizer/vendor/phpoffice/phpspreadsheet/samples/Basic/04_Printing.php
- > /wp-content/plugins/visualizer/vendor/phpoffice/phpspreadsheet/samples/Reader/17_Simple_file_reader_loading_several_named_worksheets.php
- 4095× PHP files trigger errors when accessed directly with GET requests (only 10 are shown):
- > PHP Notice
Trying to access array offset on value of type int in wp-content/plugins/visualizer/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Cell/DefaultValueBinder.php on line 58
- > PHP Notice
Trying to access array offset on value of type int in wp-content/plugins/visualizer/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Cell/DefaultValueBinder.php on line 58
- > PHP Notice
Trying to access array offset on value of type int in wp-content/plugins/visualizer/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Cell/DefaultValueBinder.php on line 58
- > PHP Notice
Trying to access array offset on value of type int in wp-content/plugins/visualizer/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Cell/DefaultValueBinder.php on line 58
- > PHP Notice
Trying to access array offset on value of type int in wp-content/plugins/visualizer/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Cell/DefaultValueBinder.php on line 58
- > PHP Notice
Trying to access array offset on value of type int in wp-content/plugins/visualizer/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Cell/DefaultValueBinder.php on line 58
- > PHP Notice
Trying to access array offset on value of type int in wp-content/plugins/visualizer/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Cell/DefaultValueBinder.php on line 58
- > PHP Notice
Trying to access array offset on value of type int in wp-content/plugins/visualizer/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Cell/DefaultValueBinder.php on line 58
- > PHP Notice
Trying to access array offset on value of type null in wp-content/plugins/visualizer/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xlsx/Worksheet.php on line 1108
- > PHP Notice
Trying to access array offset on value of type int in wp-content/plugins/visualizer/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Cell/DefaultValueBinder.php on line 58
- > PHP Notice
User-side errors Passed 1 test
🔹 Test weight: 20 | A shallow check that no browser errors were triggered
Everything seems fine on the user side
Optimizations
Plugin configuration 90% from 29 tests
readme.txt 94% from 16 tests
Don't ignore readme.txt as it is the file that instructs WordPress.org on how to present your plugin to the world
These attributes need to be fixed:
- Screenshots: These screenshots lack descriptions #1, #10, #11, #12, #13, #2, #3, #4, #5, #6, #7, #8, #9 in visualizer/assets to your readme.txt
visualizer/index.php 85% from 13 tests
The entry point to "Visualizer: Tables and Charts Manager for WordPress #" version 3.10.4 is a PHP file that has certain tags in its header comment area
Please make the necessary changes and fix the following:
- Main file name: It is recommended to name the main PHP file as the plugin slug ("visualizer.php" instead of "index.php")
- Description: Please don't use more than 140 characters for the plugin description (currently 332 characters long)
Code Analysis 95% from 3 tests
File types Passed 1 test
🔸 Test weight: 35 | An overview of files in this plugin; executable files are not allowed
There were no executable files found in this plugin153,078 lines of code in 674 files:
Language | Files | Blank lines | Comment lines | Lines of code |
---|---|---|---|---|
PHP | 519 | 17,026 | 39,406 | 83,035 |
XML | 4 | 0 | 0 | 39,739 |
JavaScript | 76 | 1,958 | 993 | 11,518 |
Markdown | 32 | 3,009 | 0 | 11,102 |
CSS | 19 | 453 | 135 | 3,922 |
SVG | 6 | 1 | 1 | 1,680 |
PO File | 1 | 266 | 378 | 773 |
JSON | 1 | 0 | 0 | 403 |
Sass | 1 | 69 | 0 | 342 |
C# | 10 | 45 | 1 | 318 |
HTML | 1 | 24 | 0 | 106 |
YAML | 3 | 14 | 1 | 83 |
MSBuild script | 1 | 0 | 7 | 57 |
PHP code 0% from 2 tests
An short overview of logical lines of code, cyclomatic complexity, and other code metrics
The following items need your attention
- Please reduce cyclomatic complexity of classes to less than 1000 (currently 1,016)
- Method cyclomatic complexity has to be reduced to less than 100 (currently 387)
Cyclomatic complexity | |
---|---|
Average complexity per logical line of code | 0.36 |
Average class complexity | 39.27 |
▷ Minimum class complexity | 1.00 |
▷ Maximum class complexity | 1,016.00 |
Average method complexity | 4.34 |
▷ Minimum method complexity | 1.00 |
▷ Maximum method complexity | 387.00 |
Code structure | ||
---|---|---|
Namespaces | 55 | |
Interfaces | 10 | |
Traits | 0 | |
Classes | 309 | |
▷ Abstract classes | 24 | 7.77% |
▷ Concrete classes | 285 | 92.23% |
▷ Final classes | 1 | 0.35% |
Methods | 3,679 | |
▷ Static methods | 807 | 21.94% |
▷ Public methods | 2,702 | 73.44% |
▷ Protected methods | 252 | 6.85% |
▷ Private methods | 725 | 19.71% |
Functions | 125 | |
▷ Named functions | 78 | 62.40% |
▷ Anonymous functions | 47 | 37.60% |
Constants | 886 | |
▷ Global constants | 25 | 2.82% |
▷ Class constants | 861 | 97.18% |
▷ Public constants | 861 | 100.00% |
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
71 PNG files occupy 1.83MB with 0.55MB in potential savings
Potential savings
Compression of 5 random PNG files using pngquant | |||
---|---|---|---|
File | Size - original | Size - compressed | Savings |
images/computer.png | 0.55KB | 0.61KB | 0.00% |
vendor/phpoffice/phpspreadsheet/docs/topics/images/01-03-filter-icon-1.png | 0.44KB | 0.31KB | ▼ 30.68% |
vendor/phpoffice/phpspreadsheet/docs/topics/images/09-command-line-calculation.png | 43.29KB | 16.14KB | ▼ 62.71% |
images/lib/datatables/back_enabled.png | 1.35KB | 0.60KB | ▼ 55.69% |
images/chosen-sprite.png | 0.53KB | 0.88KB | 0.00% |