26

GitHub - krakjoe/ilimit: Limit time and memory consumption of individual calls

 4 years ago
source link: https://github.com/krakjoe/ilimit
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

ilimit

ilimit provides a method to execute a call while imposing limits on the time and memory that the call may consume.

Requirements

  • PHP 7.1+
  • pthread.h

Stubs

This repository includes PHP files with method headers for IDE integration and static analysis support.

To install, run the following command:

composer require krakjoe/ilimit
namespace ilimit {
    /**
     * Call a callback while imposing limits on the time and memory that
     * the call may consume.
     *
     * @param callable $callable      The invocation to make.
     * @param array    $arguments     The list of arguments.
     * @param int      $timeout       The maximum execution time, in microseconds.
     * @param int      $maxMemory     The maximum amount of memory, in bytes.
     *                                If set to zero, no limit is imposed.
     * @param int      $checkInterval The interval between memory checks,
     *                                in microseconds. If set to zero or less,
     *                                a default interval of 100 microseconds is used.
     *
     * @return mixed Returns the return value of the callback.
     *
     * @throws Error\Runtime If timeout is not positive.
     * @throws Error\Runtime If maxMemory is negative.
     * @throws Error\System  If the system lacks necessary resources to make the call.
     * @throws Error\Timeout If the invocation exceeds the allowed time.
     * @throws Error\Memory  If the invocation exceeds the allowed memory.
     */
    function call(callable $callable, array $arguments, int $timeout, int $maxMemory = 0, int $checkInterval = 0);
}

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK