Benchmarks
Plugin footprint 64% from 16 tests
Installer Passed 1 test
🔺 Critical test (weight: 50) | The install procedure must perform silently
The plugin installed successfully, without throwing any errors or notices
Server metrics [RAM: ▲2.45MB] [CPU: ▲9.26ms] 75% from 4 tests
Server-side resources used by wpDataTables - WordPress Data Table, Dynamic Tables & Table Charts Plugin
Please take the time to fix the following items
- CPU: Try to keep total CPU usage under 500.00ms (currently 1,305.38ms on /wp-admin/admin.php?page=wpdatatables-dashboard)
Page | Memory (MB) | CPU Time (ms) |
---|---|---|
Home / | 5.72 ▲2.25 | 51.35 ▲9.07 |
Dashboard /wp-admin | 5.81 ▲2.47 | 62.20 ▼2.10 |
Posts /wp-admin/edit.php | 5.93 ▲2.57 | 65.75 ▲15.63 |
Add New Post /wp-admin/post-new.php | 8.44 ▲2.56 | 102.04 ▲14.44 |
Media Library /wp-admin/upload.php | 5.74 ▲2.51 | 57.32 ▲23.23 |
Welcome page /wp-admin/admin.php?page=wpdatatables-welcome-page | 5.85 | 56.48 |
Dashboard /wp-admin/admin.php?page=wpdatatables-dashboard | 5.96 | 1,305.38 |
wpDataTables /wp-admin/admin.php?page=wpdatatables-administration | 5.79 | 55.21 |
Settings /wp-admin/admin.php?page=wpdatatables-settings | 5.97 | 57.10 |
Addons /wp-admin/admin.php?page=wpdatatables-add-ons | 5.80 | 54.16 |
Go Premium /wp-admin/admin.php?page=wpdatatables-lite-vs-premium | 5.93 | 53.32 |
Create a Chart /wp-admin/admin.php?page=wpdatatables-chart-wizard | 6.00 | 58.30 |
Getting Started /wp-admin/admin.php?page=wpdatatables-getting-started | 5.83 | 60.45 |
wpDataCharts /wp-admin/admin.php?page=wpdatatables-charts | 5.78 | 54.32 |
Get Help /wp-admin/admin.php?page=wpdatatables-support | 5.78 | 52.82 |
Server storage [IO: ▲42.17MB] [DB: ▲0.01MB] 67% from 3 tests
How much does this plugin use your filesystem and database?
Please try to fix the following items
- Try to limit filesystem usage to 25MB (currently using 42.17MB)
Filesystem: 1,582 new files
Database: 5 new tables, 48 new options
New tables |
---|
wp_wpdatatables_cache |
wp_wpdatatables |
wp_wpdatacharts |
wp_wpdatatables_columns |
wp_wpdatatables_rows |
New WordPress options |
---|
wdtBaseSkin |
wdtAutoUpdateHash |
wdtSortingOrderBrowseTables |
wdtCSVDelimiter |
widget_recent-posts |
wdtDecimalPlaces |
wdtInterfaceLanguage |
wdtMySqlUser |
wdtDateFormat |
wdtMySqlDB |
... |
Browser metrics Passed 4 tests
An overview of browser requirements for wpDataTables - WordPress Data Table, Dynamic Tables & Table Charts Plugin
There were no issues detected in relation to browser resource usage
Page | Nodes | Memory (MB) | Script (ms) | Layout (ms) |
---|---|---|---|---|
Home / | 2,871 ▲124 | 14.57 ▲0.17 | 1.51 ▼0.24 | 26.63 ▼15.51 |
Dashboard /wp-admin | 2,270 ▲100 | 5.76 ▲0.11 | 97.22 ▼6.68 | 44.19 ▲4.14 |
Posts /wp-admin/edit.php | 2,177 ▲74 | 2.03 ▲0.09 | 39.63 ▲3.56 | 39.00 ▲4.52 |
Add New Post /wp-admin/post-new.php | 6,431 ▲4,902 | 27.73 ▲4.45 | 827.12 ▲213.09 | 37.32 ▼9.96 |
Media Library /wp-admin/upload.php | 1,482 ▲82 | 4.38 ▲0.19 | 97.98 ▲3.59 | 43.53 ▲2.16 |
Welcome page /wp-admin/admin.php?page=wpdatatables-welcome-page | 4,535 | 3.62 | 86.15 | 154.37 |
Dashboard /wp-admin/admin.php?page=wpdatatables-dashboard | 4,522 | 4.12 | 76.91 | 293.52 |
wpDataTables /wp-admin/admin.php?page=wpdatatables-administration | 1,779 | 3.62 | 60.35 | 102.31 |
Settings /wp-admin/admin.php?page=wpdatatables-settings | 5,810 | 6.26 | 141.35 | 129.18 |
Addons /wp-admin/admin.php?page=wpdatatables-add-ons | 1,643 | 3.85 | 55.24 | 94.25 |
Go Premium /wp-admin/admin.php?page=wpdatatables-lite-vs-premium | 3,458 | 3.59 | 61.30 | 125.39 |
Create a Chart /wp-admin/admin.php?page=wpdatatables-chart-wizard | 5,017 | 7.02 | 125.99 | 101.67 |
Getting Started /wp-admin/admin.php?page=wpdatatables-getting-started | 1,788 | 3.89 | 55.22 | 119.07 |
wpDataCharts /wp-admin/admin.php?page=wpdatatables-charts | 1,757 | 4.01 | 60.39 | 101.81 |
Get Help /wp-admin/admin.php?page=wpdatatables-support | 1,870 | 3.85 | 50.84 | 91.99 |
Uninstaller [IO: ▲0.00MB] [DB: ▲0.01MB] 50% from 4 tests
🔸 Tests weight: 35 | The uninstall procedure must remove all plugin files and extra database tables
Please fix the following items
- This plugin does not fully uninstall, leaving 5 tables in the database
- wp_wpdatatables
- wp_wpdatacharts
- wp_wpdatatables_rows
- wp_wpdatatables_cache
- wp_wpdatatables_columns
- The uninstall procedure has failed, leaving 48 options in the database
- wdtTablesPerPage
- wdtMySqlHost
- wdtSimpleTableAlert
- wdtPurchaseCode
- wdtMobileWidth
- wdtSortingOrderBrowseTables
- wdtInstallDate
- wdtTempFutureDate
- wdtBorderRemovalHeader
- wdtLeftOffset
- ...
Smoke tests 50% from 4 tests
Server-side errors Passed 1 test
🔹 Test weight: 20 | This is a shallow check for server-side errors
Even though everything seems fine, this is not 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
- 296× PHP files output text when accessed directly (only 10 are shown):
- > /wp-content/plugins/wpdatatables/source/lang/spanish.inc.php
- > /wp-content/plugins/wpdatatables/templates/admin/common/ratingDiv.inc.php
- > /wp-content/plugins/wpdatatables/lib/phpoffice/phpspreadsheet/samples/Basic/31_Document_properties_write_xls.php
- > /wp-content/plugins/wpdatatables/lib/phpoffice/phpspreadsheet/samples/Basic/17_Html.php
- > /wp-content/plugins/wpdatatables/templates/wpdatachart.inc.php
- > /wp-content/plugins/wpdatatables/source/class.datetime.wpdatacolumn.php
- > /wp-content/plugins/wpdatatables/lib/phpoffice/phpspreadsheet/samples/Chart/33_Chart_create_column.php
- > /wp-content/plugins/wpdatatables/source/lang/russian.inc.php
- > /wp-content/plugins/wpdatatables/lib/phpoffice/phpspreadsheet/samples/Reader/10_Simple_file_reader_using_a_configurable_read_filter.php
- > /wp-content/plugins/wpdatatables/templates/frontend/filter_form.inc.php
- 4091× GET requests to PHP files have triggered server-side errors or warnings (only 10 are shown):
- > PHP Notice
Trying to access array offset on value of type float in wp-content/plugins/wpdatatables/lib/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Chart/DataSeriesValues.php on line 351
- > PHP Notice
Trying to access array offset on value of type float in wp-content/plugins/wpdatatables/lib/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Chart/DataSeriesValues.php on line 351
- > PHP Notice
Trying to access array offset on value of type float in wp-content/plugins/wpdatatables/lib/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Chart/DataSeriesValues.php on line 351
- > PHP Fatal error
Uncaught Error: Class 'PhpOffice\\PhpSpreadsheet\\Worksheet\\BaseDrawing' not found in wp-content/plugins/wpdatatables/lib/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Worksheet/Drawing.php:7
- > PHP Notice
Trying to access array offset on value of type null in wp-content/plugins/wpdatatables/lib/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xlsx/Worksheet.php on line 1106
- > PHP Notice
Trying to access array offset on value of type null in wp-content/plugins/wpdatatables/lib/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xlsx/Worksheet.php on line 1106
- > PHP Notice
Trying to access array offset on value of type null in wp-content/plugins/wpdatatables/lib/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Calculation.php on line 3346
- > PHP Notice
Trying to access array offset on value of type null in wp-content/plugins/wpdatatables/lib/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xlsx/Worksheet.php on line 1106
- > PHP Notice
Trying to access array offset on value of type null in wp-content/plugins/wpdatatables/lib/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xlsx/Worksheet.php on line 1106
- > PHP Notice
Trying to access array offset on value of type null in wp-content/plugins/wpdatatables/lib/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Calculation.php on line 3346
- > PHP Notice
User-side errors Passed 1 test
🔹 Test weight: 20 | A shallow check that no browser errors were triggered
No browser issues were found
Optimizations
Plugin configuration 97% from 29 tests
readme.txt 94% from 16 tests
The readme.txt file describes your plugin functionality and requirements and it is parsed to prepare the your plugin's listing
These attributes need to be fixed:
- Tags: Please delete some tags, you are using 51 tag instead of maximum 10
wpdatatables/wpdatatables.php Passed 13 tests
This is the main PHP file of "wpDataTables - WordPress Data Table, Dynamic Tables & Table Charts Plugin" version 2.1.76, providing information about the plugin in the header fields and serving as the principal entry point to the plugin's functions
127 characters long description:
Create responsive, sortable tables & charts from Excel, CSV or PHP. Add tables & charts to any post in minutes with DataTables.
Code Analysis 95% from 3 tests
File types Passed 1 test
🔸 Test weight: 35 | This is an overview of programming languages used in this plugin; dangerous file extensions are not allowed
There were no executable files found in this plugin430,356 lines of code in 1,100 files:
Language | Files | Blank lines | Comment lines | Lines of code |
---|---|---|---|---|
JavaScript | 263 | 23,311 | 36,794 | 166,879 |
PHP | 640 | 17,765 | 36,329 | 92,113 |
CSS | 86 | 6,598 | 996 | 47,604 |
PO File | 11 | 18,599 | 29,511 | 42,532 |
XML | 5 | 1 | 0 | 39,757 |
JSON | 11 | 0 | 0 | 20,337 |
Markdown | 32 | 2,619 | 0 | 10,408 |
SVG | 30 | 43 | 2 | 9,949 |
C# | 10 | 45 | 1 | 318 |
JSX | 3 | 40 | 12 | 160 |
YAML | 6 | 19 | 12 | 112 |
HTML | 1 | 24 | 0 | 106 |
MSBuild script | 1 | 0 | 7 | 57 |
Bourne Again Shell | 1 | 6 | 3 | 24 |
PHP code 0% from 2 tests
Analyzing cyclomatic complexity and code structure
Please tend to the following items
- Cyclomatic complexity of classes has to be reduced to less than 1000 (currently 1,016)
- Cyclomatic complexity of methods has to be reduced to less than 100 (currently 387)
Cyclomatic complexity | |
---|---|
Average complexity per logical line of code | 0.34 |
Average class complexity | 38.72 |
▷ Minimum class complexity | 1.00 |
▷ Maximum class complexity | 1,016.00 |
Average method complexity | 4.11 |
▷ Minimum method complexity | 1.00 |
▷ Maximum method complexity | 387.00 |
Code structure | ||
---|---|---|
Namespaces | 52 | |
Interfaces | 12 | |
Traits | 2 | |
Classes | 292 | |
▷ Abstract classes | 16 | 5.48% |
▷ Concrete classes | 276 | 94.52% |
▷ Final classes | 1 | 0.36% |
Methods | 3,745 | |
▷ Static methods | 844 | 22.54% |
▷ Public methods | 3,084 | 82.35% |
▷ Protected methods | 99 | 2.64% |
▷ Private methods | 562 | 15.01% |
Functions | 171 | |
▷ Named functions | 129 | 75.44% |
▷ Anonymous functions | 42 | 24.56% |
Constants | 835 | |
▷ Global constants | 26 | 3.11% |
▷ Class constants | 809 | 96.89% |
▷ Public constants | 809 | 100.00% |
Plugin size 50% from 2 tests
Image compression 50% from 2 tests
Often times overlooked, PNG files can occupy unnecessary space in your plugin
153 PNG files occupy 6.16MB with 2.60MB in potential savings
Potential savings
Compression of 5 random PNG files using pngquant | |||
---|---|---|---|
File | Size - original | Size - compressed | Savings |
integrations/page_builders/wpbakery/assets/img/vc-charts-icon.png | 0.49KB | 0.21KB | ▼ 57.80% |
lib/phpoffice/phpspreadsheet/docs/topics/images/04-05-topten-autofilter-1.png | 52.48KB | 18.18KB | ▼ 65.36% |
assets/img/smile.png | 2.42KB | 1.83KB | ▼ 24.29% |
assets/img/hint-pictures/rows_per_page.png | 47.90KB | 17.43KB | ▼ 63.61% |
assets/css/minimal.png | 1.09KB | 1.45KB | 0.00% |