Пожиратели памяти в wordpress
Post on 11-Apr-2017
2.411 Views
Preview:
TRANSCRIPT
$before = memory_get_usage();// Делаем что-нибудь$after = memory_get_usage();
echo $after - $before;
... tried to allocate 8552 bytes in/path/to/wp-includes/wp-db.phpon line 1775
1775: while ( $row = mysqli_fetch_object( ...
... tried to allocate 8552 bytes in/path/to/wp-includes/wp-db.phpon line 1775
1775: while ( $row = mysqli_fetch_object( ...
Call Stack:
34032184 6. do_action() .../htdocs/wp-settings.php:393 34925000 7. call_user_func_array:{}() .../wp-includes/plugin.php:525 34925104 8. my_plugin_init() .../wp-includes/plugin.php:525134139664 9. wpdb->query() .../wp-content/plugins/memory.php:25134172496 10. mysqli_fetch_object() .../wp-includes/wp-db.php:1775
// Плохо$posts = get_posts( array( 'posts_per_page' => -1, // ...) );
foreach ( $posts as $post ) { // ...}
// Чуть лучше$paged = 1;
while ( $posts = get_posts( array( 'posts_per_page' => 100, 'paged' => $paged++,) ) ) { foreach ( $posts as $post ) { // ... }}
// Хорошоwp_suspend_cache_addition( true );
$paged = 1;while ( $posts = get_posts( array( 'posts_per_page' => 100, 'paged' => $paged++,) ) ) { // foreach ...}
wp_suspend_cache_addition( false );
// Плохоob_start( 'ob_callback' );
// Хорошоob_start( 'ob_callback', 1024*1024*2 );
function ob_callback( $content, $phase ) { // ...}
is_admin()is_network_admin()is_front_page()is_singular()...
template_redirectwp_headwp_footershutdowncron
Контекст
add_action( 'shutdown', function() { $line = json_encode( array( 'timestamp' => time(), 'request_uri' => $_SERVER['REQUEST_URI'], 'peak_memory' => memory_get_peak_usage(), ) );
file_put_contents( '/tmp/php-memory.log', $line . PHP_EOL, FILE_APPEND | LOCK_EX );});
Attributions:
Success Kid (Sammy Griner): https://en.wikipedia.org/wiki/Success_KidNinja character: http://www.vecteezy.com/vector-art/88129-ninja-vector-setBlood spatter CC-Attr-ShareALike 4.0: http://www.freevector.com/splattered-blood-graphics-setUser icons by FontAwesome, SIL OFL 1.1: http://fontawesome.io
top related