---
title: 合理设置队列深度，减少硬件资源浪费，提升性能
description: "可使用媒体数据处理V2版本接口，配置VPC队列深度，队列深度范围[10，350]之间。用户业务下发任务时，若VPC队列满后，会反压阻塞任务下发，影响性能。"
url: https://www.hiascend.com/document/detail/zh/canncommercial/latest/programug/acldevg/aclcppdevg_000085.html
sourcePath: /source/zh/canncommercial/900/programug/acldevg/aclcppdevg_000085.html
indexId: 3444b8bf9810328c69dd6f8bcff1b6f4d14d49cb1f539d0329df8756ebe3f51770
---
# 合理设置队列深度，减少硬件资源浪费，提升性能

#### 背景说明

可使用媒体数据处理V2版本接口，配置VPC队列深度，队列深度范围[10，350]之间。用户业务下发任务时，若VPC队列满后，会反压阻塞任务下发，影响性能。


#### 基本原理

适当加大VPC队列深度，可以缓解用户业务下发任务与VPC内部任务处理相互之间性能波动的影响。

- 如果用户短时间内下发任务多于VPC通道处理速度，则多出来的任务会缓存在队列中，不会阻塞用户继续下发任务；
- 如果短时间内用户下发任务较少，则VPC可以处理队列中缓存的任务，不会造成空闲，导致硬件资源浪费。


用户可基于业务下发任务的速度与VPC单通道处理的性能适当调整队列任务深度：

- 用户业务创建一个通道，使用多个线程往同一通道下发任务，且下发任务数超过上面单通道参考性能，则建议用户将队列深度设大；
- 用户业务创建一个通道，只有一个线程往该通道下发任务，且为下发一次任务，获取一次结果，串行执行。该情况通道任务不会堆积，不必设大，保持默认即可。


#### 使用说明

调用hi_mpi_vpc_create_chn接口或hi_mpi_vpc_sys_create_chn接口创建VPC通道时，通过hi_vpc_chn_attr结构体内的attr参数设置队列深度。

您可以单击vpc_sample(https://gitee.com/ascend/samples/tree/master/cplusplus/level1_single_api/7_dvpp/vpc_sample)获取样例。关于VPC队列深度设置示例代码，参见sample_vpc.cpp中queue_len参数。
