title: Reading the output of Pythons memory_profiler
body: <p>I have a problem with understanding the <code>memory_profiler</code>s output. Basically, it looks like this:</p>
  
  <pre><code>Filename: tspviz.py
  
  Line #    Mem usage    Increment   Line Contents
  ================================================
       7  34.589844 MiB  34.589844 MiB   @profile(precision=6)
       8                             def parse_arguments():
       9  34.917969 MiB   0.328125 MiB       a = [x**2 for x in range(10000)]
  </code></pre>
  
  <p>On the 9th line we can clearly see, that we use some memory. Now, I measured the size of this list with <code>sys.getsizeof()</code>. And I double checked if it is in fact a list of ints:</p>
  
  <pre><code>print(sys.getsizeof(a))
  print(type(a[0]))
  </code></pre>
  
  <p>And this is what I got:</p>
  
  <pre><code>87624
  &lt;class 'int'&gt;
  </code></pre>
  
  <p>Well, now there's a problem. As I was checking, f.e the int in Python is of size <code>28</code> on my 64-bit Windows machine. I don't know if that's correct. But even so. <code>10000 * 28</code> = 0.28 MB. And <code>0.28 MB = 0.267028809 MiB</code> (the output from the <code>memory_profiler</code> is displaying MiB). Now the problem is, that in the table there is <code>0.328125 MiB</code>, so the difference is <code>0.061096191</code> MB.</p>
  
  <p>My concern here is, well, is it really that big amount of memory needed to construct a list in Python, or am I interpreting something in a wrong way?</p>
  
  <p>And P.S: Why, when this <code>a</code> list was of length <code>1000000</code>, the number in the <code>Increment</code> column for this line, when I was creating it, was like -9xxx MiB? I mean why the negative number?</p>