社区
C++ 语言
帖子详情
最近写了个多线程程序,但不知道为何memcpy 一个800*600*3 的数据耗时500多毫秒
大大的道道的
2017-03-17 01:55:46
大多时候拷贝这个数据耗时1-5ms , 但是偶尔会出现耗时500ms 的情况,请问大概可能是什么原因??
有加锁,拷贝数据长度一直都是800*600*3。。
...全文
766
6
打赏
收藏
最近写了个多线程程序,但不知道为何memcpy 一个800*600*3 的数据耗时500多毫秒
大多时候拷贝这个数据耗时1-5ms , 但是偶尔会出现耗时500ms 的情况,请问大概可能是什么原因?? 有加锁,拷贝数据长度一直都是800*600*3。。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
大大的道道的
2017-03-17
打赏
举报
回复
@vnvlyp 多谢, 大小固定的。。 问题好像查到了,好像是哪个地方内存没释放造成的。。。 当内存大于90%之后,memcpy偶尔就会耗时非常长。。。
vnvlyp
2017-03-17
打赏
举报
回复
你这个memcpy的大小是固定的800 * 600 * 3字节? 还是说运行的时候会有变化?
大大的道道的
2017-03-17
打赏
举报
回复
@paschen 多谢, 今天才知道有这货。。。。不过我程序是在linux下跑的,用vs做编辑器。。。
paschen
版主
2017-03-17
打赏
举报
回复
VS有个性能分析,可以统计哪些语句用时多
大大的道道的
2017-03-17
打赏
举报
回复
@vnvlyp 你好, 这是clone_av_picture 的核心代码 , 我测试过, 偶尔会出现500ms的情况 unsigned int _t1 = chsc_gettick();
memcpy(dst->data[0], src->data[0], dst->stride[0] * height);
unsigned int _t2 = chsc_gettick(); printf("copy time : %d copy size: %d\n",(int)(_t2-_t1) , dst->stride[0] * height); 那个赋值构造函数,是之前没用指针时候的注释,忘删了。。。
vnvlyp
2017-03-17
打赏
举报
回复
那你也把clone_av_picture代码贴上来啊。。不然怎么看 另外你确定
av_picture* tmp = vs.dst_q.top();
是赋值构造函数? 这不就是个指针么。。哪儿来的赋值构造函数
Win32 API下的
多线程
程序
设计实战
本文还有配套的精品资源,点击获取 简介:本文深入探讨了如何使用Win32 API在Windows平台实现
多线程
编程,涵盖了
多线程
概念、线程创建、线程同步、线程通信和线程生命周期管理。实例
程序
通过创建多个线程来执行不同功能,如用户界面更新、计算、
数据
加载和定时器任务,以提升应用
程序
的性能和响应性。 1.
多线程
概念及其重要性
多线程
编程是现代操作系统中提高
程序
...
memset对
memcpy
耗费时间的影响
源于之前几天的
一个
测试
程序
,作用是用来测试某个系统的内存访问能力,主体测试策略是分配
一个
缓冲区,然后使用
memcpy
在分配的缓冲区之间拷贝若干次,计算拷贝时间,然后在
多线程
的环境下运行多个拷贝
程序
,再次分别计算每个线程花费的时间,以此来估算系统的内存访问能力、线程调度性能以及带宽分配性能。然而,测试过程中却发生了很多问题,从而也引发了不少的思考,下面细细道来。
基本功 | 一文讲清
多线程
和
多线程
同步
多线程
编程是现代软件开发中的一项关键技术,在
多线程
编程中,开发者可以将复杂的任务分解为多个独立的线程,使其并行执行,从而充分利用多核处理器的优势。然而,
多线程
编程也带来了挑战,例如线程同步、死锁和竞态条件等问题。本篇文章将深入探讨
多线程
编程的基本概念(原子操作、CAS、Lock-free、内存屏障、伪共享、乱序执行等)、常...
科普文:搞懂
多线程
和
多线程
同步C++版
一个
进程内多个线程并发执行的情况就叫
多线程
,每个线程是
一个
独立的执行流,
多线程
是一种编程模型,它与处理器无关、跟设计有关。并行计算:充分利用多核,提升整体吞吐,加快执行速度。后台任务处理:将后台线程和主线程分离,在特定场景它是不可或缺的,如:响应式用户界面、实时系统等。我们用 2 个例子作说明。
一文讲清
多线程
和
多线程
同步
一个
进程内多个线程并发执行的情况就叫
多线程
,每个线程是
一个
独立的执行流,
多线程
是一种编程模型,它与处理器无关、跟设计有关。并行计算:充分利用多核,提升整体吞吐,加快执行速度。后台任务处理:将后台线程和主线程分离,在特定场景它是不可或缺的,如:响应式用户界面、实时系统等。我们用2个例子作说明。同一进程内的多个线程会共享
数据
,对共享
数据
的并发访问会出现(竞争状况)。协调多个线程对共享
数据
的访问,避免出现
数据
不一致的情况。
C++ 语言
65,206
社区成员
250,519
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章