Drupal 7 performance related patches & replacements for core functionally

Events happening in the community are now at Drupal community events on www.drupal.org.
You are viewing a wiki page. You are welcome to join the group and then edit it. Be bold!
Posted by mikeytown2 on February 16, 2012 at 11:53pm
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.

Drupal 6 wiki

https://groups.drupal.org/node/187209

Comments

Varnish config?

Posted by damienmckenna on February 17, 2012 at 2:19am

How about listing things like Varnish & providing a link to a decent config for v2 and v3?

wiki

Posted by mikeytown2 on February 18, 2012 at 1:42am

feel free to add it in

APC

Posted by grape on February 17, 2012 at 6:12am

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

Posted by erikwebb on February 25, 2012 at 2:53am

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

Posted by rjbrown99 on February 25, 2012 at 8:52pm

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

Posted by joseph.olstad on February 16, 2015 at 2:02pm

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)

High performance

Group notifications

This group offers an RSS feed. Or subscribe to these personalized, sitewide feeds:

AltStyle によって変換されたページ (->オリジナル) /