早上临时起意,测试excel的countif在mac os和win下的执行效率。用的都是office365。
测试环境:
两个设备都是笔记本。
处理器 Intel(R) Core(TM) i7-8565U CPU @ 1.80GHz 1.99 GHz
RAM 16.0 GB
系统类型 64 位操作系统, 基于 x64 的处理器
Mac的cpu是Apple M3 芯片 (8 核中央处理器、10 核图形处理器和 16 核神经网络引擎),内存16GB。
测试代码:
Public Sub doExec()
Dim inti As Integer
Dim i As Long
Dim j As Long
For i = 1 To 20
For j = 636 To 1 Step -1
Sheet1.Activate
Sheet1.Range("A" & i) = WorksheetFunction.CountIf(Sheet2.Range("a1:a500"), j)
Sheet1.Range("b" & i) = Now()
DoEvents
Next
Sheet1.Range("A" & i) = i
Next
End Sub
测试结果:
win:平均2秒左右就能计算出一个range的取值。
image.png
mac:平均约8秒
image.png
emmm:
本以为差距应该不大或者mac胜出,对mac下excel宏的执行效率失望了。
是mac下的vb语法效率低啊还是M3效率不如intel。。。
ps:
mac下安装虚拟机后:1分52秒
image.png