friso_split报502,php崩溃
前提:
CentOS 6.5 64位系统
friso版本 1.6.1
编译安装friso扩展
发现以下异常:
加载friso扩展后,运行一段时间后,执行php命令会报 "Segmentation fault" 异常,php-fpm无法启动,甚至php的cli模式也无法执行任何php脚本, 注释php.ini的friso扩展后恢复;
另外发现个改进点:
friso的扩展在php-fpm下无法即时加载新的词库,只能重启php-fpm,希望能改进。
最后的话:
friso的检测分词模式非常好用,也非常看好这个分词器,希望能越做越好!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
发现原因了,是因为词库中某个词太长导致的内存泄露,虽然一般情况下不会有这么长的词,但是建议可以写得更严谨一些,比如强制截断~在下不懂c,纯粹建议,狮大勿怪!
回复
应该不是的。词库中词条长度超过friso.max_len的不会被加载到内存。 没关系,感谢你的建议。
因为未曾用过centos,所以未做friso centos下的运行跟踪,我在ubuntu下工作不会出现这个情况。
friso目前的词库是在friso模块启动时加载入内存的,频繁的fork会导致一些不确定性。
检测模式是上个版本才加入的,不是是否为内存泄漏,方便的话可以跟踪下内存,或者使用"复杂模式"测试下。
friso很快会提供http接口,这对php来说可以避免很多麻烦。
感谢你的反馈和支持。