首先说下,我为什么选择go吧。之前一直做的都是.net平台下的开发,常用的服务端语言就是C#。刚接触C#的时候,就喜欢上了这种高级语言,它优雅、易上手、开发周期短,很多高级特性以及自带的托管内存管理GC。。。这样用了将近3年的时间,慢慢地感受到了它的不足之处(内存占用大,体系庞杂,不够精悍,对.net framework的强依懒性,无法跨平台,当然目前.net core 开源且跨平台,性能也有很大的提升,只是坑太多,目前使用还没有普及起来)而变得无法忍受。与此同时,一个叫go的语言越来越火,于是把目光瞄准了它。据说:

  • 简洁、快速、安全
  • 并行、有趣、开源
  • 内存管理、v数组安全、编译迅速

正好解决了一部分C#无法解决的问题,最重要的还是短小精悍,简洁快速。说不如做,在工作之余,俺用试着做了了一个与之前接手的物联网项目类似的data service。这个service涉及到了消息队列RabbitMQ,NoSql Redis缓存,Mysql数据库等常用的开源项目。从学习到完成一个完整的service差不多花了断断续续将近1个月的空闲时间。程序的运行环境是win7 64bit,下面直接上图展示一下运行内存情况的先后对比吧:

1.C#(data service)

进程情况:

2.go (data service)

编译后的windows控制台:

进程情况:

可以看出,go程序的运行内存基本为c#程序的零头。(129M-7M)这里只比较了它们的内存运行情况,这也是我用它的一个非常重要的原因,当然还有IOPS,CPU,与mq,redis的通信效率等等性能的比较,等以后抽点时间,依次贴出展示。

对此项目感兴趣的新手,可以到我的git上看源码,已开源。不足之处,也欢迎各位大神批评指正!

https://gitee.com/zhaohu37/zhiot-go

转载于:https://www.cnblogs.com/gbat/p/7921388.html

golang-小试牛刀相关推荐

  1. CQRS简单入门(Golang)

    一.简单入门之入门 CQRS/ES和领域驱动设计更搭,故整体分层沿用经典的DDD四层.其实要实现的功能概要很简单,如下图. 基础框架选择了https://github.com/looplab/even ...

  2. GO语言的进阶之路-Golang高级数据结构定义

    GO语言的进阶之路-Golang高级数据结构定义 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 我们之前学习过Golang的基本数据类型,字符串和byte,以及rune也有所了解, ...

  3. Golang语言全栈开发视频教程全集

    基础课: 语言基础第01天(变量和基本类型) 语言基础第02天(运算符和流程控制) 语言基础第03天(循环函数和工程管理) 语言基础第04天(工程管理和数组) 语言基础第05天(切片和map) 语言基 ...

  4. 【Golang源码分析】Go Web常用程序包gorilla/mux的使用与源码简析

    目录[阅读时间:约10分钟] 一.概述 二.对比: gorilla/mux与net/http DefaultServeMux 三.简单使用 四.源码简析 1.NewRouter函数 2.HandleF ...

  5. 基于Golang的简单web服务程序开发——CloudGo

    基于Golang的简单web服务程序开发--CloudGo[阅读时间:约10分钟] 一.概述 二.系统环境&项目介绍 1.系统环境 2.项目的任务要求 (1)基本要求 (2)扩展要求 三.具体 ...

  6. CentOS Docker安装配置部署Golang web helloworld

    目录[阅读时间:约5分钟] 一.Docker简介 二.Docker的安装与配置[CentOS环境] 三.Docker部署Golang web helloworld 四.Docker与虚拟机的区别 五. ...

  7. 【ReactiveX】基于Golang pmlpml/RxGo程序包的二次开发

    基于Golang pmlpml/RxGo程序包的二次开发[阅读时间:约20分钟] 一.ReactiveX & RxGo介绍 1.ReactiveX 2.RxGo 二.系统环境&项目介绍 ...

  8. 【golang程序包推荐分享】分享亿点点golang json操作及myJsonMarshal程序包开发的踩坑经历 :)

    目录[阅读时间:约5分钟] 一.概述 1.Json的作用 2.Go官方 encoding/json 包 3. golang json的主要操作 二.Json Marshal:将数据编码成json字符串 ...

  9. 基于Golang的对象序列化的程序包开发——myJsonMarshal

    基于Golang的对象序列化的程序包开发--myJsonMarshal[阅读时间:约10分钟] 一.对象序列化概述 二.系统环境&项目介绍 1.系统环境 2.项目的任务要求 三.具体程序设计及 ...

  10. 【golang程序包推荐分享】go-ini、viper、godoc

    [golang程序包推荐&分享]go-ini.viper.godoc 一.go-ini 1.程序包简介 2.下载安装 3.简单使用[截取自官网] 二.viper 1.程序包简介 2.下载安装 ...

最新文章

  1. OpenGL ES for Windows Mobile
  2. Java泛型初探————泛型通配
  3. Objective C学习总结(二)
  4. MiniDao支持ID自增主键策略,使用讲解
  5. 信息化基础建设 工作流开发
  6. 【带着canvas去流浪(6)】绘制雷达图
  7. Java 15 即将到来,新特性速览!
  8. java 判断字符串是否是整数
  9. golang 之 import 和 package 的使用
  10. 内存泄漏检查工具 Visual Leak Detector(VLD)
  11. html 图片滑动验证码,html+jQuery实现拖动滑块图片拼图验证码插件【移动端适用】...
  12. 青果信息系统操作问题
  13. element-ui表格合并数据相同行
  14. 向传奇致敬,向约翰·纳什和他的妻子艾丽西亚致敬,缔造了数学和爱的传奇
  15. poscms清除html,POSCMS开源内容管理系统 v3.6.0 升级说明
  16. 《炬丰科技-半导体工艺》 硅光电子器件上的单片砷化铟量子点
  17. 内网安全-域横向内网漫游Socks代理隧道技术
  18. sqlserver dba
  19. 带空格直角三角形图案的输出-c++
  20. 微信小程序使用video组件时的一些坑

热门文章

  1. 记一次安装完nvidia驱动后进不去系统的经历
  2. 聊聊高并发长连接架构:百万在线的美拍直播弹幕系统如何实现
  3. 一文读懂IIR和FIR
  4. (一)PUN 2基本介绍
  5. 寿险常见核算科目及场景分录
  6. 东拉西扯:王建硕主义
  7. Codeforces 1492 E Almost Fault-Tolerant Database
  8. 详解RNN(数据解释、结构、计算、优缺点)
  9. CDH运维常见问题-Failed to connect to newly launched supervisor.XX
  10. 马云确定放弃 VIE 架构所有权;ofo 国庆烧钱 7 亿;Facebook 面临 16 亿罚单 | 极客头条...