AI行人检测对接景区票务系统请求数据库时长如何优化?

举报
TSINGSEE青犀视频 发表于 2021/10/29 16:51:14 2021/10/29
【摘要】 我们想到的解决办法是用内存来解决时间慢的问题。将一天的数据库都查找到,保存在临时的内存中,以后在分析就不会再次查找票务数据库,只要读取刚才保存的临时内存用来取数据。这个方法简单说就是用内存来换时间。

TSINGSEE青犀视频开发的行人检测功能目前已经进入与票务系统结合测试的阶段,测试期间,票务系统数据库每次请求都需要3~4秒左右,分析人数会出现程序过慢的情况。

93d1e8770e27ce049df88f42b91f3e00.png

这样会导致程序还在分析而切换视频源已经跑完的情况,也有可能取相同的数据导致崩溃问题。要解决分析过慢的问题,首先要查看以下代码情况:

3245e7d25583a066e97fd7e0a21cc77c.png

1、先搜索本地用于检测人数的数据库,再进行相邻的剔除。

2、使用循环来遍历本地人数检测的数据库。将开始时间和结束时间保存在临时的变量中,再使用该变量进行票务系统数据库查找(会导致程序出现3~4秒钟慢的情况)。

3、查找到票务数据库,进行人数检测。人数检测小于的情况,进行记录一个标志。此数组标记为需要替换的源。

4、最后还要查找历史票务系统的数据库(已开始时间和结束时间来查找,这样也会出现3~4秒慢的情况)。

注:此查找票务数据库需要链表查询,而且票务数据库的大小是几个G的数据,导致查找数据库慢也是正常的情况。

解决此问题,需要做到不要频繁地查找数据库。

我们想到的解决办法是用内存来解决时间慢的问题。将一天的数据库都查找到,保存在临时的内存中,以后在分析就不会再次查找票务数据库,只要读取刚才保存的临时内存用来取数据。这个方法简单说就是用内存来换时间。

所以以下代码,在循环前面加上读一天的票务数据库,下面循环只要处理数据就可以了,这样时间会快很多。

2eb9b103bc87b409252d8ba78f168a92.png

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。