Windows enabled 'Fault Tolerant Heap' for 3dsmax or dependent processes. This may have severe performance impact on Corona. Please follow the link to learn how to solve the problem. Affected executables are: xxxx (typically 3dsmax.exe).
This article contains possible solutions to the following problems:
- Very long or infinite pre-rendering phase ("transforming vertices", "building acc. structure", "parsing the scene") - usually in distributed rendering
- Very long scene saving times
- Usually, the problems appear in large scenes (but it is not a rule)
- Other problems like freezing, or infinite loading, which are hard to diagnose
These problems may be related to Microsoft Windows detecting an application which is often crashing (in this case 3ds Max, Corona, or other plugin) and applying special mitigations to it. In some cases this can prevent the application from crashing, but at the same time makes it extremely slow.
The solution to these problems may be disabling the Fault Tolerant Heap globally, or for a specific application (see below).
What is FTH?
The Fault Tolerant Heap (FTH) is a subsystem of Windows 7 (and newer) responsible for monitoring application crashes and autonomously applying mitigations to prevent future crashes on a per-application basis. For the vast majority of users, FTH will function with no need for intervention or change on their part. However, in some cases, application developers and software testers may need to override the default behavior of this system.
Source: Microsoft Dev Center
Viewing FTH Logs
This helps identify the problem. To confirm that the problem you are experiencing is triggering FTH, you should look for 3dsmax.exe, WsCommCntr4.exe, or any other .exe file associated with 3ds Max in the FTH logs.
Viewing Fault Tolerant Heap activity
Fault Tolerant Heap logs information when the service starts, stops, or starts mitigating problems for a new application. To view this information, follow these steps:
- Click the Start menu.
- Right-click Computer and click Manage:
- Click Event Viewer > Applications and Services Logs > Microsoft > Windows > Fault-Tolerant-Heap:
- View FTH Events:
The service stop and start events contain no additional data. The FTH Enabled event contains the Process ID (PID), the process image name, and the process instance start time.
Source: Microsoft Dev Center
Disabling FTH
Note: basic knowledge on editing the Windows registry is required to perform the below steps. Please see: Windows registry information for advanced users.
1. Excluding an application from FTH - method #1:
This will permanently exclude an application from FTH, unless it is reverted by the user.
Add the name of the application (the one which was listed in the FTH log - for example 3dsmax.exe) to the following registry entry:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\FTH\ExclusionList
Then delete the exe entry under HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\FTH\State
This should disable FTH for the added application.
Source: Stack overflow
2. Excluding an application from FTH - method #2:
This will temporarily exclude an application from FTH, and Windows will be able to autonomously include the application again in the future.
Go to these two locations and delete the FaultTolerantHeap entry:
HKEY_LOCAL_MACHINE\Software\Microsoft\WindowsNT\CurrentVersion\AppCompatFlags\Layers\your_application.exe
HKEY_CURRENT_USER\Software\Microsoft\WindowsNT\CurrentVersion\AppCompatFlags\Layers\your_application.exe
Source: The Old New Thing
3. Disabling FTH completely:
To disable Fault Tolerant Heap entirely on a system, set the REG_DWORD value HKEY_LOCAL_MACHINE\Software\Microsoft\FTH\Enabled to 0.
After changing this value, restart the system. FTH will no longer activate for new applications.
Source: Microsoft Dev Center
You may additionally need to delete the exe entry under HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\FTH\State
4. Resetting the list of applications tracked by FTH
Fault Tolerant heap is self-managing and will autonomously stop applying in the case that mitigations are not effective for a given application. However, if you need to reset the list of applications for which FTH is mitigating problems (for example, if you are testing an application and need to reproduce a crash that FTH is mitigating), you can run the following command from an elevated command prompt:
Rundll32.exe fthsvc.dll,FthSysprepSpecialize
Caution: Running this command will clear all FTH applications, so applications that are currently functioning properly may begin to crash again after running this command.
Source: Microsoft Dev Center