code: def magic_memit(self, line=''):
      
      opts, stmt = self.parse_options(line, 'r:t:i', posix=False, strict=False)
      repeat = int(getattr(opts, 'r', 1))
      if repeat < 1:
          repeat == 1
      timeout = int(getattr(opts, 't', 0))
      if timeout <= 0:
          timeout = None
      run_in_place = hasattr(opts, 'i')
  
      mem_usage = memory_usage((_func_exec, (stmt, self.shell.user_ns)), timeout=timeout,
          run_in_place=run_in_place)
  
      if mem_usage:
          print('maximum of %d: %f MB per loop' % (repeat, max(mem_usage)))
      else:
          print('ERROR: could not read memory usage, try with a lower interval or more iterations')
docs: Measure memory usage of a Python statement
  
      Usage, in line mode:
        %memit [-ir<R>t<T>] statement
  
      Options:
      -r<R>: repeat the loop iteration <R> times and take the best result.
      Default: 1
  
      -i: run the code in the current environment, without forking a new process.
      This is required on some MacOS versions of Accelerate if your line contains
      a call to `np.dot`.
  
      -t<T>: timeout after <T> seconds. Unused if `-i` is active. Default: None
  
      Examples
      --------
      ::
  
        In [1]: import numpy as np
  
        In [2]: %memit np.zeros(1e7)
        maximum of 1: 76.402344 MB per loop
  
        In [3]: %memit np.ones(1e6)
        maximum of 1: 7.820312 MB per loop
  
        In [4]: %memit -r 10 np.empty(1e8)
        maximum of 10: 0.101562 MB per loop
  
        In [5]: memit -t 3 while True: pass;
        Subprocess timed out.
        Subprocess timed out.
        Subprocess timed out.
        ERROR: all subprocesses exited unsuccessfully. Try again with the `-i`
        option.
        maximum of 1: -inf MB per loop