Home Blog Large Files and Fast Editing
 

Large Files and Fast Editing

Occasionally we receive reports that editing extremely large files slows down ISESteroids.

Edit: Starting with 2.1.0.65, ISESteroids now has a speed-optimized engine that should handle even super-large scripts with ease. This version is currently in public beta. You can download and test drive the beta.

Here is a little secret you can use to speed things up even with the largest files.

UI Level Control

When you look into the menu “Level”, you find different UI levels. You can easily switch to a “Beginners” mode, for example, and hide most of the advanced controls and realtime checks.

If ISESteroids is choking on a large or complex script and starts to slow down, first thing you should do is switch UI level to “Beginner” and see if that changes anything. Most likely it will.

So if Beginners mode brings the speed you want, let’s create a new UI level that just disables what causes the delay.

Open the ISESteroids folder and look for the “Level” subfolder.

Creating Your Own UI Levels

Inside of the “Level” folder, you find *.psd1 files – plain PowerShell hash tables. These are the UI level definitions.

Copy the beginner.psd1 file, and rename it to “Large File Edit.psd1”. Then open it.

It basically contains a hashtable full of key-value pairs that control which UI elements and features ISESteroids should use.

If you have functions in your script that are called from many places, then most likely the realtime function reference counter is having a hard time and causing delays. To turn this feature off, remove all keys from the hashtable except these two:

FunctionReferences = $false
FunctionGap = $false

The file would now look like this:

@{
 Tooltip = @"
Optimized for large files that would slow down editing when all realtime features are enabled.
"@
 WelcomeMessage = @"
Optimized for large files that would slow down editing when all realtime features are enabled.
"@
 FunctionReferences = $false
 FunctionGap = $false
}

Save it, and look into the “Level” menu in ISESteroids. No restart required. ISESteroids picks up your new file the moment you open the “Level” menu.

When you now choose “Large File Edit” (the name of your new psd1 file), ISESteroids immediately turns off all the things that you don’t want or have identified to cause slow downs.

Of course, you can use this customization feature for other purposes, too. If you don’t like a given feature and want to remove it from the UI for an even more uncluttered view, you now know what to do.

Help Evolve ISESteroids!

ISESteroids is very fast and designed to cope with huge files. Still some features cost time. Others might not yet be fully optimized. So whenever you come across a slowdown in ISESteroids, and have identified the feature that causes it, please submit a ticket to us. Tell us what you did, which feature may cause it, and if possible attach the script to repro.

We’ll do our very best to further optimize and make sure you can use as many advanced features even with the largest scripts as possible.