当前位置: 首页 > news >正文

wordpress 插件太多网站seo文章该怎么写

wordpress 插件太多,网站seo文章该怎么写,企业网站建设的目的,千图网app下载最近遇到个比较经典的案例,在c#中调用yara进行文件检测,yara是c编写的一个非常强大库,github有个大佬用c#对其进行了封装,使其能在跨平台下,只需编译yara的so或dll就能直接跑。但总是在Release版本下时不时就崩溃&…

最近遇到个比较经典的案例,在c#中调用yara进行文件检测,yara是c编写的一个非常强大库,github有个大佬用c#对其进行了封装,使其能在跨平台下,只需编译yara的so或dll就能直接跑。但总是在Release版本下时不时就崩溃,而且崩的位置非常奇怪,在Debug版本下不会崩,分析了好久终于找到了原因

https://github.com/airbus-cert/dnYara

然后它提供了官方demo,看起来是没有问题的,但实际隐藏了个非常难排查的bug。

根据yara的调用说明,需要做全局初始化,而dnyara把初始化封装在了YaraContext中,并实现了Idisposable。可以看到在它的demo中,对ctx没有任何的引用,成为了一个悬置的变量。在下面Compile或者ScanFile的时候,就总是报内存访问异常。

起初还以为是yara c代码上的问题,但看了下它源码,发现这一段调用,没有明显的逻辑或者内存上的错误,那么就往.net上排查。突然想到有个GC线程,然后猜测是gc线程在函数内部对ctx进行了回收,在Release下,回收的机制可能更快速,因为yara的规则编译和扫描都是比较耗时的。顺便在chatgpt上进行了些求证

证明我的猜测基本是对的,GC的行为受编译器优化,而未引用变量会被编译器标记,导致gc在函数体内部进行回收。 这个地方显然是dnyara封装的锅,正确的封装方式为,不实现Idispose,写一个Release函数,让别个在外面手动调用。这样既保证了,释放处对ctx有引用不会被gc回收,又在没有引用的情况下,被回收也不会造成c库的内存错误。如果不改dnyara源码,随意增加一处对ctx的强引用就可以避免这个问题了

http://www.hkea.cn/news/336937/

相关文章:

  • 厦门做网站设计电商seo优化
  • wordpress视频点播seo技术是干什么的
  • 网站推广是怎么做的网络营销专业如何
  • 平面设计线上兼职上海网站seo
  • 个性化网站定制价格今日热点
  • 做网站的艰辛免费个人网站申请
  • 网站改版需要多久网站设计与制作毕业论文范文
  • 深圳横岗网站建设网站建设的推广渠道
  • 有没有什么网站免费做名片2023年新闻小学生摘抄
  • 新网金商网站外链查询工具
  • 网站建设的进度竞价托管选择微竞价
  • 网站快速网站推广怎么做一个公司网站
  • 旅游网站模板htmlseo品牌优化整站优化
  • 方圆网站建设aso优化重要吗
  • 做购实惠网站的意义好用的搜索引擎有哪些
  • 怎么把自己笔记本做服务器做个网站搭建网站基本步骤
  • jeecms做企业网站成都网站建设公司排名
  • 沈阳招聘网站开发地推项目平台
  • 798艺术区成都seo达人
  • 平度网站建设抖音代运营收费详细价格
  • 株洲网站优化找哪家seo优化的价格
  • 找印度人做网站sem竞价推广公司
  • 山西网站推广公司网站关键词优化怎么弄
  • 微信分销是什么重庆优化seo
  • 武汉企业网站推广方案永久免费无代码开发平台网站
  • 网站开发岗位群怎样推广产品
  • 桐城市美丽乡村建设专题网站石家庄整站优化技术
  • 北京建网站的公司哪个比较好郑州seo价格
  • 进空间的网站网络营销常见的工具
  • wordpress发文章的id怎么不连续如何做好搜索引擎优化工作