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

Spoofax 3 in Eclipse slow in large project #79

Open
Virtlink opened this issue Oct 6, 2021 · 3 comments
Open

Spoofax 3 in Eclipse slow in large project #79

Virtlink opened this issue Oct 6, 2021 · 3 comments
Labels
C-Performance Category: performance. Something is slow

Comments

@Virtlink
Copy link
Contributor

Virtlink commented Oct 6, 2021

Summary

The WebDSL syntax is spread across about 30 files. Changing any of the files results in the notification:

The user is waiting for "SDF3 editor update" to complete

Which takes about 10 seconds to disappear. Subsequently, I can type a bit, but when I save or type in a different file, the notification appears again for a while.

What you did

I am editing the attached WebDSL project in Spoofax 3.

What you expected to happen

I expected the editor to not interfere with normal usage.

What actually happened

I have to wait a lot.

Context

  • Spoofax version: 0.13.0 (01-10-2021)
  • Operating system & version: macOS 11.5.2
  • Java version: embedded JRE
  • Eclipse version: pre-built 2021-09 with JRE from here
  • Gradle version: N/A

Additional information

Project in which this occurs:

📂 webdsl.zip

@Virtlink Virtlink added the C-Bug Category: bug. Not working as expected label Oct 6, 2021
@Virtlink
Copy link
Contributor Author

Virtlink commented Oct 6, 2021

Similarly, if you try to create a file of this language (e.g., test.app) either in the language workbench or in a separately started Eclipse editor, any edit takes forever.

@Gohla
Copy link
Member

Gohla commented Oct 7, 2021

SDF3 checking could be slow due to the naive way we use the constraint analyzer; we create a fresh context every time so there is no reuse. I'd need to extend PIE to be able to store state internal to tasks, so we can store the constraint analyzer context. That might improve performance. It could also just be that the SDF3 analysis with Statix is slow.

@Gohla Gohla added C-Performance Category: performance. Something is slow and removed C-Bug Category: bug. Not working as expected labels Oct 7, 2021
@Gohla
Copy link
Member

Gohla commented Oct 7, 2021

I don't think this caching will improve performance a lot due to a lot of cross-module name resolution being done unfortunately.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C-Performance Category: performance. Something is slow
Projects
None yet
Development

No branches or pull requests

2 participants