# Performance issues on Mac M1?

**URL:** <https://discourse.slicer.org/t/performance-issues-on-mac-m1/22564>\
**Category:** Support\
**Tags:** macos\
**Created:** [March 17, 2022, 3:30pm UTC](https://discourse.slicer.org/t/performance-issues-on-mac-m1/22564 "2022-03-17T15:30:20Z")\
**Posts on this page:** 14\
**Page:** 1

<div class="post-metadata">

**Author:** ![bpjohannessen](https://avatars.discourse-cdn.com/v4/letter/b/9dc877/32.png) [@bpjohannessen](https://discourse.slicer.org/u/bpjohannessen)\
**Post date:** [March 17, 2022, 3:30pm UTC](https://discourse.slicer.org/t/performance-issues-on-mac-m1/22564/1 "2022-03-17T15:30:20Z")

</div>

Hello everybody.

I’m using 3D Slicer 4.11.20210226 (latest at time of writing) on my Windows PC without any performance issues, and I can segment CT scans (thorax, abdomen, wrists, etc) without any performance issues. Unfortunately I’m experiencing severe performance issues with the same version, and also 4.13.0-2022-03-15, on my MacBook Pro M1 (2020, 16 GB, macOS Monterey 12.3). I’m getting either a ever-lasting spinning beach ball or it crashes. I’ve tried it without any plugins.

To other Mac/M1 users, are you experiencing any of these issues, or is there some fix for it? I know Slicer is using 3rd party applications that (yet) is not ported to Apple Silicon, and if there are no known fixes I’ll continue working on a Windows PC.

In advance, thank you!  
Bjørn-Petter Johannessen MD/resident radiologist.

---

<div class="post-metadata">

**Author:** ![jamesobutler](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/jamesobutler/32/7511_2.png) [@jamesobutler](https://discourse.slicer.org/u/jamesobutler)\
**Post date:** [March 17, 2022, 3:31pm UTC](https://discourse.slicer.org/t/performance-issues-on-mac-m1/22564/2 "2022-03-17T15:31:58Z")

</div>

> [@bpjohannessen](#):
>
> I’m getting either a ever-lasting spinning beach ball or it crashes.

When does this happen? On startup? After doing certain actions in Slicer?

---

<div class="post-metadata">

**Author:** ![bpjohannessen](https://avatars.discourse-cdn.com/v4/letter/b/9dc877/32.png) [@bpjohannessen](https://discourse.slicer.org/u/bpjohannessen)\
**Post date:** [March 17, 2022, 8:56pm UTC](https://discourse.slicer.org/t/performance-issues-on-mac-m1/22564/3 "2022-03-17T20:56:36Z")

</div>

Thank you for your reply. I’m sorry I didn’t mention the important details…

> [@jamesobutler](#):
>
> When does this happen? On startup?

I haven’t encountered any problems on startup, loading DICOM files, thresholding, drawing, erasing, etc.

> [@jamesobutler](#):
>
> After doing certain actions in Slicer?

I’m encountering the issues when I’m scissoring while the 3D view is enabled. It doesn’t matter if I’m scissoring in the 3D view or in one of the 2D views (ax/cor/sag). Scissoring a smaller CT (e.g., wrist) is quicker than an abdominal CT, but the application hangs regardless. 100% CPU usage and ~3-4-5 GB of RAM. I still have free RAM, and I don’t think the hardware itself is problematic (except M1?).

I hope this helps. Please let me know if you need any other details. Thresholding, some basic drawing/erasing and scissoring is what I need.

---

<div class="post-metadata">

**Author:** ![lassoan](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/lassoan/32/13_2.png) [@lassoan](https://discourse.slicer.org/u/lassoan)\
**Post date:** [March 18, 2022, 2:29pm UTC](https://discourse.slicer.org/t/performance-issues-on-mac-m1/22564/4 "2022-03-18T14:29:54Z")

</div>

Does the slowdown occur when you release the mouse button after finishing drawing the curve?

How long do you have to wait after renewing the mouse button due the application to become responsive again?

Does the slowdown occur if you disable surface smoothing (in the dropdown menu of the “Show 3D” button)?

Note that after thresholding you can have tens of thousands of small speckles in the segmentation, which can drastically slow down 3D display and some processing. After thresholding it usually makes sense to use Smoothing effect with default parameters to reduce the amount of speckles and make the extracted surfaces smoother.

---

<div class="post-metadata">

**Author:** ![sannpeterson](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/sannpeterson/32/10892_2.png) [@sannpeterson](https://discourse.slicer.org/u/sannpeterson)\
**Post date:** [August 4, 2022, 1:26am UTC](https://discourse.slicer.org/t/performance-issues-on-mac-m1/22564/5 "2022-08-04T01:26:58Z")

</div>

I also posted about this same issue. Performance on my brand new Macbook Pro M1 is very unreliable. I’ve tried working with smaller areas but it doesn’t seem to matter much. Sometimes it runs smoothly but most of the time it’s painfully slow. I switched back over to windows just to use Slicer.

---

<div class="post-metadata">

**Author:** ![lassoan](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/lassoan/32/13_2.png) [@lassoan](https://discourse.slicer.org/u/lassoan)\
**Post date:** [August 4, 2022, 5:57am UTC](https://discourse.slicer.org/t/performance-issues-on-mac-m1/22564/6 "2022-08-04T05:57:16Z")

</div>

I’ve submitted an issue to keep track of this:

> <https://github.com/Slicer/Slicer/issues/6490>
>
> \## Summary
> 
> Two users reported slowdowns when using M1 mac systems:
> 
> \> I’m u…sing 3D Slicer 4.11.20210226 (latest at time of writing) on my Windows PC without any performance issues, and I can segment CT scans (thorax, abdomen, wrists, etc) without any performance issues. Unfortunately I’m experiencing severe performance issues with the same version, and also 4.13.0-2022-03-15, on my MacBook Pro M1 (2020, 16 GB, macOS Monterey 12.3). I’m getting either a ever-lasting spinning beach ball or it crashes. I’ve tried it without any plugins. 
> 
> https://discourse.slicer.org/t/performance-issues-on-mac-m1/22564
> 
> https://discourse.slicer.org/t/issues-running-slicer-on-macbook-m1-max/23974/3
> 
> \## Environment
> 
> \- MacBook Pro M1 (2020, 16 GB, macOS Monterey 12.3)
> \- MacBook M1 max

Probably will have to buy a few M1 macs so that we can test this. But for that we would need to know which ones are problematic.

@sannpeterson can you give more information about your system (model name and year, CPU, RAM, operating system)?

---

<div class="post-metadata">

**Author:** ![sannpeterson](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/sannpeterson/32/10892_2.png) [@sannpeterson](https://discourse.slicer.org/u/sannpeterson)\
**Post date:** [August 7, 2022, 12:52am UTC](https://discourse.slicer.org/t/performance-issues-on-mac-m1/22564/7 "2022-08-07T00:52:00Z")

</div>

Macbook Pro M1 Max (2021) w/ 10 core CPU and 32 core GPU  
32 GB memory  
1 TB SSD  
macOS Monterey 12.5

---

<div class="post-metadata">

**Author:** ![bpjohannessen](https://avatars.discourse-cdn.com/v4/letter/b/9dc877/32.png) [@bpjohannessen](https://discourse.slicer.org/u/bpjohannessen)\
**Post date:** [August 14, 2022, 2:31pm UTC](https://discourse.slicer.org/t/performance-issues-on-mac-m1/22564/8 "2022-08-14T14:31:22Z")

</div>

> [@lassoan](#):
>
> Does the slowdown occur when you release the mouse button after finishing drawing the curve?

Yes, when I release the mouse button.

> [@lassoan](#):
>
> How long do you have to wait after renewing the mouse button due the application to become responsive again?

Depends, sometimes it’s just “laggy” and a couple-10 seconds. Right now I’ve been waiting for 10 minutes after scissoring out parts of a kidney.

> [@lassoan](#):
>
> Does the slowdown occur if you disable surface smoothing (in the dropdown menu of the “Show 3D” button)?

I haven’t been using a stopwatch, but it doesn’t seem to make a difference.

> [@lassoan](#):
>
> Note that after thresholding you can have tens of thousands of small speckles in the segmentation, which can drastically slow down 3D display and some processing. After thresholding it usually makes sense to use Smoothing effect with default parameters to reduce the amount of speckles and make the extracted surfaces smoother.

I’ve tried with and without smoothing, but I can’t notice any significant difference.

Right now I’m segmenting a CT arteriography of aorta from a axial 3 mm scan with 241 slices, so it’s not a lot of data…

MacBook Pro 13 M1, 2020  
16 GB memory.  
Fresh install of macOS 12.4. I’ve been using Slicer 3D version 4.x and now 5.0.3 and I can’t tell any difference in the performance.  
Still works great on Windows.

(Sorry for the late reply - I thought I had replied to this)

---

<div class="post-metadata">

**Author:** ![Iris\_M](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/iris_m/32/16696_2.png) [@Iris\_M](https://discourse.slicer.org/u/Iris_M)\
**Post date:** [September 18, 2022, 9:59am UTC](https://discourse.slicer.org/t/performance-issues-on-mac-m1/22564/9 "2022-09-18T09:59:05Z")

</div>

Hi, I am also experiencing issues with Slicer (v. 5.0.3.) when working in the Segmentation editor. It crashes constantly when using the scissor to cut off segmentation results.

MacBook Pro (13-inch, M2, 2022)  
Monterey v 12.5.1

---

<div class="post-metadata">

**Author:** ![semredogan](https://avatars.discourse-cdn.com/v4/letter/s/439d5e/32.png) [@semredogan](https://discourse.slicer.org/u/semredogan)\
**Post date:** [November 9, 2022, 12:34pm UTC](https://discourse.slicer.org/t/performance-issues-on-mac-m1/22564/10 "2022-11-09T12:34:47Z")

</div>

I have multiple problems regarding segmentation on CT images (Maxillofacial ones don’t differ much from others but anyways). Especially when I’m trying to use “Scissors”, “Watershed” tools.  
The process usually goes like this:  
-I import the CT data  
-I add new segmentations to segment the cortical part of the mandible and the teeth. I used the method mentioned in this forum  
-I use “grow from seeds” tool which typically results in mixed segmentations since the tissues do not differ from each other so much in terms of calcification  
-I use “scissors” or “paintbrush” tool to fix the flooded/extra/unnecessary parts, then BOOM.  
The app crashes, and all my efforts are gone

---

<div class="post-metadata">

**Author:** ![pieper](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/pieper/32/8_2.png) [@pieper](https://discourse.slicer.org/u/pieper)\
**Post date:** [November 9, 2022, 1:31pm UTC](https://discourse.slicer.org/t/performance-issues-on-mac-m1/22564/11 "2022-11-09T13:31:33Z")

</div>

Thanks for reporting. There does seem to be some instability on macs with Apple chips. I have run some simple tests and things run fine, but we have seen [previous issues](https://github.com/pieper/SlicerParallelProcessing/commit/2cf7d7d61e7b17cc949cb8fd31acefe9e4de25a1) indicating that the on-the-fly run time code conversion is not the same as running on native hardware. So until Apple fixes their emulation layer or Slicer is ported to the new architecture there are likely to be edge cases that fail.

I tested the basic flow described by @semredogan and got the crash report below basically instantly when using the scissors on my first try. Later attempts to do the same thing did not crash. I’ve never seen this on non-Apple CPUs.

For now I’d say the best option is to save often or use a different computer for intensive work.

```auto

Crashed Thread: 0 CrBrowserMain Dispatch queue: com.apple.main-thread

Exception Type: EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_INVALID_ADDRESS at 0x0000000000000030
Exception Codes: 0x0000000000000001, 0x0000000000000030

Termination Reason: Namespace SIGNAL, Code 11 Segmentation fault: 11
Terminating Process: exc handler [6040]

VM Region Info: 0x30 is not in any region. Bytes before following region: 140722657165264
      REGION TYPE START - END [VSIZE] PRT/MAX SHRMOD REGION DETAIL
      UNUSED SPACE AT START
--->  
      mapped file 7ffc8bfe0000-7ffc92e98000 [110.7M] r-x/r-x SM=COW ...t_id=cbf25fb1

Error Formulating Crash Report:
dyld_process_snapshot_create_for_process failed with 5

Kernel Triage:
VM - pmap_enter retried due to resource shortage
VM - pmap_enter retried due to resource shortage

Thread 0 Crashed:: CrBrowserMain Dispatch queue: com.apple.main-thread
0 <translation info unavailable> 0x10493f43c ???
1 <translation info unavailable> 0x10493ea4c ???
2 libvtkCommon-9.1.1.dylib 0x143fb9cc0 vtkPolyData::BuildLinks(int) + 160
3 libvtkFilters-9.1.1.dylib 0x1407a356e vtkPolyDataNormals::RequestData(vtkInformation*, vtkInformationVector**, vtkInformationVector*) + 1614
4 libvtkCommon-9.1.1.dylib 0x143d9ab15 vtkExecutive::CallAlgorithm(vtkInformation*, int, vtkInformationVector**, vtkInformationVector*) + 69
5 libvtkCommon-9.1.1.dylib 0x143d9585d vtkDemandDrivenPipeline::ExecuteData(vtkInformation*, vtkInformationVector**, vtkInformationVector*) + 61
6 libvtkCommon-9.1.1.dylib 0x143d8fc98 vtkCompositeDataPipeline::ExecuteData(vtkInformation*, vtkInformationVector**, vtkInformationVector*) + 104
7 libvtkCommon-9.1.1.dylib 0x143d9501d vtkDemandDrivenPipeline::ProcessRequest(vtkInformation*, vtkInformationVector**, vtkInformationVector*) + 1437
8 libvtkCommon-9.1.1.dylib 0x143dd9930 vtkStreamingDemandDrivenPipeline::ProcessRequest(vtkInformation*, vtkInformationVector**, vtkInformationVector*) + 848
9 libvtkCommon-9.1.1.dylib 0x143d90f39 vtkCompositeDataPipeline::ForwardUpstream(vtkInformation*) + 297
10 libvtkCommon-9.1.1.dylib 0x143d94e3d vtkDemandDrivenPipeline::ProcessRequest(vtkInformation*, vtkInformationVector**, vtkInformationVector*) + 957
11 libvtkCommon-9.1.1.dylib 0x143dd9930 vtkStreamingDemandDrivenPipeline::ProcessRequest(vtkInformation*, vtkInformationVector**, vtkInformationVector*) + 848
12 libvtkCommon-9.1.1.dylib 0x143dd9f2b vtkStreamingDemandDrivenPipeline::Update(int, vtkInformationVector*) + 283
13 libqSlicerSegmentationsEditorEffects.dylib 0x18289cc5b qSlicerSegmentEditorScissorsEffectPrivate::updateBrushStencil(qMRMLWidget*) + 203
14 libqSlicerSegmentationsEditorEffects.dylib 0x18289cfb9 qSlicerSegmentEditorScissorsEffectPrivate::paintApply(qMRMLWidget*) + 137
15 libqSlicerSegmentationsEditorEffects.dylib 0x1828a0d30 qSlicerSegmentEditorScissorsEffect::processInteractionEvents(vtkRenderWindowInteractor*, unsigned long, qMRMLWidget*) + 448
16 libqSlicerSegmentationsModuleWidgets.dylib 0x18271302b qMRMLSegmentEditorWidget::processEvents(vtkObject*, unsigned long, void*, void*) + 619
17 libvtkCommon-9.1.1.dylib 0x14457b351 vtkCallbackCommand::Execute(vtkObject*, unsigned long, void*) + 33
18 libvtkCommon-9.1.1.dylib 0x14468f330 vtkSubjectHelper::InvokeEvent(unsigned long, void*, vtkObject*) + 1200
19 libvtkGUISupportQt-9.1.1.dylib 0x1360218cb QVTKInteractorAdapter::ProcessEvent(QEvent*, vtkRenderWindowInteractor*) + 2171
20 libvtkGUISupportQt-9.1.1.dylib 0x136023cae QVTKOpenGLNativeWidget::event(QEvent*) + 30
21 QtWidgets 0x10e9c0a1a QApplicationPrivate::notify_helper(QObject*, QEvent*) + 266
22 QtWidgets 0x10e9c3785 QApplication::notify(QObject*, QEvent*) + 6965
23 libqSlicerBaseQTGUI.dylib 0x10d0aaf20 qSlicerApplication::notify(QObject*, QEvent*) + 16
24 QtCore 0x1114939d4 QCoreApplication::notifyInternal2(QObject*, QEvent*) + 212
25 QtWidgets 0x10e9c1340 QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool, bool) + 896
26 QtWidgets 0x10ea1a052 0x10e9b0000 + 434258
27 QtWidgets 0x10ea18719 0x10e9b0000 + 427801
28 QtWidgets 0x10e9c0a1a QApplicationPrivate::notify_helper(QObject*, QEvent*) + 266
29 QtWidgets 0x10e9c1e41 QApplication::notify(QObject*, QEvent*) + 497
30 libqSlicerBaseQTGUI.dylib 0x10d0aaf20 qSlicerApplication::notify(QObject*, QEvent*) + 16
31 QtCore 0x1114939d4 QCoreApplication::notifyInternal2(QObject*, QEvent*) + 212
32 QtGui 0x10fdc11de QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) + 3534
33 QtGui 0x10fda612b QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) + 219
34 libqcocoa.dylib 0x143123260 0x1430e9000 + 238176
35 libqcocoa.dylib 0x1431239c8 0x1430e9000 + 240072
36 CoreFoundation 0x7ff80289def1 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17
37 CoreFoundation 0x7ff80289dea0 __CFRunLoopDoSource0 + 157
38 CoreFoundation 0x7ff80289dc6e __CFRunLoopDoSources0 + 212
39 CoreFoundation 0x7ff80289c8c8 __CFRunLoopRun + 943
40 CoreFoundation 0x7ff80289be9f CFRunLoopRunSpecific + 560
41 HIToolbox 0x7ff80c6c3bd6 RunCurrentEventLoopInMode + 292
42 HIToolbox 0x7ff80c6c3806 ReceiveNextEventCommon + 199
43 HIToolbox 0x7ff80c6c3723 _BlockUntilNextEventMatchingListInModeWithFilter + 70
44 AppKit 0x7ff8058f9b37 _DPSNextEvent + 909
45 AppKit 0x7ff8058f89b8 -[NSApplication(NSEvent) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 1219
46 AppKit 0x7ff8058eaff3 -[NSApplication run] + 586
47 libqcocoa.dylib 0x14312262f 0x1430e9000 + 235055
48 QtCore 0x11148fa6f QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) + 431
49 QtCore 0x111493fe2 QCoreApplication::exec() + 130
50 libqSlicerBaseQTCore.dylib 0x10e1cc1a9 qSlicerCoreApplication::exec() + 9
51 Slicer 0x10432cae3 main + 483
52 dyld 0x20460b310 start + 2432

```

---

<div class="post-metadata">

**Author:** ![BoudAnt1](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/boudant1/32/18307_2.png) [@BoudAnt1](https://discourse.slicer.org/u/BoudAnt1)\
**Post date:** [February 6, 2023, 5:16pm UTC](https://discourse.slicer.org/t/performance-issues-on-mac-m1/22564/12 "2023-02-06T17:16:08Z")

</div>

This is follow-up question that may not be perfect for a sub-thread, but here goes:  
• Has anyone had any difficulties with the new Mac M2 chip?  
• Is there a fix planned for the scissor issue raised in this thread?  
• More generally, is the Slicer group adapting their Mac OS build for the new chips, or is this +/- irrelevant?

Thank you.

---

<div class="post-metadata">

**Author:** ![pieper](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/pieper/32/8_2.png) [@pieper](https://discourse.slicer.org/u/pieper)\
**Post date:** [February 6, 2023, 5:23pm UTC](https://discourse.slicer.org/t/performance-issues-on-mac-m1/22564/13 "2023-02-06T17:23:34Z")

</div>

I have done some testing and mostly running the intel binaries on the M2 mac air seems to work well. I haven’t extensively tested the scissors though.

I also did a [preliminary build with some features disabled](https://github.com/Slicer/Slicer/issues/5944#issuecomment-1328179343) and it works well.

Eventually yes, we do plan to support Apple silicon natively. If anyone who wants to help sort out the remaining build issues it would be much appreciated.

---

<div class="post-metadata">

**Author:** ![lassoan](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/lassoan/32/13_2.png) [@lassoan](https://discourse.slicer.org/u/lassoan)\
**Post date:** [February 6, 2023, 6:54pm UTC](https://discourse.slicer.org/t/performance-issues-on-mac-m1/22564/14 "2023-02-06T18:54:30Z")

</div>

The scissors issue is fixed in recent Slicer Preview Releases. If you can still reproduce the problem then let me know (you can activate some debugging options that will help me figuring out the final fix).
