试图在C中使用cachetest代码

问题描述 投票:0回答:1

我试图理解以下代码以及它打印出来的内容:

https://ideone.com/ddPVRe

           printf("Size (bytes):%9d, Stride (bytes):%4d, read+write:%6.2f ns\n",
           csize*sizeof(int), stride*sizeof(int),
           (double) sec*1e9/(steps*SAMPLE*stride*((limit-1)/stride+1)));

它停在尺寸:67108864,其中R / W是11.82 ns。

enter image description here

从我可以看到它基本上打印访问阵列x所需的时间。有人可以帮我分手吗?

c caching
1个回答
0
投票

您的代码使用一些格式化功能打印3个值:

  1. 大小(字节):%9d:这会打印一个%d值,这是一个十进制整数。介于两者之间意味着它打印至少9个字符。如果数字由少于9个数字表示,则填充空格。此值取自第二个printf参数csize * sizeof(int)。正如@Some程序员老兄注意到的,此操作返回一个非签名号码,所以也许你可以在%u中更改%d
  2. Stride(字节):%4d:与之前相同,但最小长度仅为4个字符
  3. read + write:%6.2f ns:打印一个浮点值,最小长度为6个字符。 .2是精度,点后的位数。
  4. \ n:新行特殊字符

请参考:http://www.cplusplus.com/reference/cstdio/printf/好的,是cpp,但比经典手册更清晰

© www.soinside.com 2019 - 2024. All rights reserved.