WordPress.org

Make WordPress Core


Ignore:
Timestamp:
07/08/2016 02:36:37 PM (4 years ago)
Author:
ocean90
Message:

Bootstrap: Enhance core's memory limit handling.

  • Don't lower memory limit if the current limit is greater than WP_MAX_MEMORY_LIMIT.
  • Set WP_MEMORY_LIMIT and WP_MAX_MEMORY_LIMIT to current limit if the memory_limit setting can't be changed at runtime.
  • Use wp_convert_hr_to_bytes() when parsing the value of the memory_limit setting because it can be a shorthand or an integer value.
  • Introduce wp_raise_memory_limit( $context ) to raise the PHP memory limit for memory intensive processes. This DRYs up some logic and includes the existing admin_memory_limit and image_memory_limit filters. The function can also be used for custom contexts, the {$context}_memory_limit filter allows to customize the limit.
  • Introduce wp_is_ini_value_changeable( $setting ) to determine whether a PHP ini value is changeable at runtime.
  • Remove a function_exists( 'memory_get_usage' ) check. Since PHP 5.2.1 support for memory limit is always enabled.

Related commits: [38011-38013]

Props jrf, A5hleyRich, swissspidy, ocean90.
Fixes #32075.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/tests/phpunit/tests/functions.php

    r37962 r38015  
    479479                true,
    480480            ),
    481             // Android 2.2, Android Webkit Browser 
     481            // Android 2.2, Android Webkit Browser
    482482            array(
    483483                'Mozilla/5.0 (Android 2.2; Windows; U; Windows NT 6.1; en-US) AppleWebKit/533.19.4 (KHTML, like Gecko) Version/5.0.3 Safari/533.19.4',
    484484                true,
    485485            ),
    486             // BlackBerry 9900, BlackBerry browser 
     486            // BlackBerry 9900, BlackBerry browser
    487487            array(
    488488                'Mozilla/5.0 (BlackBerry; U; BlackBerry 9900; en) AppleWebKit/534.11+ (KHTML, like Gecko) Version/7.1.0.346 Mobile Safari/534.11+',
     
    866866        $this->assertNull( wp_ext2type( 'unknown_format' ) );
    867867    }
     868
     869    /**
     870     * Tests raising the memory limit.
     871     *
     872     * Unfortunately as the default for 'WP_MAX_MEMORY_LIMIT' in the
     873     * test suite is -1, we can not test the memory limit negotiations.
     874     *
     875     * @ticket 32075
     876     */
     877    function test_wp_raise_memory_limit() {
     878        ini_set( 'memory_limit', '40M' );
     879        $this->assertSame( -1, wp_raise_memory_limit() );
     880        $this->assertEquals( '-1', ini_get( 'memory_limit' ) );
     881    }
    868882}
Note: See TracChangeset for help on using the changeset viewer.