FC2: gnome-terminal takes much longer to startup than Mozilla

Matthias Clasen mclasen at redhat.com
Thu May 27 13:57:37 UTC 2004


On Thu, 2004-05-27 at 09:52, Soeren Sandmann Pedersen wrote:
> On Tue, 2004-05-25 at 23:31, Will Cohen wrote:
> 
> > After running the little script and installing the debuginfo rpms I was 
> > able to get some profiles. It looks like this particular machine has a 
> > reasonable video card (NVIDIA Quadro 4). Most of the are not for drawing 
> > stuff on the screen.
> > 
> > One drawback is rpm with /usr/X11R6/bin/Xorg does not have an associated 
> > debuginfo rpm. I assume this is where the redendering happens and where 
> > people see the performance hit in gnome-terminal.
> > 
> > The first opreport shows the overall view of which applications had 
> > samples and the shared libraries associated with them. The second 
> > opreport lists the function-by-function breakdown.  Why so much 25% of 
> > the time in memchr and real_tolower?
> > 
> 
> The memchr() hit comes from this function:
> 
> static char *
> _vte_iso2022_find_nextctl(const char *p, size_t length)
> {
>         char *ret;
>         if (length == 0) {
>                 return NULL;
>         }
>         ret = memchr(p, '\033', length);
>         ret = _vte_iso2022_better(ret, memchr(p, '\n', length));
>         ret = _vte_iso2022_better(ret, memchr(p, '\r', length));
>         ret = _vte_iso2022_better(ret, memchr(p, '\016', length));
>         ret = _vte_iso2022_better(ret, memchr(p, '\017', length));
> #ifdef VTE_ISO2022_8_BIT_CONTROLS
>         /* This breaks UTF-8 and other encodings which use the high
> bits. */
>         ret = _vte_iso2022_better(ret, memchr(p, 0x8e, length));
>         ret = _vte_iso2022_better(ret, memchr(p, 0x8f, length));
> #endif
>         return ret;
> }
> 
> 
> Since the _vte_iso2022_better() function basically returns the minimum
> of the two pointers a speedup is possible by 
> 	
> 	- doing only one pass over the string instead of seven
> 	- stopping as soon as a control character is found.
> 
> The attached patch makes the elapsed time drop from 14.1 seconds to 12.4
> seconds on cat jarg22.txt.
> 

Wouldn't it be much easier to use strpbrk ? 





More information about the Fedora-desktop-list mailing list