original_string: public function pop()
      {
          if (! ($this->_idx > 0)) {
              throw new Exception('No timers have been started');
          }
          $start = $this->_start[--$this->_idx];
          return array(
              memory_get_usage() - $start[0],
              memory_get_peak_usage() - $start[1],
              memory_get_usage(true) - $start[2],
              memory_get_peak_usage(true) - $start[3]
          );
      }
code: public function pop()
      {
          if (! ($this->_idx > 0)) {
              throw new Exception('No timers have been started');
          }
          $start = $this->_start[--$this->_idx];
          return array(
              memory_get_usage() - $start[0],
              memory_get_peak_usage() - $start[1],
              memory_get_usage(true) - $start[2],
              memory_get_peak_usage(true) - $start[3]
          );
      }
code_tokens: public function pop ( ) { if ( ! ( $ this -> _idx > 0 ) ) { throw new Exception ( 'No timers have been started' ) ; } $ start = $ this -> _start [ -- $ this -> _idx ] ; return array ( memory_get_usage ( ) - $ start [ 0 ] , memory_get_peak_usage ( ) - $ start [ 1 ] , memory_get_usage ( true ) - $ start [ 2 ] , memory_get_peak_usage ( true ) - $ start [ 3 ] ) ; }
docstring: Pop the latest tracker and return the difference with the current
  memory situation.
  
  @return array The change in memory allocated via emalloc() in between the
  push() and the pop() call. The array holds four values: the
  first one indicates the change in current usage of memory
  while the second value indicates any changes in the peak
  amount of memory used. The third and fourth value show
  current and peak usage as well but indicate the real memory
  usage and not just the part allocated via emalloc(),
docstring_tokens: Pop the latest tracker and return the difference with the current memory situation .