各种语言split函数的运行时间(java,python,matlab)

24 篇文章 0 订阅
2 篇文章 0 订阅

随机生成字符串的代码: 

from random import choice
import string

def GenString(length=100000, chars=string.ascii_letters + string.digits + ' '):
    return ''.join([choice(chars) for i in range(length)])

if __name__ == "__main__":
    f = open('s.txt', 'w')
    f.write(GenString(int(1e7)))

python 3.5

import datetime
import re

f = open('s.txt', 'r')
s = f.read()
f.close()

starttime = datetime.datetime.now()
res = s.split(' ')
endtime = datetime.datetime.now()
print((endtime - starttime).microseconds)

starttime = datetime.datetime.now()
res2 = re.split(' ', s)
endtime = datetime.datetime.now()
print((endtime - starttime).microseconds)

运行3次结果:

matlab 2018a

f = fopen('s.txt','r');
s = fgetl(f);
fclose(f);
tic
S1 = split(s, " ");
toc
tic
S2 = strsplit(s, " ");
toc
tic
S3 = regexp(s, " ", 'split');
toc

运行3次结果:

Java (jdk-1.8)

 

import java.io.BufferedReader;
import java.io.FileReader;
import java.time.LocalDateTime;
import java.time.temporal.ChronoUnit;

public class Main6 {
	public static void main(String[] args) throws Exception{
            FileReader reader = new FileReader("D:\\workspace\\Main\\s.txt");
            BufferedReader br = new BufferedReader(reader);  
            String line = br.readLine();
            LocalDateTime fromDate= LocalDateTime.now();
            String[] strs = line.split(" ");
            LocalDateTime toDate= LocalDateTime.now();
            long microseconds = ChronoUnit.MICROS.between(fromDate, toDate);
            System.out.println(microseconds);
            br.close();
            reader.close();
	}
}

运行3次结果:

从结果可知,运行时间 Matlab 大于 Java 略大于 Python,这说明Matlab的在字符串的运行效率比较低

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值