- Official Post
Announcing the future of HEAT (HEAT 2.0).
You spoke and we (or I) listened.
HEAT very soon won’t be a script but will be an executable.
HEAT started as a very small scanning script.
With a bunch of updates, it expanded immensely to a 5K lines of code (very long lines) and a bunch of dependancies.
Over the past few weeks I converted portions of HEAT from PowerShell code to C# (.net 10).
Why .net? Because it allows better access to Windows APIs, which on C++ will need external dependencies and frameworks.
So what is the performance difference?
Memory usage:
PowerShell: 1200 mb average
.net: less than 100 mb
Scan time:
2.5-3 min average on PowerShell
Seconds on .net
CPU usage:
12% on PowerShell
Less than 5% on .net
Size:
This is where PowerShell script wins at less than a megabyte
.net: still deciding whether I want portable executable or installer, either way, the total project size will be around 50MB.
How many times the project was refactored:
UI:
Rewritten 3 times
From plain javascript to react with in-browser transpiler to precompiled react running on WebView.
Backend:
Rewritten 3 times. From monolithic PowerShell to dot sourced, multi-file multi-threaded PowerShell (extremely advanced). Then rewritten to .net.
The backend now dynamically communicates to the UI which is to be expected. 7zip will no longer be needed, it will be replaced by internal SharpZipLib (SharpZipLib.dll).
Heat is developed with love and care and I hope users will love the project as much as I do.