python统计不同字符的个数_在字符串中统计中文字符个数的两种实现方式的性能比较...

本文探讨了两种在Go中统计字符串中中文字符数量的方法:使用正则表达式和`unicode.Is`。通过基准测试,发现`unicode.Is`方法在性能上优于正则表达式。测试结果显示,`unicode.Is`方法每操作耗费的纳秒数更少,内存分配也更高效。对于需要高效处理中文字符的应用,推荐使用`unicode.Is`方法。
摘要由CSDN通过智能技术生成

引言

  在go中应该有很多种方法来统计字符串中中文字符的个数。下面介绍两种方式,一种是使用正则表达式来匹配,需要使用 regexp 包;另一种是用标准库中 unicode 包自带的 unicode.Is 方法。这两种方式在使用时的性能如何,下面通过基准测试来比较一下。

1.两种方式的实现代码

875268d3720121bfb9100b0c21ea4248.png

2.两个基准测试函数

4fa72500c23f6d27e1d787b9d08a4f9c.png

3.基准测试结果

  从测试结果中,很明显可以看出,用go标准库中的 unicode.Is 方法的性能更好一些。

6945501c334d221480478ed020e425f5.png

(1).在上图中,go test 命令涉及到的几个参数的说明:

-v 表示输出测试的详细信息

-run="none" 表示确保在执行指定的基准测试函数之前没有单元测试被运行

-bench=BenchmarkUseRegexp 表示要执行的基准测试函数

-benchmem 表示在测试结果中显示每次操作从堆上分配内存的次数,以及分配内存的字节数

-benchtime="3s" 表示测试持续执行的最短时间,默认是 1 秒

(2).在上图中,第一个测试输出结果中:

111145 表示总共执行 111145 次

31107 ns/op 表示每次操作耗费 31107 纳秒

19792 B/op 表示每次操作分配 19792B 的内存

251 allocs/op 表示每次操作在堆上分配内存的次数为 251 次​

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值