gpt4 book ai didi

c - CodeBlocks 中的 Free 函数非常慢

转载 作者:行者123 更新时间:2023-11-30 19:51:39 24 4
gpt4 key购买 nike

所以我使用的是 ubuntu 64 位,并且使用带有 GNU GCC 编译器的 CodeBlocks。我的代码有问题的部分基本上是这样的

int testFunction() {
int i;
char* test[10];

for(i = 0; i < 10; i++){
test[i] = malloc(50*(sizeof(char)));
}

for(i = 0; i < 10; i++){
free(test[i]);
}

return 0;
}

如果不释放所有 malloc 的运行时间为 2 秒,释放部分则为 20 秒 atm。有什么想法吗?

最佳答案

您可以测量自己的时间来确定。

#include <stdlib.h>
#include <bits/time.h>
#include <time.h>
#include <stdio.h>
int main() {
int i;
char *test[10];
clock_t begin = clock();
for (i = 0; i < 10; i++) {
test[i] = malloc(50 * (sizeof(char)));
}
clock_t end = clock();
double time_spent = (double)(end - begin) / CLOCKS_PER_SEC;
printf("time malloc %f\n", time_spent);
begin = clock();
for (i = 0; i < 10; i++) {
free(test[i]);
}
end = clock();
time_spent = (double)(end - begin) / CLOCKS_PER_SEC;
printf("time free %f\n", time_spent);
return 0;
}

测试

time malloc 0.000046
time free 0.000003

您可以尝试该程序online

关于c - CodeBlocks 中的 Free 函数非常慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39413160/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com