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
next prev parent 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).