This build fixes the bugs identified in the forum post for the previous version, and also optimizes plugin loading times by quite a bit. A performance issue was also fixed that was crippling the performance of most tools, which was related to using the garbage collector’s "low latency" mode while drawing. As it turns out, it totally broke performance, so it has been reverted.
The first time the app starts after install or update, it will load Shapes normally, convert them into a binary format, and then save them to a cache. Subsequent app starts will be much faster, as the time for loading the binary data from the cache is — at least on my system! — 16x faster. I’m pretty happy with this result This should help a lot on systems that have a lot of shapes installed. Memory usage of the shapes is also greatly reduced.
For effects and file types, some of them need to be patched up at load time to be compatible with 4.3. If you remember from some of the previous alpha builds, I mentioned that I made a similar caching system for these types of plugins (as described above for Shapes). I later disabled it because I had concerns about its security. I’ve now re-enabled the cache, but only for plugins that are installed into the Documents folder — not for plugins installed into the Program Files location. So, if you want to ensure Paint.NET starts as fast as possible, I recommend moving your plugins to that location (e.g. Documents\paint.net App Files\FileTypes for FileTypes, and similar for Effects). The cache is also employed for additional plugin directories that are established using the process described here.
The plugin caches are now also enabled for the portable releases. A directory called AppCache will be created in the same directory as the app. It can be safely deleted at any time, even while the app is running.
Also note that the plugin caches must be rebuilt every time a new update is installed, so expect the first app start after installing an update to be more sluggish if you have many plugins or shapes installed. It won’t be any worse than 4.2.16, however.
Get the update
To get this update, make sure you have "Also check for pre-release (beta) versions" enabled in Settings, and then click on the Check Now button. (Unfortunately alpha/beta releases are not currently available for the Microsoft Store version of the app).
For direct download links, please visit the forum.
Changes since 4.3 alpha build 7918:
- Improved performance of loading custom Shapes by 16x on 2nd and subsequent app starts
- Fixed a crash when trying to save an image that does not support loading
- Fixed a performance issue that was crippling performance while drawing with most tools
8 thoughts on “paint.net 4.3 alpha (build 7921)”
I apologize for asking a noobish question, but .net 6 will be released this year and will be LTS. Will paint.net quickly switch to .net 6 after 4.3, or are there no tangible benefits?
As usual I would like to thank you for your hard work, especially the effort to ensure plugin compatibility. Please be aware that it is appreciated.
Paint.NET will move to .NET 6 as soon as it’s available. I expect to do that in a minor version update, e.g. v4.3.2. It should just be like flipping a switch by changing all of the net-5.0’s in the code to “net-6.0”, and it should just work.
.NET 6.0 has many benefits over 5.0. Performance is a big one, the JIT just generates much better code. See Stephen Toub’s magnum opus of a blog post at https://devblogs.microsoft.com/dotnet/performance-improvements-in-net-6/ and also Adam Sitnik’s at https://devblogs.microsoft.com/dotnet/file-io-improvements-in-dotnet-6/
And you’re welcome! I do appreciate the positive comments, it’s a labor of love 🙂 Well, and necessity … I really want to avoid two things: 1) breaking people’s workflows, and 2) flooding my inbox with bug reports 🙂
Is there a typo in “Documents\paint.net AppFiles\FileTypes” ? Should that be “Documents\paint.net App Files\FileTypes” ?
You’re right, it has a space — fixed. Thanks!
Comments are closed.