public inbox for gdb-patches@sourceware.org
 help / color / mirror / Atom feed
From: Simon Marchi <simark@simark.ca>
To: Christian Biesinger <cbiesinger@google.com>,
	Eli Zaretskii <eliz@gnu.org>
Cc: tom@tromey.com, gdb-patches@sourceware.org, luis.machado@arm.com
Subject: Re: Two observations using GDB 13 snapshot
Date: Tue, 3 Jan 2023 16:34:53 -0500	[thread overview]
Message-ID: <46d7fd4b-d5f0-0007-3e88-20345e0e0584@simark.ca> (raw)
In-Reply-To: <CAPTJ0XFrGDgJ6nFUmF+dg9uEy+Xt17g35Pnhwr2EcMHwD1q4Yw@mail.gmail.com>



On 1/3/23 15:34, Christian Biesinger via Gdb-patches wrote:
> On Tue, Jan 3, 2023 at 3:17 PM Eli Zaretskii <eliz@gnu.org> wrote:
>>
>>> From: Christian Biesinger <cbiesinger@google.com>
>>> Date: Tue, 3 Jan 2023 14:44:56 -0500
>>> Cc: Simon Marchi <simark@simark.ca>, tom@tromey.com, gdb-patches@sourceware.org,
>>>       luis.machado@arm.com
>>>
>>>>> https://stackoverflow.com/questions/36686381/windows-c-runtime-toupper-slow-when-locale-set
>>>>> https://bugs.php.net/bug.php?id=45265
>>>>
>>>> I couldn't see any numbers there about the performance of tolower
>>>> itself, i.e. how many ms per call does it take on Windows vs glibc.
>>>> But if someone can show a patch to try to eliminate the calls to
>>>> tolower, I can try and see if it affects the processing time in this
>>>> scenario.
>>>
>>> Seems like that could be tested by running gdb with LANG=C and/or
>>> commenting out the setlocale calls in gdb/main.c?
>>
>> Setting LANG in the environment doesn't have any effect on Windows,
>> since the Windows version of setlocale is insensitive to LANG and LC_*
>> environment variables.
> 
> Well you could still try commenting out the setlocale call.
> 
> In terms of the code, may be worth trying TOLOWER from
> include/safe-ctype.h instead of tolower()

The tolower call is inside strcasecmp, we don't call tolower directly:

#0  0x77c348d5 in msvcrt!__crtLCMapStringA ()
   from C:\WINDOWS\system32\msvcrt.dll
#1  0x77c348cd in msvcrt!__crtLCMapStringA ()
   from C:\WINDOWS\system32\msvcrt.dll
#2  0x77c30045 in wmktemp () from C:\WINDOWS\system32\msvcrt.dll
#3  0x77c1c992 in tolower () from C:\WINDOWS\system32\msvcrt.dll
#4  0x77c462a1 in stricmp () from C:\WINDOWS\system32\msvcrt.dll
#5  0x005107d3 in strcasecmp (__s2=<optimized out>, __s1=<optimized out>)
    at d:/usr/include/strings.h:92
#6  cooked_index_entry::operator< (this=<optimized out>, other=...)
    at ./dwarf2/cooked-index.h:150

It would be interesting to change that strcasecmp call to strcmp, just
to see if it makes an impact on the performance.  Whether or not that
would be correct is another thing, but it would help see if that
strcasecmp / tolower call is really at fault here.

Simon

  reply	other threads:[~2023-01-03 21:34 UTC|newest]

Thread overview: 63+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-12-17 17:42 Eli Zaretskii
2022-12-19 10:07 ` Luis Machado
2022-12-19 12:48   ` Eli Zaretskii
2022-12-19 14:08     ` Luis Machado
2022-12-19 14:45       ` Eli Zaretskii
2022-12-19 21:18         ` Tom Tromey
2022-12-20  3:26           ` Eli Zaretskii
2022-12-23  3:34             ` Simon Marchi
2022-12-23  8:05               ` Eli Zaretskii
2022-12-24 17:57             ` Tom Tromey
2022-12-24 18:13               ` Eli Zaretskii
2022-12-27 17:19                 ` Tom Tromey
2022-12-27 18:00                   ` Eli Zaretskii
2022-12-28 12:35                     ` Luis Machado
2022-12-28 16:35                     ` Tom Tromey
2022-12-28 17:35                       ` Eli Zaretskii
2022-12-28 22:47                         ` Tom Tromey
2022-12-29 15:18                           ` Eli Zaretskii
2022-12-29 18:17                             ` Tom Tromey
2022-12-29 18:36                               ` John Baldwin
2022-12-29 19:13                               ` Eli Zaretskii
2022-12-29 20:22                                 ` Simon Marchi
2022-12-30 14:31                                   ` Eli Zaretskii
2023-01-03 19:44                                     ` Christian Biesinger
2023-01-03 20:18                                       ` Eli Zaretskii
2023-01-03 20:34                                         ` Christian Biesinger
2023-01-03 21:34                                           ` Simon Marchi [this message]
2023-01-03 21:43                                             ` Christian Biesinger
2023-01-04  1:03                                             ` Tom Tromey
2023-01-04 18:10                                             ` Eli Zaretskii
2023-01-04 22:33                                               ` Tom Tromey
2023-01-05  7:11                                                 ` Eli Zaretskii
2023-01-05 14:49                                                   ` Christian Biesinger
2023-01-05 15:12                                                     ` Eli Zaretskii
2023-01-06 20:55                                                   ` Tom Tromey
2023-01-05 18:06                                               ` Torbjorn SVENSSON
2023-01-07  6:30 ` Eli Zaretskii
2023-01-07  9:14   ` Andreas Schwab
2023-01-07  9:32     ` Eli Zaretskii
2023-01-07 10:00       ` Andreas Schwab
2023-01-07 10:51         ` Eli Zaretskii
2023-01-07 13:04           ` Andreas Schwab
2023-01-07 13:54             ` Eli Zaretskii
2023-01-07 13:59               ` Andreas Schwab
2023-01-07 14:12                 ` Eli Zaretskii
2023-01-07 14:23                   ` Andreas Schwab
2023-01-07 14:29                     ` Eli Zaretskii
2023-01-07 14:40                       ` Andreas Schwab
2023-01-07 15:07                         ` Eli Zaretskii
2023-01-07 15:40                           ` Andreas Schwab
2023-01-07 16:10                             ` Eli Zaretskii
2023-01-07 16:15                               ` Eli Zaretskii
2023-01-07 16:16                               ` Hannes Domani
2023-01-07 16:22                                 ` Eli Zaretskii
2023-01-07 17:39                                 ` Andreas Schwab
2023-01-07 18:08                                   ` Eli Zaretskii
2023-01-07 18:26                                     ` Andreas Schwab
2023-01-07 18:38                                       ` Eli Zaretskii
2023-01-07 19:26                                         ` Andreas Schwab
2023-01-07 19:35                                           ` Eli Zaretskii
2023-01-07 18:28                                     ` Hannes Domani
2023-01-07 19:25                                       ` Andreas Schwab
2023-01-07 15:07                       ` Eli Zaretskii

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=46d7fd4b-d5f0-0007-3e88-20345e0e0584@simark.ca \
    --to=simark@simark.ca \
    --cc=cbiesinger@google.com \
    --cc=eliz@gnu.org \
    --cc=gdb-patches@sourceware.org \
    --cc=luis.machado@arm.com \
    --cc=tom@tromey.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).