edgafner / dorkag

Issue Tracker repository for all Dorkag plugins
Other
5 stars 0 forks source link

Rider suffers from low memory issue after enabling Azd #154

Closed 1nauman closed 5 days ago

1nauman commented 2 weeks ago
image

If I disable the plugin, it works fine!

Versions: Rider: 2024.2.7 Azd plugin: 2024.2.37

Jonatha1983 commented 2 weeks ago

Hi @1nauman

What version of the plugin? What version of Rider?

If you can please add some more details.

Thanks

1nauman commented 2 weeks ago

Updated the OP

Jonatha1983 commented 2 weeks ago

@1nauman, thanks, but if you want me to investigate, I really need more details to understand what is different in your environment compared to the other users.

What is your OS type? What is the memory configuration Rider is running with? Is it only happening with AZD? Before login? After login? Could you let me know if you enabled the auto-update feature in the settings? Is there anything special about Azure DevOps configuration? Is it a larger organization? Is it a significant PR with lots of changes? Did it work with a previous version of Rider? An earlier version of the plugin?

Please share whatever information can help provide a starting point for my investigation.

Can you see any related exceptions in the log?

vpume commented 1 week ago

I also experience this "low memory" warning quite often since I installed the AZD plugin. Maybe you need to load a large solution into Rider, consisting of C# and Typescript/Web projects, then view and work with a PR for a while with >200 changed files and 100 comments or more. I feel like the "combined diff" view which shows all 200 changed files and 100 comments at once particulary struggles with memory issues.

I changed the memory settings to use 6 GB Heap Size as a workaround (usually it is 2 GB AFAIK) - not a nice workaround, but it helps :-)

Jonatha1983 commented 1 week ago

Hi @vpume thanks for providing this detailed feedback!

I don’t use Rider myself and am not very familiar with .NET projects, but from my experience with Java projects, I know that there can be limits on file changes and comments that impact performance. Here are a few insights that might help:

  1. I appreciate the tip on the “combined diff” view—it may not be ideal for large PRs, but I’ll add a note suggesting users avoid it for now.
  2. I’ve noticed similar memory issues with large PRs in JetBrains’ GitHub and GitLab plugins as well. With AZD, this might be a bit more pronounced since Azure DevOps relies entirely on REST APIs, while GitHub and GitLab support GraphQL, which can be more efficient.
  3. A heap size of 6 GB is generally standard for handling substantial projects, while 2 GB might indeed be too low in this context.
  4. Just for background, when a PR is opened, the plugin iterates over PR iterations and commits, making multiple REST API calls for each, which can increase memory usage.
  5. I’ll try to reproduce this with a large PR on my end and see if there are optimizations I can make to improve performance.

Thanks again for your patience and insights—I’ll keep you updated if I find any improvements!

Jonatha1983 commented 1 week ago

Hi @1nauman and @vpume

I made some changes in the upcoming release, including some caching and some optimization, and I hope those will reflect better performance.

I would appreciate it if you could let me know once the version is publicly available if you see any improvement or if it is still consuming a lot of memory.

Thanks

1nauman commented 1 week ago

Hi @1nauman and @vpume

I made some changes in the upcoming release, including some caching and some optimization, and I hope those will reflect better performance.

I would appreciate it if you could let me know once the version is publicly available if you see any improvement or if it is still consuming a lot of memory.

Thanks

Sure, I upgraded to the latest Rider yesterday and today remember seeing the Azd update as well (2024.3.12). Will let you know if there are any improvements.

By the way, earlier was unable to furnish the asked details and here are the following:

OS: macOS Sequoia 15.1

Memory config for Rider: Increased the VMM to 16 GiB

Can you elaborate on the Azure DevOps configuration, what do you call a large organisation (In terms of users I guess it is 10-250)

In case of PR, I noticed anywhere above 10-15 files the plugin(or Rider) seems to keep consuming memory, until I hit the low memory warning and becomes so slow and ultimately becomes unusable.

Has it also got to do with the solution as well? Mine is around 51 projects (including test projects), without Azd, Rider manages well.

Azd kept freezing on earlier versions as well, I have noticed this issue for almost a year now. During trial of the plugin I faced this issue and couldn't use it for a long time, until I purchased it.

Additional observation: Without Azd plugin, I load the solution and do a rebuild. Activity monitor reports Rider memory as 2.39 GiB Same action with Azd plugin. Activity monitor reports Rider memory as 3.06 GiB

Jonatha1983 commented 1 week ago

Hi thanks AZD makes no assumptions about the project; it works the same for rider, web store, IntelliJ, etc.

Regarding user fetching, I am using the same coroutines mechanism that JetBrains does for GitHub and Gitlab, with pagination and token continuation.

I think that the size of number of cached PRs is configurable in the registry will send you the key so you can try to reduce it to see if it improves but the default is the same as for gitlab and GitHub plugins.

I will download Rider to see if there is anything special about it. Can you send me a public, large .Net project you know I can try to reproduce?

Thanks for the update

1nauman commented 1 week ago

Hi @Jonatha1983,

See: ABP repo and try loading framework/Volo.Abp.sln. This should have a large number of projects.

PS: Curious that this is a GitHub project, how you'll manage to load Azd for this!

Jonatha1983 commented 1 week ago

Thanks @1nauman

Thanks again will keep you updated

1nauman commented 5 days ago

Thanks @1nauman

  • I want to check how it works with JetBrains GitHub plugin first
  • I ll change the git remote and push it to Azure DevOps repo including all the branches

Thanks again will keep you updated

Hi @Jonatha1983,

Little update: With the below versions, I haven't faced this issue in the past 2 days. Will keep you posted, if I encounter it again (I hope not).

JetBrains Rider 2024.3 Build #RD-243.21565.191, built on November 13, 2024 Runtime version: 21.0.5+8-b631.16 aarch64 (JCEF 122.1.9) VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o. Toolkit: sun.lwawt.macosx.LWCToolkit macOS 15.1.1

AZD version: 2024.3.12

Jonatha1983 commented 5 days ago

Great!! Thanks for the update @1nauman

I will close this issue for now. If you suffer from a similar problem again, please let me know, and I will reopen it.

Also, if you have a one-minute spare, I would appreciate a nice review on the plugins' marketplace page🙏🏻 it helps me gain new users and keeps me working on this plugin. Thanks again.