ISESteroids is designed to be lightning fast. We employ a number of optimizations, and all the sophisticated code analysis takes place in the background.
So if ISESteroids is not working lightning fast for you, something is wrong. Here is why, and what you can do about it.
What We Are Looking For
We care about ISESteroids performance after it has loaded. Loading ISESteroids will inadvertedly add a couple second overhead due to the adjustments and extensions ISESteroids adds. We are working on startup optimizations as well, but this article is about performance issues after ISESteroids has loaded.
So if Intellisense takes too long and times out, or typing a letter would produce a noticeable delay, then that would be something we would need to know about.
Is it ISESteroids?
Before you read on, if you experience slow performance, check whether it is related to ISESteroids.
Please launch the ISE editor without loading ISESteroids, and try again. Is it still showing slow performance? Then it’s something else, beyond ISESteroids.
Next, launch the ISE editor without any profile scripts. For example, open a PowerShell console, then enter:
Now, launch ISESteroids. This makes sure only ISESteroids gets loaded, and nothing else. If the slowdown is gone now, you know that the issue is caused by an incompatibilty of something you load from your profile scripts, Please submit a ticket, and try to be as specific as you can what you load that makes ISESteroids slow down.
Slow Tokenization and Intellisense in DSC (Desired State Configuration)
Please note that DSC scripts take much longer to be tokenized, regardless of ISESteroids.
You can see this in a naked ISE editor: once you load a DSC script and start to edit it, there may be a noticeable lag before tokens get colorized. They may appear black (in default ISE) or orange (in ISESteroids) until they get classified.
This in turn backfires on Intellisense. Intellisense relies on proper tokenization, so if tokenization takes time, so does Intellisense – and can even timeout.
So if you are working a lot with DSC scripts, check this kind of delay in a naked ISE, then compare with ISESteroids. If there are significant differences, please file a ticket. If it is slow in both cases, there is not much we can do about it from our side. Tokenization is a core service provided by PowerShell.
Internal Reasons for Slow Down
ISESteroids targets a vast number of different environments: different OS, different PS versions, and different loaded modules. This is a pretty good challenge for software developers.
While we aim to ensure 100% compatibility to all of these environments, there is a chance that in certain cases, ISESteroids encounters an unexpected condition – something we missed to take into consideration.
If these conditions cause internal errors, this is when you see an ISESteroids slowdown. Handling errors takes time, and so a noticeable slowdown most likely is caused by exceptions.
The good news is: it does not need to be that way! We need your help to better understand what is special about your environment, and what ISESteroids should take into consideration. Any slowdown reported to us has been successfully worked out in the past.
Submit a Ticket!
So if you think ISESteroids is too slow, submit a ticket! Please include the PowerShell version you are using, the operating system, the ISESteroids version, and what you do when the slowdown occurs.
We might come back to you and ask to run a special diagnostic version of ISESteroids. If you are willing to assist, this version will then create a log and help understand what went wrong.
So with your help, we can make sure ISESteroids is always a pleasant and lightning fast experience, regardless of what you do, and where you do it.