建设一个很大的视频网站需要多少钱,青岛黄岛区建设工程管理局网站,wordpress下载及使用,网站项目报价单模板免费下载#xff08;一#xff09;背景 项目中依赖算法同学编写的算法模块#xff0c;他们在使用avx#xff0c;sse指令集来提高速度#xff0c;结果在一些机器上崩溃#xff0c;导致项目无法发版。
我给他们说#xff0c;我们项目中使用了谷歌的 libyuv 库#xff0c;也使用了…一背景 项目中依赖算法同学编写的算法模块他们在使用avxsse指令集来提高速度结果在一些机器上崩溃导致项目无法发版。
我给他们说我们项目中使用了谷歌的 libyuv 库也使用了avxsse指令加速在各种环境下都是运行正常的。
后来发现他们对比了 libyuv 的判断指令集的代码发现没有判断系统网速搜索了一波发现了这个文章开源库中检测当前系统是否支持AVX指令集的一个坑
也就是说某些系统OS下是不支持的需要单独判断。 二解决
1、判断avx的代码参考 libyuv 的方式来编写不要自己写有很多坑。这是发现的一处可能还有更多的坑没有发现毕竟libyuv是谷歌开发的开源库并且十分稳定了。
2、因为算法有几次都因为各种原因导致不稳定所以我们想了一个办法来解决这个通用的问题不然每次软件发版都很害怕一旦出问题了会很麻烦用户用不了了也无法升级。对用户体验是一次很大的伤害。我们的开发节奏也完全被打乱了忙着去救火。
具体的方法是我们开发了一个Demo的进程假设就要Demo.exe吧。算法模块每次更新我们先在Demo.exe中运行不在我们主进程用户真实使用的进程运行运行一段时间后如果没有崩溃崩溃后我们会上传dump供分析我们就把算法模块给主进程使用。这个相当于在使用用户环境来预跑我们的算法模块。这样即便是算法模块再不稳定也不会对用户产生实际的影响。 三其他
这个过程中因为涉及到指令集的问题所以推动他们在不同指令集的机器上先验证没有问题之后再给到我们项目中去使用之前推动过一次很难推动这次他们这么不稳定终于说服他们了他们也采购了2台设备来覆盖测试了虽然不一定完全覆盖全但是至少风险是降低了不少因为有些机器是必须崩溃的。