LINQPad 9 feels just slower
I've always been a loyal LINQPad user, having supported it all the way from version 5, 6, 7, through 8. When LINQPad 9 preview edition was released, I didn't hesitate even for a second to purchase and install it. However, after trying it for some time, I have to admit my first impression honestly is: LINQPad 9 feels significantly slower.
Compared to LINQPad 8, version 9’s program startup speed and UI responsiveness both appear much slower. To me personally, the primary reason for using LINQPad has always been its speed and lightweight nature. When I need to quickly verify a snippet of code, LINQPad is preferable over heavyweight tools like Visual Studio or VS Code precisely due to its short startup time and compactness.
But now, LINQPad 9 seems to have lost some of this lightweight feeling. If it takes noticeably longer to start up and becomes more sluggish in UI responsiveness, it greatly impacts the frequency and comfort with which I'd use it—which frankly disappoints me. Particularly noticeable issues include a noticeable delay upon app launch and UI sluggishness when opening specific dialogs. For instance, pressing Ctrl+Shift+P for the NuGet Package Manager now causes the window to momentarily go black—something never encountered in LINQPad 8, severely impairing the user experience.
Certainly, I understand LINQPad 9 is currently still in preview, and I have faith the author will pay close attention to user feedback and improve its performance significantly. Ideally, please prioritize optimizing:
- Startup performance
- Dialog opening responsiveness, especially regarding NuGet Package Manager (Ctrl+Shift+P shortcut)
I remain passionate about LINQPad and trust that through careful optimization, it will once again regain its speed and lightweight advantages, becoming the efficient and fast tool I’ve always admired.
Comments
-
I'm not paying too much attention to perf right now but here's some of my observations.
Just wanted to point out, that with regards to the nuget package manager, in 8 and below, it shows a small "loading" box as the dialog loads. In 9, a dialog-sized black screen is shown. Actual load time is significantly slower in 9 in my experience (magnitudes).
I usually go through the script references and properties page when adding packages. Comparing 8 and 9, there is a noticeable difference in load time, with 9 being a bit slower to load (not nearly as bad as nuget) along with the black dialog-sized screen.
-
Not seeing those issues here (on Windows 10)
Don't have a proper way of testing it, but I closed and re-opened LP9 five or six times and it takes about 4.5 seconds to load. Did the same with LP8 and it takes closer to 5 seconds to open.
Don't see any significant difference in timing when running Ctrl-Shift-P which updates the screen in two stages. The local packages panel is filled within a second and the remote/online packages is filled about a second later. Don't see any black dialog boxes.
I presume you have run the Antivirus Performance Test and excluded the correct process name.
-
I assume you're both running X64 Windows?
Regarding the NuGet package manager, the Script Properties dialog, and any other dialog which takes longer to come up in LINQPad 9, could you please do the following:
- Go to Tools | Start Internal Profiling
- Bring up the dialog(s) to reproduce the performance issues
- Go to Tools | Stop Internal Profiling and post or send me the file.
Could you also please repeat this process with LINQPad 8 (the profiling option is on the Help menu) and post or send this, too, so I can compare the differences.
Regarding startup performance, you could please provide the following four values:
- Startup time for LINQPad 8 and LINQPad 9 with a no scripts shelved
- Startup time for LINQPad 8 and LINQPad 9 with a dozen or so scripts shelved
(For me, all four values are 3.5 seconds.)
Measure the time from clicking the launch icon to the editor cursor appearing.
Regarding the black window that precedes dialogs in dark mode, this will be improved shortly with a new pre-renderer.
-
This is the performance results from my work laptop, which is significantly less powerful than my home desktop machine. Everything seemed fast enough for me to notice on my home machine, not as much at work.
Attached profiling results from my work machine.
For startup at work, best of 3 starts:
LINQPad 8 (none shelved): ~3.5sec
LINQPad 8 (7 scripts shelved): ~4.0sec
LINQPad 9 (none shelved): ~3.4sec
LINQPad 9 (same 7 scripts shelved): ~3.8secI'm actually seeing slightly faster startups in 9.
Ran again at home, I have a lot of scripts shelved that I'd rather not close down. It's fast enough.
LINQPad 9 (22 scripts shelved): ~3.5sec (consistent)
LINQPad 8 (same 22 scripts shelved): ~3.3sec -
well, this time I do not notice the black screen for NuGet Package Manager (yes I'm using the black theme) anymore, here is the metrics, I added whitelist in C:\Program Files\LINQPad8/9 folder:
LP8: PerfData 2025-07-18 06-33-19.txt
LP9: PerfData 2025-07-18 06-31-55.txt -
Thanks for the info.
Try the latest build. The NuGet package manager and Settings dialogs should now come up faster (especially the first time), and there's a new dark-theme pre-renderer.
Let me know if you discover any further performance issues - or if the same issues recur.
-
Thanks, latest version becomes faster to me!
-
Wow it's a night and day difference faster. Great update!
-
interesting:
LINQPadProcessName LINQPad9-arm64.exe
WindowsDevDrive\
OutputFolder.linqpad.tmp\_imbmamhy\shadow-1
Test 1 - 6,708 milliseconds
Test 2 - 0,535 milliseconds
Test 3 - 0,458 milliseconds
Test 4 - 0,334 milliseconds
Test 5 - 0,434 milliseconds
Test 6 - 0,366 milliseconds
Test 7 - 0,431 milliseconds
Test 8 - 0,454 milliseconds
Test 9 - 0,458 milliseconds
Test 10 - 0,426 millisecondsLINQPadProcessName LINQPad8-x64.exe (emulated?)
WindowsDevDrive\
OutputFolder.linqpad.tmp\_eebgisis\shadow-1
Test 1 - 0,866 milliseconds
Test 2 - 0,717 milliseconds
Test 3 - 3,918 milliseconds
Test 4 - 0,667 milliseconds
Test 5 - 0,651 milliseconds
Test 6 - 0,57 milliseconds
Test 7 - 0,57 milliseconds
Test 8 - 0,573 milliseconds
Test 9 - 1,144 milliseconds
Test 10 - 1,118 millisecondsLINQPadProcessName LINQPad8.exe (arm64)
WindowsDevDrive\
OutputFolder.linqpad.tmp\_ttbsljkr\shadow-1
Test 1 - 0,519 milliseconds (varies, can be ~6ms)
Test 2 - 0,344 milliseconds
Test 3 - 0,37 milliseconds
Test 4 - 0,349 milliseconds
Test 5 - 0,294 milliseconds
Test 6 - 0,316 milliseconds
Test 7 - 0,776 milliseconds
Test 8 - 0,367 milliseconds
Test 9 - 0,601 milliseconds
Test 10 - 0,516 milliseconds