Last updated by SpaghettiBolognese on Mon, 2017-03-27 22:12
Core Patches
Big Performance Gains - Low Risk
Second loop in module_implements() being repeated for no reason. ~ 400ms - Included in 7.40
Speed up drupal_parse_info_format() 3x and reduce memory 95% ~ 600ms - Included in 7.40
Add static cache to module_load_include() ~ 45ms - 1.1s - included in 7.42
improve theme registry rebuild performance by 85% ~ 4 seconds Included in 7.51 October 2016
Small Performance Gains - Low Risk
inline file_uri_scheme() in file_stream_wrapper_uri_normalize() ~0-150ms Included in 7.x-dev September 2016
Avoid re-scanning module directory when multiple modules are missing ~0-300ms included in 7.50
Add static cache to DatabaseConnection ::escapeTable(), ::escapeField() and ::escapeAlias() ~20-100ms with large number of similar queries (commerce line items). Included in 7.x-dev September 2016
Small Performance Gains - High Risk
If item is hidden in _menu_tree_check_access() skip it right away ~5-50ms
Race Conditions
Fixes for MySQL Deadlocks in D7
Notice: Trying to get property of non-object in image_style_deliver()
Fix Bugs
Fix PHP Notices
Control Memory Usage
Contrib Patches
Link Module - Only re-load the entity in _link_sanitize() if tokens need to be replaced IN DEV branch v1.3
Context Module - Cache query in context_reaction_block::get_blocks() & remove unused blocks before the alters get called
Panels Mini Module - panels_mini_load & friends need caching
Workbench Moderation Module - Node revision history optimization on large websites
Menu Item Visibility Module - menu_item_visibility_load time
Performance
Replace Core's Functionally
Cache Backends
Memcache API and Integration (cache, locks, sessions)
Redis (cache, locks, sessions)
Entity cache (load entities from cache rather than DB)
FileCache No special server requirements so suitable for shared hosting.
MongoDB (cache, locks, sessions, field storage, watchdog, block, queue)
Book Cache Memory and query optimizer for book module in rendering capability.
Database
AutoSlave (automatic use of slave db, scalability)
APDQC (tuning guide / optimizations beyond default mysql controller), also provides a lot of optimizations previously described above.
Page
Cache Expiration - configurable actions upon events that will expire URLs from caches
Boost - serve static pages to anonymous users as single files / db hits.
AuthCache - serves authenticated requests faster than stock drupal serves anonymous requests.
Statistics
jStats
Google Analytics Statistics
Block/Pane Alt Rendering
Ajax Blocks
Edge Side Includes integration
HTTP Requests
chr
HTTP Parallel Request Library - Replacement for drupal_http_request()
CSS/JS file aggregation/optimization
Advanced CSS/JS Aggregation
Speedy
Magic
Aggregate cache
Core Library
UglifyJS
Simple aggregation
Others
Tracelytics - tracelytics web application performance analysis Drupal integration
Menu Performance - Benchmarks: ~200ms improvement with 1000 menu items.
Big Autocomplete TAXonomy - Use autocomplete form field if taxonomy is bigger than a predefined number of terms.
Imageinfo Cache - Image style pre-generation.
Render Cache - Backport of D8 render caching engine, requires a lot of tuning / experimental.
Display Cache - Weaker version of render_cache, has potential side effects.
Comments
Varnish config?
How about listing things like Varnish & providing a link to a decent config for v2 and v3?
wiki
feel free to add it in
APC
The easiest performance boost aside from disabling all of those silly modules you don't need is plopping "apc.shm_size = 256M" in your apc.ini.
Although probably not the
Although probably not the usual setup, you should be careful when setting the
apc.shm_size
to an unnecessarily high value when using PHP w/ FastCGI because each thread uses a separate APC bucket.FPM
Unless you use php-fpm, which can share an opcode cache across all workers. It is included with PHP 5.3.3 and above.
add to contrib module section
Ctools performance gains:
https://www.drupal.org/node/2397783
i18n:
noteworthy for those making international sites.
i18n version 7.x-1.12 has major performance improvement due to added index on locales_source table. (serious performance gains for that)