File: memleak_hawaii3.py

package info (click to toggle)
matplotlib 2.0.0%2Bdfsg1-2
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 91,640 kB
  • ctags: 29,525
  • sloc: python: 122,697; cpp: 60,806; ansic: 30,799; objc: 2,830; makefile: 224; sh: 85
file content (61 lines) | stat: -rwxr-xr-x 1,404 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#!/usr/bin/env python

from __future__ import print_function

import gc
import matplotlib
matplotlib.use('PDF')

from matplotlib.cbook import report_memory
import numpy as np
import matplotlib.pyplot as plt
# take a memory snapshot on indStart and compare it with indEnd

rand = np.random.rand

indStart, indEnd = 200, 401
mem_size, coll_count = [], []
for i in range(indEnd):

    fig = plt.figure(1)
    fig.clf()

    t1 = np.arange(0.0, 2.0, 0.01)
    y1 = np.sin(2 * np.pi * t1)
    y2 = rand(len(t1))
    X = rand(50, 50)

    ax = fig.add_subplot(221)
    ax.plot(t1, y1, '-')
    ax.plot(t1, y2, 's')

    ax = fig.add_subplot(222)
    ax.imshow(X)

    ax = fig.add_subplot(223)
    ax.scatter(rand(50), rand(50), s=100 * rand(50), c=rand(50))

    ax = fig.add_subplot(224)
    ax.pcolor(10 * rand(50, 50))

    fig.savefig('tmp%d' % i, dpi=75)
    plt.close(1)

    coll = gc.collect()
    val = report_memory(i)
    print(i, val)
    if i == indStart:
        start = val  # wait a few cycles for memory usage to stabilize
    mem_size.append(val)
    coll_count.append(coll)

end = val
print('Average memory consumed per loop: %1.4fk bytes\n' %
      ((end - start) / float(indEnd - indStart)))
fig, ax = plt.subplots()
ax2 = ax.twinx()
ax.plot(mem_size, 'r')
ax.set_ylabel('memory size', color='r')
ax2.plot(coll_count, 'k')
ax2.set_ylabel('collect count', color='k')
fig.savefig('report')