封锁记忆

封锁记忆

0个粉丝

39

问答

0

专栏

1

资料

封锁记忆  发布于  2018-08-22 11:38:57
采纳率 0%
39个问答
2189

【已解决】计算拷贝3M数据所需要的时间

 
本帖最后由 封锁记忆 于 2018-8-22 13:46 编辑

我现在需要计算3M的数据从一块内存拷贝带另一块内存所需要的时间代码如下:[code]        struct timeval tv;
        gettimeofday(&tv, NULL);
        printf("millisecond:%ld\n",tv.tv_sec*1000 + tv.tv_usec/1000);  //毫秒
        printf("microsecond:%ld\n",tv.tv_sec*1000000 + tv.tv_usec);  //微秒

        int *source = (int *)malloc(3*1024*1024);
        int *dest  = (int *)malloc(3*1024*1024);
        memcpy(dest, source, 3*1024*1024);
        printf("millisecond:%ld\n",tv.tv_sec*1000 + tv.tv_usec/1000);  //毫秒
        printf("microsecond:%ld\n",tv.tv_sec*1000000 + tv.tv_usec);  //微秒
        (void)HI_MPI_VENC_SendFrame(venc, pStream, 1000);[/code]
这样写哪里有错那?前后打印的时间都是一样的
我来回答
回答7个
时间排序
认可量排序

zhuangweiye

8个粉丝

0

问答

0

专栏

0

资料

zhuangweiye 2018-08-22 12:00:20
认可0
个人感觉memcpy后面调用一次gettimeofday(&tv, NULL)会比较好

封锁记忆

0个粉丝

39

问答

0

专栏

1

资料

封锁记忆 2018-08-22 12:20:12
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=104184&ptid=51769]zhuangweiye 发表于 2018-8-22 12:00[/url]
个人感觉memcpy后面调用一次gettimeofday(&tv, NULL)会比较好[/quote]

我现在是求memcpy前后的时间差,不应该在前边吗?庄工,为什么现在差值为0那?也就是前后打印的时间一样

zhuangweiye

8个粉丝

0

问答

0

专栏

0

资料

zhuangweiye 2018-08-22 12:37:38
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=104185&ptid=51769]封锁记忆 发表于 2018-8-22 12:20[/url]
我现在是求memcpy前后的时间差,不应该在前边吗?庄工,为什么现在差值为0那?也就是前后打印的时间一样[/quote]

你只在前面调用,得到memcpy前的时间,memcpy后不调,就没有memcpy后的时间,还是前面的时间,你这么玩铁定是0

gettimeofday(&tv0, NULL);
// do something
。。。
gettimeofday(&tv1, NULL);
这个才能算出差值

封锁记忆

0个粉丝

39

问答

0

专栏

1

资料

封锁记忆 2018-08-22 13:30:04
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=104186&ptid=51769]zhuangweiye 发表于 2018-8-22 12:37[/url]
你只在前面调用,得到memcpy前的时间,memcpy后不调,就没有memcpy后的时间,还是前面的时间,你这么玩铁 ...[/quote]

        struct timeval tv;
        gettimeofday(&tv, NULL);
        int    beforetime = tv.tv_sec*1000    + tv.tv_usec/1000;
        int    *source    = (int *)malloc(3*1024*1024);
        int    *dest  = (int *)malloc(3*1024*1024);
        memcpy(dest, source, 3*1024*1024);
        gettimeofday(&tv, NULL);
        int    latetime = tv.tv_sec*1000 +    tv.tv_usec/1000;//毫秒
        printf("the time is:%ld\n", (latetime-beforetime));
        free(source);
        free(dest);
最终这样子,谢庄工

封锁记忆

0个粉丝

39

问答

0

专栏

1

资料

封锁记忆 2018-09-06 14:35:20
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=104184&ptid=51769]zhuangweiye 发表于 2018-8-22 12:00[/url]
个人感觉memcpy后面调用一次gettimeofday(&tv, NULL)会比较好[/quote]

庄工,有个问题请你解答一下:[url]http://bbs.ebaina.com/forum.php?mod=viewthread&tid=52053&extra=[/url]

谢谢

gqfj

0个粉丝

19

问答

0

专栏

1

资料

gqfj 2018-08-22 13:24:49
认可0
顶!!!:):)

hero

0个粉丝

1

问答

0

专栏

0

资料

hero 2018-08-22 14:13:04
认可0
:victory::victory::victory::victory::victory:
或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
+ 添加网盘链接/附件

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

易百纳技术社区