perl 是否有比split函数更高效的拆分数据的方法?
答案:2 悬赏:0 手机版
解决时间 2021-04-14 23:26
- 提问者网友:wodetian
- 2021-04-14 00:47
perl 是否有比split函数更高效的拆分数据的方法?
最佳答案
- 五星知识达人网友:污到你湿
- 2021-04-14 01:09
perl只有split一个函数分割字符串,没有完成同样功能的其它函数了。split因为要使用正则,要启动正则引擎,开销当然要大一点。
如果想加快速度,只有自己用index搜索|,然后用substr获取指定的字段,自己编程循环搜索来代替split的功能,理论上效率要提高一点,但是能提高多少只有你自己实践了才知道。追问我测试了一下用.index搜索.效率也不高. index好像不能指定.第几次搜索的结果吧..比如.我要找第5个字段..那就要搜索 | 五次.才能找到第五个字段的位置.. 这样的循环效率也不高..追答是的,需要不断循环,所以效率和使用正则相比,提高可能不太明显。
但是,即使用汇编、用C语言,也只能这样搜索,使用FOR循环一次性搜索出需要的所有字段,效率上可能再提高一点点。不过,我认为,影响效率的不应该是split,因为你大量从文件里面读写,磁盘IO才是效率的关键吧,你可以这样测试,把你现在的split语句复制一行,让计算机执行两次split,看看时间能增加多少,如果增加的微乎其微,那么说明瓶颈确实不是split。
如果想加快速度,只有自己用index搜索|,然后用substr获取指定的字段,自己编程循环搜索来代替split的功能,理论上效率要提高一点,但是能提高多少只有你自己实践了才知道。追问我测试了一下用.index搜索.效率也不高. index好像不能指定.第几次搜索的结果吧..比如.我要找第5个字段..那就要搜索 | 五次.才能找到第五个字段的位置.. 这样的循环效率也不高..追答是的,需要不断循环,所以效率和使用正则相比,提高可能不太明显。
但是,即使用汇编、用C语言,也只能这样搜索,使用FOR循环一次性搜索出需要的所有字段,效率上可能再提高一点点。不过,我认为,影响效率的不应该是split,因为你大量从文件里面读写,磁盘IO才是效率的关键吧,你可以这样测试,把你现在的split语句复制一行,让计算机执行两次split,看看时间能增加多少,如果增加的微乎其微,那么说明瓶颈确实不是split。
全部回答
- 1楼网友:妄饮晩冬酒
- 2021-04-14 01:33
在香港一般是420HKD一两
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯