离线OCR进程QuickerOcrAgent占用内存大

使用问题 · 882 次浏览
DQ_Ye 创建于 2023-07-29 12:04

如题,不知道是不是BUG,正常普通运行是100-600MB,不知道为什么用着用着就到了2000多,最高有2700MB,设置了保活时间短(测试过10秒),过了时间,进程占用还是这么多,得手动结束

这个情况在设置了重试时间时候尤为明显(即便我改为每2秒重试一次,占用还是会慢慢变大)

不知道是不是BUG呢?正常使用完OCR功能,应该就会自动减少才对的吧?不会一直保持高占用


回复内容
CL 2023-07-30 10:28
#1

以下信息供参考。

0)观测一下,在连续使用的情况下,内存占用是稳定到一个大小,还是会无限增大(比如超过10G的占用)。

1)确保使用的是1.2.1版本的QuckerOcrAgent。

2)修改保活时间后,需要关闭QuckerOcrAgent进程后,下次使用的时候生效。

3)保活时间检测最小分辨率为5秒。 设置时间是最小保活时间,实际会大于它一些,可以等空闲20秒之后观察进程是否有退出。

4)关于内存占用,这个程序是对百度paddle引擎的封装,具体paddle怎么使用内存,没有能力获知。 大概它会对一些信息做缓存。 另外如果是c#里,释放内存是由GC垃圾回收实现的,它没有一个确切的回收时间。

5)Quicker的OCR服务也是基于这个库长期运行的,内存占用在上升一段时间之后会保持稳定。



DQ_Ye 回复 CL 2023-08-02 10:15 :

版本没问题,目前遇到最大也就3.5G左右吧,也比较大了,毕竟大部分人电脑内存不超16G

DQ_Ye 最后更新于 2023-08-02 11:09
DQ_Ye 回复 DQ_Ye 2023-08-02 12:44 :

今天又试了几次发现能自动降低维持在300+mb,就是不知道要等多久才会降低没试出来

CL 回复 DQ_Ye 2023-08-02 16:36 :

我也用工具看过了,基本都是NativeMemory,就是paddle引擎使用的内存。这部分也没有别的办法控制,只能等它自己释放了。 

回复主贴