内存使用量与数据大小相同吗?

时间:2018-12-27 00:07:05

标签: c++

我正在对一个变量进行SHA3算法的性能测试,正在检查该变量大小不同的算法的执行时间。为此,我使用了char类型并增加了它的大小,但是我不知道我是否在正确地执行它。我将使用下面的代码行来解释我的疑问。

char[1000] = "A text";

我知道每个字符的大小为1字节。我的问题是:当我预定义向量时,变量的大小将成为向量的索引,在这种情况下为1000?还是由变量的内容决定变量的大小?在这种情况下,由文本决定,大小为6个字节?

我正在做的测试对吗?还是分配的内存大小不影响SHA3的性能? (之所以这样问,是因为我打算对更大的值进行相同的测试。例如,如果我想使用20 KB进行此测试,是否必须用20000个字符填充变量?)

我正在使用C ++。

1 个答案:

答案 0 :(得分:0)

该行代码在堆栈上分配的内存量将为1,000字节。但是,发送到SHA3代码的内容可能只是字符串“ A text”的字节数,具体取决于您如何调用它以及它如何使用数据。如果它使用类似strlen()的函数来计算字符串的长度,则它可能只会迭代字符串的6个字符(和1个NUL字节),而忽略其余的993个字节。因此,这实际上取决于您如何使用它以及如何计算测试的大小。