Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Poorly performing hash used in the DBI/EE #11466

Open
hoyosjs opened this issue Nov 14, 2018 · 2 comments
Open

Poorly performing hash used in the DBI/EE #11466

hoyosjs opened this issue Nov 14, 2018 · 2 comments
Assignees
Labels
area-Diagnostics-coreclr enhancement Product code improvement that does NOT require public API changes/additions tenet-performance Performance related issue
Milestone

Comments

@hoyosjs
Copy link
Member

hoyosjs commented Nov 14, 2018

Update: Exception.ToString() also hits this code path and so we are leaving it in .NET 9 for futher investigation

There are a few places in the DBI that rely on CordbSafeHashTable/CHashTableAndData such as

  • CordbHashTableEnum
  • CordbProcess
  • CordbClass
  • CordbAppDomain
  • CordbModule
  • CordbFunction

The backing hash table, CHashTable, doesn't grow as items keep getting added. This results in a steep performance degradation as the collections grow larger. Common reports include difficulty loading dumps containing thousands of modules. A possible solution would be to replace CHashTable with an SHash.

@hoyosjs hoyosjs self-assigned this Nov 14, 2018
@msftgits msftgits transferred this issue from dotnet/coreclr Jan 31, 2020
@msftgits msftgits added this to the Future milestone Jan 31, 2020
@hoyosjs
Copy link
Member Author

hoyosjs commented Oct 14, 2020

Related to #11056

@jkotas
Copy link
Member

jkotas commented Aug 10, 2023

Internal Microsoft team reported that they see a contention around access to DebuggerMethodInfoTable hashtable in a process that throws a lot of exceptions:

image

DebuggerMethodInfoTable is implemented as CHashTableAndData.

@hoyosjs hoyosjs modified the milestones: Future, 9.0.0 Aug 10, 2023
@tommcdon tommcdon changed the title Poorly performing hash used in the DBI Poorly performing hash used in the DBI/EE Oct 23, 2023
@tommcdon tommcdon added the enhancement Product code improvement that does NOT require public API changes/additions label Oct 23, 2023
@tommcdon tommcdon modified the milestones: 9.0.0, 10.0.0 Jul 23, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area-Diagnostics-coreclr enhancement Product code improvement that does NOT require public API changes/additions tenet-performance Performance related issue
Projects
None yet
Development

No branches or pull requests

4 participants