[Banshee-List] Memory usage/leak in ListView.PaintHeaderCell?
- From: "Gabriel Burt" <gabriel burt gmail com>
- To: banshee-list gnome org
- Subject: [Banshee-List] Memory usage/leak in ListView.PaintHeaderCell?
- Date: Sat, 29 Mar 2008 21:56:48 -0500
Hey all,
I was trying to track down the Last.fm memory leak
[http://bugzilla.gnome.org/show_bug.cgi?id=523646] using heap-buddy
[http://www.mono-project.com/HeapBuddy].
Ran this:
$ cd bin
$ mono --profile=heap-buddy:outfile Nereid.exe
$ heap-buddy outfile backtraces > banshee_memory.txt
While it was running, I switched to a last.fm station and just let it
sit there for 20+ minutes. Overall memory usage grew a lot.
I've attached banshee_memory.txt. Looks like there is something about
Last.fm that's triggering a heck of a lot of ListView memory usage.
Here are the top two:
Backtrace #
Total AvSz AvAge
type=Hyena.Data.Gui.CellContext 167090 10.2M 64.0 0.0
Hyena.Data.Gui.ListView`1:PaintHeaderCell
type=double[] 167090 6.4M
40.0 0.0
Hyena.Gui.CairoExtensions:ColorFromHsb
Hyena.Gui.CairoExtensions:ColorShade
Hyena.Gui.Theming.GtkTheme:DrawHeaderSeparator
Hyena.Data.Gui.ListView`1:PaintHeaderCell
Scott, Aaron - ideas? Why is PaintHeaderCell being called so often,
and why does it use so much memory?
Regards,
Gabriel
Backtrace # Total AvSz AvAge
type=Hyena.Data.Gui.CellContext 167090 10.2M 64.0 0.0
Hyena.Data.Gui.ListView`1:PaintHeaderCell
Hyena.Data.Gui.ListView`1:PaintHeader
Hyena.Data.Gui.ListView`1:OnExposeEvent
Gtk.Widget:exposeevent_cb
Gtk.Application:Run
Banshee.Gui.GtkBaseClient:Run
Banshee.Gui.GtkBaseClient:Startup
Hyena.Gui.CleanRoomStartup:Startup
Banshee.Gui.GtkBaseClient:Entry
Nereid.Client:Main
type=double[] 167090 6.4M 40.0 0.0
Hyena.Gui.CairoExtensions:ColorFromHsb
Hyena.Gui.CairoExtensions:ColorShade
Hyena.Gui.Theming.GtkTheme:DrawHeaderSeparator
Hyena.Data.Gui.ListView`1:PaintHeaderCell
Hyena.Data.Gui.ListView`1:PaintHeader
Hyena.Data.Gui.ListView`1:OnExposeEvent
Gtk.Widget:exposeevent_cb
Gtk.Application:Run
Banshee.Gui.GtkBaseClient:Run
Banshee.Gui.GtkBaseClient:Startup
Hyena.Gui.CleanRoomStartup:Startup
Banshee.Gui.GtkBaseClient:Entry
Nereid.Client:Main
type=double[] 167090 6.4M 40.0 0.0
Hyena.Gui.CairoExtensions:ColorFromHsb
Hyena.Gui.CairoExtensions:ColorShade
Hyena.Gui.Theming.GtkTheme:DrawHeaderSeparator
Hyena.Data.Gui.ListView`1:PaintHeaderCell
Hyena.Data.Gui.ListView`1:PaintHeader
Hyena.Data.Gui.ListView`1:OnExposeEvent
Gtk.Widget:exposeevent_cb
Gtk.Application:Run
Banshee.Gui.GtkBaseClient:Run
Banshee.Gui.GtkBaseClient:Startup
Hyena.Gui.CleanRoomStartup:Startup
Banshee.Gui.GtkBaseClient:Entry
Nereid.Client:Main
type=double[] 167090 6.4M 40.0 0.0
Hyena.Gui.CairoExtensions:ColorFromHsb
Hyena.Gui.CairoExtensions:ColorShade
Hyena.Gui.Theming.GtkTheme:DrawHeaderSeparator
Hyena.Data.Gui.ListView`1:PaintHeaderCell
Hyena.Data.Gui.ListView`1:PaintHeader
Hyena.Data.Gui.ListView`1:OnExposeEvent
Gtk.Widget:exposeevent_cb
Gtk.Application:Run
Banshee.Gui.GtkBaseClient:Run
Banshee.Gui.GtkBaseClient:Startup
Hyena.Gui.CleanRoomStartup:Startup
Banshee.Gui.GtkBaseClient:Entry
Nereid.Client:Main
type=double[] 167090 6.4M 40.0 0.0
Hyena.Gui.CairoExtensions:ColorFromHsb
Hyena.Gui.CairoExtensions:ColorShade
Hyena.Gui.Theming.GtkTheme:DrawHeaderSeparator
Hyena.Data.Gui.ListView`1:PaintHeaderCell
Hyena.Data.Gui.ListView`1:PaintHeader
Hyena.Data.Gui.ListView`1:OnExposeEvent
Gtk.Widget:exposeevent_cb
Gtk.Application:Run
Banshee.Gui.GtkBaseClient:Run
Banshee.Gui.GtkBaseClient:Startup
Hyena.Gui.CleanRoomStartup:Startup
Banshee.Gui.GtkBaseClient:Entry
Nereid.Client:Main
type=Gtk.Callback 100679 5.0M 52.0 0.0
Gtk.Container:Forall_cb
Gtk.Application:Run
Banshee.Gui.GtkBaseClient:Run
Banshee.Gui.GtkBaseClient:Startup
Hyena.Gui.CleanRoomStartup:Startup
Banshee.Gui.GtkBaseClient:Entry
Nereid.Client:Main
type=Hyena.Gui.AnimatedBox...__CompilerGenerated18 100679 3.1M 32.0 0.0
<>c__CompilerGenerated7:MoveNext
Hyena.Gui.AnimatedBox:ForAll
Gtk.Container:Forall_cb
Gtk.Application:Run
Banshee.Gui.GtkBaseClient:Run
Banshee.Gui.GtkBaseClient:Startup
Hyena.Gui.CleanRoomStartup:Startup
Banshee.Gui.GtkBaseClient:Entry
Nereid.Client:Main
type=System.Reflection.ConstructorInfo[] 133672 3.1M 24.0 0.0
System.MonoType:GetConstructors
System.Activator:CreateInstance
System.Activator:CreateInstance
System.Activator:CreateInstance
GLib.Opaque:GetOpaque
Pango.Layout:get_FontDescription
Hyena.Data.Gui.ColumnCellText:Render
Hyena.Data.Gui.ColumnHeaderCellText:Render
Hyena.Data.Gui.ListView`1:PaintHeaderCell
Hyena.Data.Gui.ListView`1:PaintHeader
Hyena.Data.Gui.ListView`1:OnExposeEvent
Gtk.Widget:exposeevent_cb
Gtk.Application:Run
Banshee.Gui.GtkBaseClient:Run
Banshee.Gui.GtkBaseClient:Startup
Hyena.Gui.CleanRoomStartup:Startup
Banshee.Gui.GtkBaseClient:Entry
Nereid.Client:Main
type=System.Reflection.ConstructorInfo[] 133672 3.1M 24.0 0.0
System.MonoType:GetConstructors
System.Activator:CreateInstance
System.Activator:CreateInstance
System.Activator:CreateInstance
GLib.Opaque:GetOpaque
Pango.Context:get_FontDescription
Hyena.Data.Gui.ColumnCellText:Render
Hyena.Data.Gui.ColumnHeaderCellText:Render
Hyena.Data.Gui.ListView`1:PaintHeaderCell
Hyena.Data.Gui.ListView`1:PaintHeader
Hyena.Data.Gui.ListView`1:OnExposeEvent
Gtk.Widget:exposeevent_cb
Gtk.Application:Run
Banshee.Gui.GtkBaseClient:Run
Banshee.Gui.GtkBaseClient:Startup
Hyena.Gui.CleanRoomStartup:Startup
Banshee.Gui.GtkBaseClient:Entry
Nereid.Client:Main
type=Gdk.Rectangle 133672 3.1M 24.0 0.0
Gdk.Rectangle:New
Gtk.Style:PaintLayout
Hyena.Data.Gui.ColumnCellText:Render
Hyena.Data.Gui.ColumnHeaderCellText:Render
Hyena.Data.Gui.ListView`1:PaintHeaderCell
Hyena.Data.Gui.ListView`1:PaintHeader
Hyena.Data.Gui.ListView`1:OnExposeEvent
Gtk.Widget:exposeevent_cb
Gtk.Application:Run
Banshee.Gui.GtkBaseClient:Run
Banshee.Gui.GtkBaseClient:Startup
Hyena.Gui.CleanRoomStartup:Startup
Banshee.Gui.GtkBaseClient:Entry
Nereid.Client:Main
type=System.Reflection.ConstructorInfo[] 133672 3.1M 24.0 0.0
System.MonoType:GetConstructors
System.Activator:CreateInstance
System.Activator:CreateInstance
System.Activator:CreateInstance
GLib.Opaque:GetOpaque
Pango.FontDescription:Copy
Hyena.Data.Gui.ColumnCellText:Render
Hyena.Data.Gui.ColumnHeaderCellText:Render
Hyena.Data.Gui.ListView`1:PaintHeaderCell
Hyena.Data.Gui.ListView`1:PaintHeader
Hyena.Data.Gui.ListView`1:OnExposeEvent
Gtk.Widget:exposeevent_cb
Gtk.Application:Run
Banshee.Gui.GtkBaseClient:Run
Banshee.Gui.GtkBaseClient:Startup
Hyena.Gui.CleanRoomStartup:Startup
Banshee.Gui.GtkBaseClient:Entry
Nereid.Client:Main
type=Gdk.Rectangle 133672 3.1M 24.0 0.0
Gtk.Style:PaintLayout
Hyena.Data.Gui.ColumnCellText:Render
Hyena.Data.Gui.ColumnHeaderCellText:Render
Hyena.Data.Gui.ListView`1:PaintHeaderCell
Hyena.Data.Gui.ListView`1:PaintHeader
Hyena.Data.Gui.ListView`1:OnExposeEvent
Gtk.Widget:exposeevent_cb
Gtk.Application:Run
Banshee.Gui.GtkBaseClient:Run
Banshee.Gui.GtkBaseClient:Startup
Hyena.Gui.CleanRoomStartup:Startup
Banshee.Gui.GtkBaseClient:Entry
Nereid.Client:Main
type=byte[] 133672 2.8M 21.8 0.0
System.Text.Encoding:GetBytes
GLib.Marshaller:StringToPtrGStrdup
Pango.Layout:SetText
Hyena.Data.Gui.ColumnCellText:Render
Hyena.Data.Gui.ColumnHeaderCellText:Render
Hyena.Data.Gui.ListView`1:PaintHeaderCell
Hyena.Data.Gui.ListView`1:PaintHeader
Hyena.Data.Gui.ListView`1:OnExposeEvent
Gtk.Widget:exposeevent_cb
Gtk.Application:Run
Banshee.Gui.GtkBaseClient:Run
Banshee.Gui.GtkBaseClient:Startup
Hyena.Gui.CleanRoomStartup:Startup
Banshee.Gui.GtkBaseClient:Entry
Nereid.Client:Main
type=Hyena.Gui.AnimatedBox/<>c__CompilerGenerated7 100679 2.7M 28.0 0.0
Hyena.Gui.AnimatedBox:get_Widgets
Hyena.Gui.AnimatedBox:ForAll
Gtk.Container:Forall_cb
Gtk.Application:Run
Banshee.Gui.GtkBaseClient:Run
Banshee.Gui.GtkBaseClient:Startup
Hyena.Gui.CleanRoomStartup:Startup
Banshee.Gui.GtkBaseClient:Entry
Nereid.Client:Main
type=System.Reflection.ConstructorInfo[] 100254 2.7M 28.0 0.0
System.MonoType:GetConstructors
System.Activator:CreateInstance
System.Activator:CreateInstance
GLib.ObjectManager:CreateObject
GLib.Object:GetObject
GLib.Object:GetObject
Hyena.Gui.PangoCairoHelper:CreateLayout
Hyena.Data.Gui.ListView`1:PaintHeader
Hyena.Data.Gui.ListView`1:OnExposeEvent
Gtk.Widget:exposeevent_cb
Gtk.Application:Run
Banshee.Gui.GtkBaseClient:Run
Banshee.Gui.GtkBaseClient:Startup
Hyena.Gui.CleanRoomStartup:Startup
Banshee.Gui.GtkBaseClient:Entry
Nereid.Client:Main
type=byte[] 133672 2.5M 20.0 0.0
System.Text.Encoding:GetBytes
GLib.Marshaller:StringToPtrGStrdup
Gtk.Style:PaintLayout
Hyena.Data.Gui.ColumnCellText:Render
Hyena.Data.Gui.ColumnHeaderCellText:Render
Hyena.Data.Gui.ListView`1:PaintHeaderCell
Hyena.Data.Gui.ListView`1:PaintHeader
Hyena.Data.Gui.ListView`1:OnExposeEvent
Gtk.Widget:exposeevent_cb
Gtk.Application:Run
Banshee.Gui.GtkBaseClient:Run
Banshee.Gui.GtkBaseClient:Startup
Hyena.Gui.CleanRoomStartup:Startup
Banshee.Gui.GtkBaseClient:Entry
Nereid.Client:Main
type=System.Type[] 133672 2.5M 20.0 0.0
System.Activator:CreateInstance
System.Activator:CreateInstance
System.Activator:CreateInstance
GLib.Opaque:GetOpaque
Pango.Layout:get_FontDescription
Hyena.Data.Gui.ColumnCellText:Render
Hyena.Data.Gui.ColumnHeaderCellText:Render
Hyena.Data.Gui.ListView`1:PaintHeaderCell
Hyena.Data.Gui.ListView`1:PaintHeader
Hyena.Data.Gui.ListView`1:OnExposeEvent
Gtk.Widget:exposeevent_cb
Gtk.Application:Run
Banshee.Gui.GtkBaseClient:Run
Banshee.Gui.GtkBaseClient:Startup
Hyena.Gui.CleanRoomStartup:Startup
Banshee.Gui.GtkBaseClient:Entry
Nereid.Client:Main
type=object[] 133672 2.5M 20.0 0.0
GLib.Opaque:GetOpaque
Pango.Layout:get_FontDescription
Hyena.Data.Gui.ColumnCellText:Render
Hyena.Data.Gui.ColumnHeaderCellText:Render
Hyena.Data.Gui.ListView`1:PaintHeaderCell
Hyena.Data.Gui.ListView`1:PaintHeader
Hyena.Data.Gui.ListView`1:OnExposeEvent
Gtk.Widget:exposeevent_cb
Gtk.Application:Run
Banshee.Gui.GtkBaseClient:Run
Banshee.Gui.GtkBaseClient:Startup
Hyena.Gui.CleanRoomStartup:Startup
Banshee.Gui.GtkBaseClient:Entry
Nereid.Client:Main
type=object[] 133672 2.5M 20.0 0.0
GLib.Opaque:GetOpaque
Pango.FontDescription:Copy
Hyena.Data.Gui.ColumnCellText:Render
Hyena.Data.Gui.ColumnHeaderCellText:Render
Hyena.Data.Gui.ListView`1:PaintHeaderCell
Hyena.Data.Gui.ListView`1:PaintHeader
Hyena.Data.Gui.ListView`1:OnExposeEvent
Gtk.Widget:exposeevent_cb
Gtk.Application:Run
Banshee.Gui.GtkBaseClient:Run
Banshee.Gui.GtkBaseClient:Startup
Hyena.Gui.CleanRoomStartup:Startup
Banshee.Gui.GtkBaseClient:Entry
Nereid.Client:Main
type=System.Type[] 133672 2.5M 20.0 0.0
System.Activator:CreateInstance
System.Activator:CreateInstance
System.Activator:CreateInstance
GLib.Opaque:GetOpaque
Pango.Context:get_FontDescription
Hyena.Data.Gui.ColumnCellText:Render
Hyena.Data.Gui.ColumnHeaderCellText:Render
Hyena.Data.Gui.ListView`1:PaintHeaderCell
Hyena.Data.Gui.ListView`1:PaintHeader
Hyena.Data.Gui.ListView`1:OnExposeEvent
Gtk.Widget:exposeevent_cb
Gtk.Application:Run
Banshee.Gui.GtkBaseClient:Run
Banshee.Gui.GtkBaseClient:Startup
Hyena.Gui.CleanRoomStartup:Startup
Banshee.Gui.GtkBaseClient:Entry
Nereid.Client:Main
type=object[] 133672 2.5M 20.0 0.0
GLib.Opaque:GetOpaque
Pango.Context:get_FontDescription
Hyena.Data.Gui.ColumnCellText:Render
Hyena.Data.Gui.ColumnHeaderCellText:Render
Hyena.Data.Gui.ListView`1:PaintHeaderCell
Hyena.Data.Gui.ListView`1:PaintHeader
Hyena.Data.Gui.ListView`1:OnExposeEvent
Gtk.Widget:exposeevent_cb
Gtk.Application:Run
Banshee.Gui.GtkBaseClient:Run
Banshee.Gui.GtkBaseClient:Startup
Hyena.Gui.CleanRoomStartup:Startup
Banshee.Gui.GtkBaseClient:Entry
Nereid.Client:Main
type=System.Type[] 133672 2.5M 20.0 0.0
System.Activator:CreateInstance
System.Activator:CreateInstance
System.Activator:CreateInstance
GLib.Opaque:GetOpaque
Pango.FontDescription:Copy
Hyena.Data.Gui.ColumnCellText:Render
Hyena.Data.Gui.ColumnHeaderCellText:Render
Hyena.Data.Gui.ListView`1:PaintHeaderCell
Hyena.Data.Gui.ListView`1:PaintHeader
Hyena.Data.Gui.ListView`1:OnExposeEvent
Gtk.Widget:exposeevent_cb
Gtk.Application:Run
Banshee.Gui.GtkBaseClient:Run
Banshee.Gui.GtkBaseClient:Startup
Hyena.Gui.CleanRoomStartup:Startup
Banshee.Gui.GtkBaseClient:Entry
Nereid.Client:Main
type=string 33552 2.4M 74.0 0.0
System.Text.StringBuilder:InternalEnsureCapacity
System.Text.StringBuilder:Append
System.String:FormatHelper
System.String:Format
System.String:Format
Banshee.GnomeBackend.GC...urationClient:CreateKey
Banshee.GnomeBackend.GConfConfigurationClient:Set
Banshee.GnomeBackend.GConfConfigurationClient:Set
Banshee.Configuration.ConfigurationClient:Set
Banshee.Configuration.SchemaEntry`1:Set
<>c__CompilerGenerated1:<ConnectEvents>c__5
Gtk.Widget:SizeRequestedSignalCallback
Gtk.Application:Run
Banshee.Gui.GtkBaseClient:Run
Banshee.Gui.GtkBaseClient:Startup
Hyena.Gui.CleanRoomStartup:Startup
Banshee.Gui.GtkBaseClient:Entry
Nereid.Client:Main
type=object[] 133672 2.0M 16.0 0.0
System.Activator:CreateInstance
GLib.Opaque:GetOpaque
Pango.Context:get_FontDescription
Hyena.Data.Gui.ColumnCellText:Render
Hyena.Data.Gui.ColumnHeaderCellText:Render
Hyena.Data.Gui.ListView`1:PaintHeaderCell
Hyena.Data.Gui.ListView`1:PaintHeader
Hyena.Data.Gui.ListView`1:OnExposeEvent
Gtk.Widget:exposeevent_cb
Gtk.Application:Run
Banshee.Gui.GtkBaseClient:Run
Banshee.Gui.GtkBaseClient:Startup
Hyena.Gui.CleanRoomStartup:Startup
Banshee.Gui.GtkBaseClient:Entry
Nereid.Client:Main
type=Pango.FontDescription 133672 2.0M 16.0 0.0
System.Reflection.MonoCMethod:Invoke
System.Reflection.MonoCMethod:Invoke
System.Activator:CreateInstance
System.Activator:CreateInstance
System.Activator:CreateInstance
GLib.Opaque:GetOpaque
Pango.Context:get_FontDescription
Hyena.Data.Gui.ColumnCellText:Render
Hyena.Data.Gui.ColumnHeaderCellText:Render
Hyena.Data.Gui.ListView`1:PaintHeaderCell
Hyena.Data.Gui.ListView`1:PaintHeader
Hyena.Data.Gui.ListView`1:OnExposeEvent
Gtk.Widget:exposeevent_cb
Gtk.Application:Run
Banshee.Gui.GtkBaseClient:Run
Banshee.Gui.GtkBaseClient:Startup
Hyena.Gui.CleanRoomStartup:Startup
Banshee.Gui.GtkBaseClient:Entry
Nereid.Client:Main
(skipped 71563 backtraces)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]