|
@@ -169,6 +169,11 @@ int main()
|
|
|
测量发现它只需要 $0.12$ 秒的用户态时间,比循环展开和向量化的结果还快!
|
|
|
这是因为在我们的测试平台上 `memset` 是高度优化的手写汇编代码。
|
|
|
|
|
|
+另外,需要说明的是,如果你手写了一个 `for` 循环去初始化数组,
|
|
|
+而且编译器发现可以用 `memset` 获得相同的效果,则在 `-O1` 及以上优化级别下,
|
|
|
+会将你的 `for` 循环直接替换成 `memset`。因此,我们前面测试 `for` 循环时,
|
|
|
+使用了整数 $1$ 而不是 $0$,以防止这种替换。
|
|
|
+
|
|
|
## 动态内存分配
|
|
|
|
|
|
我们使用 `malloc` 分配一个数组,并且初始化它:
|