今天拿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 字符串操作能力的更多相关文章

  1. 零基础学习C语言字符串操作总结大全

    本篇文章是对C语言字符串操作进行了详细的总结分析,需要的朋友参考下 1)字符串操作 strcpy(p, p1) 复制字符串 strncpy(p, p1, n) 复制指定长度字符串 strcat(p, ...

  2. 《手把手教你》系列技巧篇(五十)-java+ selenium自动化测试-字符串操作-上篇(详解教程)

    1.简介 自动化测试中进行断言的时候,我们可能经常遇到的场景.从一个字符串中找出一组数字或者其中的某些关键字,而不是将这一串字符串作为结果进行断言.这个时候就需要我们对字符串进行操作,宏哥这里介绍两种 ...

  3. 《手把手教你》系列技巧篇(五十一)-java+ selenium自动化测试-字符串操作-下篇(详解教程)

    1.简介 自动化测试中进行断言的时候,我们可能经常遇到的场景.从一个字符串中找出一组数字或者其中的某些关键字,而不是将这一串字符串作为结果进行断言.这个时候就需要我们对字符串进行操作,宏哥这里介绍两种 ...

  4. python学习笔记(字符串操作、字典操作、三级菜单实例)

    字符串操作 name = "alex" print(name.capitalize()) #首字母大写 name = "my name is alex" pri ...

  5. shell编程常用的截取字符串操作

    1.          常用的字符串操作 1.1.           替换字符串:$ echo ${var/ /_}#支持正怎表达式 / /表示搜索到第一个替换,// /表示搜索到的结果全部替换. ...

  6. php字符串操作集锦

    web操作, 主要就是对字符文本信息进行处理, 所以, 字符串操作几乎占了很大一部分的php操作.包括 注意strstr 和 strtr的区别? 前者表示字符串查找返回字符串,后者表示字符串中字符替换 ...

  7. java 字符串操作和日期操作

    一.字符串操作 创建字符串 String s2 = new String("Hello World"); String s1 = "Hello World"; ...

  8. [No000078]Python3 字符串操作

    #!/usr/bin/env python3 # -*- coding: utf-8 -*- '''Python 字符串操作 string替换.删除.截取.复制.连接.比较.查找.包含.大小写转换.分 ...

  9. Python 字符串操作及string模块使用

    python的字符串操作通过2部分的方法函数基本上就可以解决所有的字符串操作需求: python的字符串属性函数 python的string模块 1.字符串属性方法操作: 1.>字符串格式输出对 ...

随机推荐

  1. matlab中的knn函数

    knn 最邻近分类 Class = knnclassify(test_data,train_data,train_label, k, distance, rule) k:选择最邻近的数量 distan ...

  2. [EffectiveC++]item16:Use the same form in corresponding uses of new and delete

  3. 解读ARM成功秘诀:薄利多销推广产品

    解读ARM成功秘诀:薄利多销推广产品 2013年07月04日 15:04   新浪科技 微博    我有话说(2人参与)   导语:美国电子杂志Slate周一发表署名 法哈德·曼约奥(Farhad M ...

  4. SuperSocket.ClientEngine介绍

    项目地址:https://github.com/kerryjiang/SuperSocket.ClientEngine 其中需要引入的SuperSocket.ProtoBase项目:SuperSock ...

  5. Linux基础入门 - 2

    第三节 用户及文件权限管理 3-1.Linux用户管理 Linux 是一个可以实现多用户登陆的操作系统,他们共享一些主机的资源,但他们也分别有自己的用户空间,用于存放各自的文件.但实际上他们的文件都是 ...

  6. python新建以时间命名的目录

    1.新建三级目录,第一级是去年的年份,第二级是去年的月,第三级为去年的日,在日的文件中写入今年的时分秒 import os import time import shutil def create_f ...

  7. PhoneGap API 之事件处理_双击返回键退出程序

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  8. UIView 中 hidden、alpha、clear color 与 opaque 的区别

    透明度与图层混合相关,影响到图片绘制的效率. hidden 此属性为 BOOL 值,用来表示 UIView 是否隐藏.关于隐藏大家都知道就是让 UIView 不显示而已,但是需要注意的是: 当前 UI ...

  9. 消息中间件--"rocketmq"01之环境搭建

    前置知识 ssh工具 连接linux工具SecureCRT 颜色设置,参考 中文乱码,参考 Linux相关知识 centos7 防火墙firewalld的基本使用,参考 启动: systemctl s ...

  10. Kali-linux渗透攻击应用

    前面依次介绍了Armitage.MSFCONSOLE和MSFCLI接口的概念及使用.本节将介绍使用MSFCONSOLE工具渗透攻击MySQL数据库服务.PostgreSQL数据库服务.Tomcat服务 ...