Re: [Matplotlib-users] imshow memory problem
I am using "pmap -pid" on Linux and Task manager on Windows. Memory usage is comparable on both operating systems so I think the memory consumption information is accurate. > Pôvodná správa > Od: Michael Droettboom > Predmet: Re: [Matplotlib-users] imshow memory problem > Dátum: 18.5.2010 16:18:23 > > What are you using to calculate memory usage? I feel the only truly > reliable tool is something instrumented like "valgrind --tool=massif". > > > BUILDING MATPLOTLIB > matplotlib: 1.0.svn > python: 2.5.2 (r252:60911, May 7 2008, 12:40:32) [GCC > 3.4.6 20060404 (Red Hat 3.4.6-9)] > platform: linux2 > > REQUIRED DEPENDENCIES > numpy: 2.0.0.dev8055 > freetype2: 9.16.3 > > OPTIONAL BACKEND DEPENDENCIES > libpng: 1.2.37 >Tkinter: Tkinter: 50704, Tk: 8.4, Tcl: 8.4 > wxPython: 2.8.6.1 > * WxAgg extension not required for wxPython >= 2.8 > Gtk+: gtk+: 2.10.9, glib: 2.16.1, pygtk: 2.10.4, > pygobject: 2.13.1 >Mac OS X native: no > Qt: Qt: 3.3.3, PyQt: 3.17.2 >Qt4: Qt: 4.6.2, PyQt4: 4.7.3 > Cairo: 1.4.0 > > OPTIONAL DATE/TIMEZONE DEPENDENCIES > datetime: present, version unknown > dateutil: 1.4.1 > pytz: 2008c > > OPTIONAL USETEX DEPENDENCIES > dvipng: 1.12 >ghostscript: 7.07 > latex: 3.1415926 >pdftops: 3.00 > > verbose-helpful: > > $HOME=/home/mdroe > CONFIGDIR=/home/mdroe/.matplotlib > matplotlib data path > /home/mdroe/usr/lib/python2.5/site-packages/matplotlib/mpl-data > loaded rc file /home/mdroe/.matplotlib/matplotlibrc > matplotlib version 1.0.svn > verbose.level helpful > interactive is False > units is False > platform is linux2 > Using fontManager instance from /home/mdroe/.matplotlib/fontList.cache > backend GTKAgg version 2.10.4 > findfont: Matching > :family=sans-serif:style=normal:variant=normal:weight=normal:stretch=normal:size=medium > > to Bitstream Vera Sans > (/home/mdroe/usr/lib/python2.5/site-packages/matplotlib/mpl-data/fonts/ttf/Vera.ttf) > > with score of 0.00 > > > Tomáš Faragó wrote: > > Thanks for replying Mike, > > I tried it on Linux as well but I ran into the same problem. Perhaps > > it has something to do with other needed libraries (GTK+, etc.). Can > > you please tell me your libraries versions? I mean GTK+, pygtk, etc. > > Also output produced by --verbose-helpful could be useful. Thank you. > > Tomas. > > > > > >> Pôvodná správa > >> Od: Michael Droettboom > >> Predmet: Re: [Matplotlib-users] imshow memory problem > >> Dátum: 17.5.2010 16:48:55 > >> > >> On Linux, I only see about an extra 24kb being used when the canvas > >> is added to a window vs. not adding it (i.e. commenting out the > >> window.add(canvas) line). > >> > >> In general, here's the memory usage to be expected from imshow (if > >> it's a floating-point, not-rgb(a) array as you have here): > >> > >> The original data: 4-bytes-per-pixel for float32 or 8-bytes-per-pixel > >> for float64 (in your example the array is float64). > >> Intermediate float data: *if* the original is not float64, then an > >> intermediate float64 is created (not the case here) > >> The colorized data: 4-bytes-per-pixel at original array size > >> The sized data: 4-bytes-per-pixel at the scaled figure size > >> > >> I hope I'm not forgetting anything, but the point is that to support > >> high-speed rendering of plots, the memory usage is much greater than > >> the data itself. If your data is truly large, the usual technique is > >> to decimate or downsample it before passing it to matplotlib, as > >> you're not going to see more data points than pixels on your display > >> anyway. > >> > >> Mike > >> > >> Tomáš Faragó wrote: > >> > Hello, > >> > I am writing a GUI using GTK+ library. I have a question about axes > >> class > >> imshow method memory consumtion. If I pass the imshow an array, the > >> resulting > >> me
Re: [Matplotlib-users] imshow memory problem
Thanks for replying Mike, I tried it on Linux as well but I ran into the same problem. Perhaps it has something to do with other needed libraries (GTK+, etc.). Can you please tell me your libraries versions? I mean GTK+, pygtk, etc. Also output produced by --verbose-helpful could be useful. Thank you. Tomas. > Pôvodná správa > Od: Michael Droettboom > Predmet: Re: [Matplotlib-users] imshow memory problem > Dátum: 17.5.2010 16:48:55 > > On Linux, I only see about an extra 24kb being used when the canvas is > added to a window vs. not adding it (i.e. commenting out the > window.add(canvas) line). > > In general, here's the memory usage to be expected from imshow (if it's > a floating-point, not-rgb(a) array as you have here): > > The original data: 4-bytes-per-pixel for float32 or 8-bytes-per-pixel > for float64 (in your example the array is float64). > Intermediate float data: *if* the original is not float64, then an > intermediate float64 is created (not the case here) > The colorized data: 4-bytes-per-pixel at original array size > The sized data: 4-bytes-per-pixel at the scaled figure size > > I hope I'm not forgetting anything, but the point is that to support > high-speed rendering of plots, the memory usage is much greater than the > data itself. If your data is truly large, the usual technique is to > decimate or downsample it before passing it to matplotlib, as you're not > going to see more data points than pixels on your display anyway. > > Mike > > Tomáš Faragó wrote: > > Hello, > > I am writing a GUI using GTK+ library. I have a question about axes class > imshow method memory consumtion. If I pass the imshow an array, the resulting > memory consuption is approximatelly 46 times greater than the array size. If I > do not add the canvas to a window (in a code below), the memory consuption is > "only" 8 times greater. Any tips on how to reduce the memory consuption would > be > very appreciated and any explanation of how much memmory imshow allocates too. > Configuration and script are below. > > > > os: Windowx XP > > matplotlib version: 0.99.1 > > downloaded from: sourceforge.net > > > > script: > > from matplotlib.figure import Figure > > from matplotlib.backends.backend_gtkagg import FigureCanvasGTKAgg > > from pylab import rand > > import gtk > > > > window = gtk.Window() > > window.connect("destroy", gtk.main_quit) > > > > figure = Figure(figsize=(8,6), dpi=72) > > canvas = FigureCanvasGTKAgg(figure) > > axes = figure.add_subplot(111) > > > > window.add(canvas) > > > > axes.imshow(rand(1024,1024)) > > canvas.draw() > > window.show_all() > > > > gtk.main() > > > > verbose-helpful output: > > $HOME=C:\Documents and Settings\Sensej > > CONFIGDIR=C:\Documents and Settings\Sensej\.matplotlib > > matplotlib data path C:\Python26\lib\site-packages\matplotlib\mpl-data > > loaded rc file > > C:\Python26\lib\site-packages\matplotlib\mpl-data\matplotlibrc > > matplotlib version 0.99.1 > > verbose.level helpful > > interactive is False > > units is False > > platform is win32 > > Using fontManager instance from C:\Documents and > Settings\Sensej\.matplotlib\fontList.cache > > backend GTKAgg version 2.12.1 > > findfont: Matching > :family=sans-serif:style=normal:variant=normal:weight=normal:stretch=normal:size=medium > to Bitstream Vera Sans > (C:\Python26\lib\site-packages\matplotlib\mpl-data\fonts\ttf\Vera.ttf) with > score of 0.00 > > > > Thank you, > > Tomas. > > > > > -- > > > > ___ > > Matplotlib-users mailing list > > Matplotlib-users@lists.sourceforge.net > > https://lists.sourceforge.net/lists/listinfo/matplotlib-users > > > > -- > Michael Droettboom > Science Software Branch > Operations and Engineering Division > Space Telescope Science Institute > Operated by AURA for NASA > > > > -- ___ Matplotlib-users mailing list Matplotlib-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-users
[Matplotlib-users] imshow memory problem
Hello, I am writing a GUI using GTK+ library. I have a question about axes class imshow method memory consumtion. If I pass the imshow an array, the resulting memory consuption is approximatelly 46 times greater than the array size. If I do not add the canvas to a window (in a code below), the memory consuption is "only" 8 times greater. Any tips on how to reduce the memory consuption would be very appreciated and any explanation of how much memmory imshow allocates too. Configuration and script are below. os: Windowx XP matplotlib version: 0.99.1 downloaded from: sourceforge.net script: from matplotlib.figure import Figure from matplotlib.backends.backend_gtkagg import FigureCanvasGTKAgg from pylab import rand import gtk window = gtk.Window() window.connect("destroy", gtk.main_quit) figure = Figure(figsize=(8,6), dpi=72) canvas = FigureCanvasGTKAgg(figure) axes = figure.add_subplot(111) window.add(canvas) axes.imshow(rand(1024,1024)) canvas.draw() window.show_all() gtk.main() verbose-helpful output: $HOME=C:\Documents and Settings\Sensej CONFIGDIR=C:\Documents and Settings\Sensej\.matplotlib matplotlib data path C:\Python26\lib\site-packages\matplotlib\mpl-data loaded rc file C:\Python26\lib\site-packages\matplotlib\mpl-data\matplotlibrc matplotlib version 0.99.1 verbose.level helpful interactive is False units is False platform is win32 Using fontManager instance from C:\Documents and Settings\Sensej\.matplotlib\fontList.cache backend GTKAgg version 2.12.1 findfont: Matching :family=sans-serif:style=normal:variant=normal:weight=normal:stretch=normal:size=medium to Bitstream Vera Sans (C:\Python26\lib\site-packages\matplotlib\mpl-data\fonts\ttf\Vera.ttf) with score of 0.00 Thank you, Tomas. -- ___ Matplotlib-users mailing list Matplotlib-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-users
[Matplotlib-users] imshow memory consuption problem when using GTKAgg backend
Hello, I am writing a GUI using GTK+ library. I have a question about axes class imshow method memory consumption. If I pass the imshow an array, the resulting memory consuption is approximatelly 40 times greater than the array size. If I do not add the canvas to a window (in a code below), the memory consuption is as expected. Any tips on how to reduce the memory consuption would be very appreciated. Configuration and script are below. os: Windowx XP matplotlib version: 0.99.1 downloaded from: sourceforge.net script: from matplotlib.figure import Figure from matplotlib.backends.backend_gtkagg import FigureCanvasGTKAgg from pylab import rand import gtk window = gtk.Window() window.connect("destroy", gtk.main_quit) figure = Figure(figsize=(8,6), dpi=72) canvas = FigureCanvasGTKAgg(figure) axes = figure.add_subplot(111) window.add(canvas) axes.imshow(rand(1024,1024)) canvas.draw() window.show_all() gtk.main() verbose-helpful output: $HOME=C:\Documents and Settings\Sensej CONFIGDIR=C:\Documents and Settings\Sensej\.matplotlib matplotlib data path C:\Python26\lib\site-packages\matplotlib\mpl-data loaded rc file C:\Python26\lib\site-packages\matplotlib\mpl-data\matplotlibrc matplotlib version 0.99.1 verbose.level helpful interactive is False units is False platform is win32 Using fontManager instance from C:\Documents and Settings\Sensej\.matplotlib\fontList.cache backend GTKAgg version 2.12.1 findfont: Matching :family=sans-serif:style=normal:variant=normal:weight=normal:stretch=normal:size=medium to Bitstream Vera Sans (C:\Python26\lib\site-packages\matplotlib\mpl-data\fonts\ttf\Vera.ttf) with score of 0.00 Thank you, Tomas. -- ___ Matplotlib-users mailing list Matplotlib-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-users