文件名称:fizzbuzz:具有不同优化的FizzBuzz测试的实现
文件大小:10KB
文件格式:ZIP
更新时间:2024-05-30 23:50:35
C
嘶嘶声 经典测试的优化。 天真的 效率最低的实现,每个数字3个if s和两个printf s。 它是如此低效,以至于我什至不使用它进行比较。 幼稚的 最优化的版本,带有2 if s(不计算循环条件)和每个数字1 printf 。 展开 单循环迭代有15个数字,这意味着对于15个数字,只有一个分支(对于朴素的则为45个分支)和1个printf (对于朴素的则为15 printf )。 定制印刷 通用printf替换为针对此特定任务量身定制的自定义打印例程。 customprint2 像customprint一样,但是缓冲区反向填充,并且相邻的Fizz和Buzz单词合并为单个memcpy ,因此每次迭代的memcpy调用次数从15个减少到4。 再利用 重用先前迭代中的缓冲区,仅更新更改的字符。 使用x86_64矢量指令比较缓冲区。 再用buf2 重用先前迭代中的缓冲区,仅更新更改的字符。
【文件预览】:
fizzbuzz-main
----multithreaded.c(6KB)
----reusebuffer.c(4KB)
----unrolled.c(980B)
----LICENSE(1KB)
----reusebuffer2.c(4KB)
----README.md(2KB)
----Makefile(197B)
----customprint.c(1KB)
----naive.c(409B)
----customprint2.c(2KB)
----supernaive.c(344B)