# Jobs preferences reference

> Reference for Jobs preferences.

Contains preferences for the [job system](/engine/6000.0/manual/scripting/programming-distribute-work-threads/job-system.md), which you can use to write simple and safe multithreaded code so that your application can use all its available CPU cores to execute code. The job system can improve the performance of your application. To open the preferences, go to **Edit** > **Preferences** > **Jobs** (macOS: **Unity** > **Settings** > **Jobs**).

| **Property**                      | **Description**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| --------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Use Job Threads**               | Runs jobs in separate threads. Disable **Use Job Threads** to run all jobs on the main thread. If you're debugging and want to simplify the problem space and remove all parallelism, you can disable **Use Job Threads** to run all jobs immediately on the main thread when they are scheduled. Disabling **Use Job Threads** has the same effect as if you set [`JobsUtility.JobWorkerCount`](/engine/6000.0/script-reference/unity/jobs/lowlevel/unsafe/jobsutility/jobworkercount.md) to 0.**Use Job Threads** is enabled by default when the Editor restarts.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| **Enable Jobs Debugger**          | Enables the [Job system safety system checks](/engine/6000.0/manual/scripting/programming-distribute-work-threads/job-system/overview.md#safety-system) which detect potential race conditions and prevent the bugs they can cause. Disable **Enable Jobs Debugger** if you want to monitor performance without the overhead of job system safety checks.**Enable Jobs Debugger** is enabled by default when the Editor restarts.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| **Leak Detection Level**          | Controls how much memory leak information is detected. Leak detection checks if allocations that are made with [`MallocTracked`](/engine/6000.0/script-reference/unity/collections/lowlevel/unsafe/unsafeutility/malloctracked.md) are freed with [`FreeTracked`](/engine/6000.0/script-reference/unity/collections/lowlevel/unsafe/unsafeutility/freetracked.md). If you don't free unmanaged memory, you will cause memory leaks which have a negative effect on memory usage and reduce performance. Memory leaks persist across domain reloads in the Editor.In the Editor and development builds, **Enabled** is selected by default. In non-development builds, **Disabled** is the default mode for **Leak Detection Level**. Choose from the following:**Disabled**: Don't detect unmanaged memory leaks.**Enabled**: Perform a lightweight count of all memory leaks for each leak category. This option only prints the number of leaks as part of the domain unload process. Use the **Enabled With Stack Trace** leak detection mode to find detected leaks.**Enabled With Stack Trace** (Editor and development builds only): Leak Detection reports the callstack of any [`MallocTracked`](/engine/6000.0/script-reference/unity/collections/lowlevel/unsafe/unsafeutility/malloctracked.md) allocation that's not deallocated with [`FreeTracked`](/engine/6000.0/script-reference/unity/collections/lowlevel/unsafe/unsafeutility/freetracked.md). **Enabled With Stack Trace** can add a performance cost to allocations. Only use **Enabled With Stack Trace** to intentionally track native memory leaks. **Enabled With Stack Trace**, like **Enabled**, reports leaks as part of the domain unload process. |
| **Allow Graphics Jobs in Editor** | Makes the Editor render with the [Graphics Jobs](/engine/6000.0/manual/platform-specific/windows/playersettings.md#GraphicsJobs) threading mode specified in Player settings. If your device doesn't support the specified [Graphics Jobs Mode](/engine/6000.0/manual/platform-specific/windows/playersettings.md#GraphicsJobsMode), Unity falls back to a supported threading mode.**Note**: You must also enable **Graphics Jobs** in the Player settings for the desktop platform your Editor runs on to apply the changes. If you don't enable both, the Editor uses standard multithreaded rendering, or single-core CPU rendering. For more information about rendering threading modes, refer to [`RenderingThreadingMode`](/engine/6000.0/script-reference/unityengine/rendering/renderingthreadingmode.md).You can enable **Allow Graphics Jobs in Editor** to test how graphics jobs affect rendering without building a Player or disable it to check whether graphics jobs cause a rendering problem in the Editor.The Editor needs to restart to enable or disable graphics jobs.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |

## Additional resources

* [Job system overview](/engine/6000.0/manual/scripting/programming-distribute-work-threads/job-system/overview.md)
* [Implement a custom NativeContainer](/engine/6000.0/manual/scripting/programming-distribute-work-threads/job-system/thread-safe-types/custom-nativecontainer.md)
