go VS NET 字符串操作能力
今天拿golang 与 NET4.0 做了在字符串方面的性能比较,看看谁牛!
一、读取txt文本文件
GO的代码:
readbuf, _ := ioutil.ReadFile(userFile)
strcontent := string(readbuf)
NET的代码:
string file = @"D:\txt\1.txt";
string strcontent = File.ReadAllText(file);
他们读的都D:\txt\1.txt 文件,大小是445M(如果文件太大,超过了500M,GO进行读取的时候会出现内存溢出的异常)
GO的读取速度是在1秒左右,NET的读取速度是在2秒左右
二、字符串分割
主要对上面读取出来的字符串做Split分割的操作
go的代码:arry:=strings.Split(strcontent,"0")
NET的代码: var arry = strcontent.Split(new char[]{'0'});
go在分割上花了4秒左右,而NET则是1秒左右
三、字符串查找
主要是对字符串做Index和LastIndex操作
go的代码:strings.LastIndex(strcontent,"重庆")
net的代码:int index = strcontent.LastIndexOf("重庆");
go在Index和LastIndex操作都是1秒内完成的,而net的Index是在1秒内完成,LastIndexOf则在2秒左右。
四、字符串替换
主要是对字符串做Replace操作
go的代码:strings.Replace(strcontent,"重庆","广州",-1)
net的代码: strcontent.Replace("重庆", "广州");
go运行的时候报异常:内存溢出,NET则是在1秒左右
从上面得出go的处理字符串上还不是很成熟,对于大的字符串操作容易出异常,性能上的优势也不是很明显,在字符串分割上性能比较差。
net的字符串处理比较稳定,性能上也都还可以,所有的每个不同的操作所花的时间都相差不大,不会出现像go那样有些操作性能好,有些操作性能差。
go毕竟还是1.1的版本,还有许多需要完善的地方,未来的潜力很大,只是现在这个阶段还不太适合进入商业项目的开发,风险比较高。
go VS NET 字符串操作能力的更多相关文章
- 零基础学习C语言字符串操作总结大全
本篇文章是对C语言字符串操作进行了详细的总结分析,需要的朋友参考下 1)字符串操作 strcpy(p, p1) 复制字符串 strncpy(p, p1, n) 复制指定长度字符串 strcat(p, ...
- 《手把手教你》系列技巧篇(五十)-java+ selenium自动化测试-字符串操作-上篇(详解教程)
1.简介 自动化测试中进行断言的时候,我们可能经常遇到的场景.从一个字符串中找出一组数字或者其中的某些关键字,而不是将这一串字符串作为结果进行断言.这个时候就需要我们对字符串进行操作,宏哥这里介绍两种 ...
- 《手把手教你》系列技巧篇(五十一)-java+ selenium自动化测试-字符串操作-下篇(详解教程)
1.简介 自动化测试中进行断言的时候,我们可能经常遇到的场景.从一个字符串中找出一组数字或者其中的某些关键字,而不是将这一串字符串作为结果进行断言.这个时候就需要我们对字符串进行操作,宏哥这里介绍两种 ...
- python学习笔记(字符串操作、字典操作、三级菜单实例)
字符串操作 name = "alex" print(name.capitalize()) #首字母大写 name = "my name is alex" pri ...
- shell编程常用的截取字符串操作
1. 常用的字符串操作 1.1. 替换字符串:$ echo ${var/ /_}#支持正怎表达式 / /表示搜索到第一个替换,// /表示搜索到的结果全部替换. ...
- php字符串操作集锦
web操作, 主要就是对字符文本信息进行处理, 所以, 字符串操作几乎占了很大一部分的php操作.包括 注意strstr 和 strtr的区别? 前者表示字符串查找返回字符串,后者表示字符串中字符替换 ...
- java 字符串操作和日期操作
一.字符串操作 创建字符串 String s2 = new String("Hello World"); String s1 = "Hello World"; ...
- [No000078]Python3 字符串操作
#!/usr/bin/env python3 # -*- coding: utf-8 -*- '''Python 字符串操作 string替换.删除.截取.复制.连接.比较.查找.包含.大小写转换.分 ...
- Python 字符串操作及string模块使用
python的字符串操作通过2部分的方法函数基本上就可以解决所有的字符串操作需求: python的字符串属性函数 python的string模块 1.字符串属性方法操作: 1.>字符串格式输出对 ...
随机推荐
- Source InSight context 窗口丢失的解决办法
我没关si的情况下强制关机导致的 Source InSight context 窗口丢失的解决办法 (2010-09-03 13:35:45) 转载▼ 今天早晨改改CLI,上了趟WC,回来发现 ...
- msysgit 上传文件夹,规范化的日常
在我们第一次成功的上传到github之后,要上传文件夹的我们要在msysgit里输入些什么呢? 选择要上传的文件夹前一项右键点击git bash here 进入msysgit后 首先初始化,输入 gi ...
- redis连接被拒绝
1,服务未启动: 执行:lsof -i :6379 isof-i命令查看是否开启进程 结果如下,证明开启 COMMAND PID USER FD TYPE DEVICE SIZE/OF ...
- Python条件判断if、for、while
if条件判断 if 条件判断: 逻辑操作...... ...... 判断字符串是否为空 if a.strip(): #表示字符串不为空 pass 判断是否为字典 d = dict(a=1) if is ...
- jq实现拖拽
$("body").delegate( ".msg-layer",{ mousedown: function (e) { var el = $(".m ...
- nodejs中命令行中参数的获取和解析
首先,假设有如下的命令行 node abc.js arg1 arg2 arg3,现在想在abc.js中获取后面的参数arg1.arg2.arg3… var args = process.argv.s ...
- GPU性能:光栅化、图层混合、离屏渲染
So, shouldRasterize will not affect the green/red you see using Instruments. In order to have everyt ...
- 【[SCOI2010]序列操作】
好颓啊,我竟然来写了一道恶心的板子 旁边的魏佬嘲讽我,还用欺负我 嘤嘤嘤 那就不膜魏佬了 嘤嘤嘤 这是一道无聊的板子 看到这些操作,我们看到这些操作就知道我们需要维护的东西了 首先那个最长的连续的\( ...
- [19/04/24-星期三] GOF23_创建型模式(建造者模式、原型模式)
一.建造者模式 本质:分离了对象子组件的单独构造(由Builder负责)和装配的分离(由Director负责),从而可以构建出复杂的对象,这个模式适用于:某个对象的构建过程十分复杂 好处:由于构建和装 ...
- virtualbox+vagrant学习-4-Vagrantfile-3-Minimum Vagrant Version
Minimum Vagrant Version 可以在Vagrantfile中指定一组vagrant版本需求,以强制人们使用带有Vagrantfile文件的vagrant特定版本.这可以帮助解决使用带 ...