Closed zhangzuoxing closed 2 years ago
模型载入时间主要是消耗在讲wenet_param.bin这个450MB大小的文件从硬盘读取到内存中。理论上每次启动fastasr时,都从硬盘拷贝450MB至内存中,结束fastasr时会将内存释放掉。但是由于linux的缓存机制,内存只是表面上被释放了,而450MB的模型数据还在内存中,当linux系统中其他应用程序需要内存,而linux又没有多余的内存了,才会将这部分缓存给其他应用程序。
所以理论上当第一次执行完程序后,后面几次模型的载入时间是很短暂的。但是由于你用了docker,并且主机的资源的内存不是特别充裕的情况下,是会出现模型加载时间波动的情况的。
之前在一个容器中已经编译完成,换了镜像和容器后,代码未编译。连续执行几次的结果如下: Audio time is 4.996812 s. Model initialization takes 0.461134s result: "我认为跑步最重要的就是给我带来了身体健康" Model inference takes 2.875384s. root@73f4a5fab136:/home/zzx/FastASR# ./fastasr zh.wav Audio time is 4.996812 s. Model initialization takes 4.263952s result: "我认为跑步最重要的就是给我带来了身体健康" Model inference takes 4.264060s. root@73f4a5fab136:/home/zzx/FastASR# ./fastasr zh.wav Audio time is 4.996812 s. Model initialization takes 6.293821s result: "我认为跑步最重要的就是给我带来了身体健康" Model inference takes 3.684860s. root@73f4a5fab136:/home/zzx/FastASR# ./fastasr zh.wav Audio time is 4.996812 s. Model initialization takes 7.392206s result: "我认为跑步最重要的就是给我带来了身体健康" Model inference takes 4.314208s.