Qt C++ 在windows上三目运算不断增加内存

今天在做摄像头项目的时候,运行程序很卡

打开任务管理器发现程序内存一直在增加

函数内部无任何的 new 和 malloc操作

最后在nv12转rgb像素转换函数发现是因为三目运算导致内存不断增长

cpp 复制代码
r = r > 255 ? 255 : (r < 0 ? 0 : r);
g = g > 255 ? 255 : (g < 0 ? 0 : g);
b = b > 255 ? 255 : (b < 0 ? 0 : b);

最后替换了if

解决了这个问题

cpp 复制代码
if (r > 255) r = 255; if (r < 0) r = 0;
if (g > 255) g = 255; if (g < 0) g = 0;
if (b > 255) b = 255; if (b < 0) b = 0;

由于平时测试的摄像头分辨率都比较低,所以这个问题不太突出

今天换了个高分辨率的镜头才出现了这个问题

找了很久才定位到三目运算的问题

所以记录一下此问题

相关推荐
Wonderful U几秒前
基于Python+Django的智能在线考试系统:从题库管理到自动阅卷的全流程实战
开发语言·python·django
无忧.芙桃4 分钟前
数据结构之单链表
c语言·开发语言·数据结构
SilentSamsara4 分钟前
Python 服务的 K8s 部署:HPA/ConfigMap/Secret 完整配置
开发语言·python·青少年编程·容器·kubernetes
小张小张爱学习5 分钟前
Java并发编程面试题
java·开发语言
壹号用户5 分钟前
缺省参数和函数重载
c++·学习
码不停蹄的玄黓8 分钟前
JDK 自带四大命令行工具:jstat、jstack、jmap、jhat 详解
java·开发语言
ch.ju10 分钟前
Java程序设计(第3版)第四章——set方法为属性赋值
java·开发语言
创业之路&下一个五年10 分钟前
JS编程范式 \& 面向对象范式
开发语言·前端·javascript
代码中介商13 分钟前
C++11移动语义:右值引用与高效资源转移
开发语言·c++
我不是懒洋洋20 分钟前
从零实现WebSocket:实时通信的核心协议
c++