Re: [glade-users] Glade 3.10.0 is running a bit slow
Tristan Van Berkom <[email protected]>
| Newsgroups | gmane.comp.gnome.glade.user |
|---|---|
| Message-ID | <CAGUy9WKJ9UQkuHc07Z_yO-_p1ZFW2AUvpRs1VNGkQLzg0zNAhA@mail.gmail.com> |
Ok, made the same mistake myself, somehow the last mail missed the list... Here it the response: On Thu, Dec 22, 2011 at 2:36 AM, Tristan Van Berkom <[email protected]> wrote: > On Thu, Dec 22, 2011 at 1:39 AM, Micah Carrick <[email protected]> wrote: >> I should actually point out that turning off the default GNOME 3 doesn't >> "fix" the issue, it just makes the lag less significant. Sounds like what >> you experienced Tristan--about half a second. > > Yes, that needs to be looked into as well. > > Glade does make a slight abstraction for sending events to > widget adaptors instead of sending them directly to widgets, > I don't believe that can be related (actually, this operation occurs > even for every pointer motion event and does not seem to > incur any lag). > > The rest of the slowness involved might very well be related > to GTK+ geometry management, i.e. time spent in the > _gtk_container_idle_sizer(). > > As for the labels in the editor, their sizes should be cached > as of the first time the editor is shown, and half of the request > cycle can be triggered again if ever the width of the editor is > adjusted (should not be related). > > It's possible that for some reason, either in GTK+ or possibly > Glade could work around this better... that possibly the size > request cache could be getting 'trampled' so to speak and > needlessly re-requested for the sake of a gtk_widget_show(). > > The process of updating the current widget class editor is > really just a matter of: > a.) unsetting the currently selected widget in the editor > b.) hiding the current class editor (which is packed in a vbox > inside the notebook page) > c.) showing the new class editor (since it is cached, it's already > a child of the same vbox). > d.) running through the property editors on that page and updating > their current values. > > So, for the most part, around 75% of the time spent on this operation > can be attributed to the css class lookup proceedure... which probably > needs work in terms of caching previous results... these lookups should not > be done by GTK+ unless one of the deciding factors (widget name, > widget class, style change) actually change. > > Perhaps that code caches things properly but maybe erronously clears > the cache for the sake of a gtk_widget_hide() or gtk_widget_show()... > > Cheers, > -Tristan > > >> >> Also, I posted my last message with the wrong email, not sure if it went >> through. It's shown below: >> >> >> On Wed, Dec 21, 2011 at 8:23 AM, Micah Carrick <[email protected]> >> wrote: >>> >>> Ding ding ding ding! >>> >>> I'm using GNOME 3 on Fedora 16 with the GNOME 3 default theme >>> Adwaita. When I switch the GTK+ theme to Raleigh using Gnome Tweak Tool the >>> problem is goes away. I'm not up to speed on how themes work in gtk+ 3 but I >>> believe Raleigh does not use a theme engine. >>> >>> On Wed, Dec 21, 2011 at 6:17 AM, Tristan Van Berkom >>> <[email protected]> wrote: >>>> >>>> Thanks ! >>>> >>>> I loaded up the file you sent and it appears that most of the time can >>>> be tracked >>>> down to: >>>> a.) Glade handling events, which results in showing a hidden editor >>>> page in the >>>> GladeEditor widget... >>>> b.) When looking at the callees of glade_widget_event() one notes that >>>> most of the time spent in there is spent in >>>> gtk_css_provider_get_style() >>>> >>>> Possibly the problem is around resolving things that should probably >>>> already >>>> have been cached the first time around (i.e., how come we spend time >>>> searching >>>> and matching css styles for the widgets in the editor if they've been >>>> created >>>> at least once ?) >>>> >>>> One thing I have never tried personally, is a GTK+ 3 installation in /usr >>>> and >>>> a theme installed, is this why I am not getting such bad performance >>>> issues ? >>>> >>>> >>>> Is your test case built into /usr ? maybe that doesnt matter... do you >>>> get >>>> the ugly default native GTK+ theme or are you picking up some kind of >>>> elaborate and beautiful theme while running Glade ? >>>> >>>> If so, can you try running Glade in a naked environment, with no fancy >>>> css applied and report back if the problem persists ? (or if it's less >>>> bad ?) >>>> >>>> >>>> Thanks alot for your help, I'm trying a GTK+ master build now to see >>>> if this is a possible regression... I havent been paying attention to >>>> GTK+ releases lately... maybe everyone is running something more >>>> recent than 3.3.3. >>>> >>>> Cheers, >>>> -Tristan >>>> >>>> >>>> On Wed, Dec 21, 2011 at 9:06 AM, Micah Carrick <[email protected]> >>>> wrote: >>>> > Hey, I'm going to attach my callgrind output in case one of y'all know >>>> > what >>>> > you are doing better than I do. I started glade with` >>>> > --instr-atstart=no`, >>>> > added a button and a label to the window, and then turned it on with >>>> > `callgrind_control -i on`. I then selected a different widget and >>>> > turned it >>>> > off with `callgrind_control -i off`. >>>> > >>>> > I don't really know what I'm looking for the KCacheGrind just yet and I >>>> > don't have any more time to dig around today, but all these graphs ans >>>> > such >>>> > look pretty awesome. >>>> > >>>> > >>>> > On Tue, Dec 20, 2011 at 2:44 PM, Micah Carrick <[email protected]> >>>> > wrote: >>>> >> >>>> >> I've got 4GB RAM and a dual core AMD64... plenty fast. I have a lag of >>>> >> 1.5 >>>> >> - 2 seconds based on the very accurate and scientific "one >>>> >> mississippi, two >>>> >> mississippi..." approach. ;) >>>> >> >>>> >> I'll see if I can tinker with valgrind sometime in the next week or so >>>> >> if >>>> >> I have time. >>>> >> >>>> >> On Tue, Dec 20, 2011 at 1:53 PM, Tristan Van Berkom >>>> >> <[email protected]> wrote: >>>> >>> >>>> >>> On Wed, Dec 21, 2011 at 4:10 AM, Matej Nanut <[email protected]> >>>> >>> wrote: >>>> >>> > I've asked the same question here about a month (?) ago, and there >>>> >>> > was >>>> >>> > no >>>> >>> > definite answer, >>>> >>> >>>> >>> I just tried building a few versions here, and I have pretty much the >>>> >>> same lag >>>> >>> from GTK+ 3.0.9 to GTK+ 3.3.3, I havent tried any versions before >>>> >>> 3.0.9 >>>> >>> or >>>> >>> after 3.3.3. >>>> >>> >>>> >>> I have a very old laptop here (about 5yrs old and chugging along, >>>> >>> every >>>> >>> second time I power her up she decides to find the operating >>>> >>> system... >>>> >>> and >>>> >>> grub happily shows up). >>>> >>> >>>> >>> Running 64bit linux here, with this processor: >>>> >>> AMD Turion(tm) 64 X2 Mobile Technology TL-58 >>>> >>> >>>> >>> Its dual core, each of them dishing out about 800Mhz. >>>> >>> >>>> >>> Admittedly selecting a new widget is annoyingly slow, >>>> >>> probably around half a second or a bit more, just enough >>>> >>> to make you feel annoyed, definitely nowhere close to >>>> >>> a 2 second lag. >>>> >>> >>>> >>> Currently I'm really busy with other things and can't be >>>> >>> bothered... so I'm looking to you guys to profile it and find >>>> >>> out where is the bottle neck, where are we spending the >>>> >>> majority of this time ? >>>> >>> >>>> >>> In size requests ? is it a silly Glade bug ? >>>> >>> >>>> >>> I recommend valgrind with the cachegrind tool, output >>>> >>> is quite pretty when viewed with kcachegrind. >>>> >>> >>>> >>> And it doesnt require hacking your kernel like other modern >>>> >>> profilers do... >>>> >>> >>>> >>> Cheers, >>>> >>> -Tristan >>>> >>> >>>> >>> > apart from it probably being GTK's and not Glade's fault. >>>> >>> > I just opted to actually coding my interfaces until this gets >>>> >>> > corrected. >>>> >>> > >>>> >>> > Sorry I couldn't be of much help, >>>> >>> > Matej >>>> >>> > >>>> >>> > On 20 December 2011 20:03, Micah Carrick <[email protected]> >>>> >>> > wrote: >>>> >>> >> >>>> >>> >> I've seen a few other people mentioning this, but, I can't find >>>> >>> >> any >>>> >>> >> bugs >>>> >>> >> or information. What I'm seeing is that when you select from one >>>> >>> >> widget to >>>> >>> >> another (either in the editor or the inspector) the UI blocks for >>>> >>> >> about 2 >>>> >>> >> full seconds. This only happens when selecting a widget of a >>>> >>> >> different >>>> >>> >> type >>>> >>> >> than the one currently selected (eg. selecting a GtkButton and >>>> >>> >> then >>>> >>> >> another >>>> >>> >> GtkButton is fast, but then selecting a GtkEntry is slow). >>>> >>> >> >>>> >>> >> Any insights? >>>> >>> >> >>>> >>> >> >>>> >>> >> >>>> >>> >> _______________________________________________ >>>> >>> >> Glade-users maillist - [email protected] >>>> >>> >> http://lists.ximian.com/mailman/listinfo/glade-users >>>> >>> >> >>>> >>> > >>>> >>> > >>>> >>> > _______________________________________________ >>>> >>> > Glade-users maillist - [email protected] >>>> >>> > http://lists.ximian.com/mailman/listinfo/glade-users >>>> >>> > >>>> >>> >>>> >>> >>>> > >>> >>> >>> >>> >>> -- >>> Green Tackle - Environmentally Friendly Fishing Tackle >>> www.GreenTackle.com >>> >>> Email: [email protected] >>> Phone: 971.270.2206 >>> Toll Free: 877.580.9165 >>> Fax: 503.946.3106 >>> >>> >> _______________________________________________ Glade-users maillist - [email protected] http://lists.ximian.com/mailman/listinfo/glade-users