golang-小试牛刀
首先说下,我为什么选择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-小试牛刀相关推荐
- CQRS简单入门(Golang)
一.简单入门之入门 CQRS/ES和领域驱动设计更搭,故整体分层沿用经典的DDD四层.其实要实现的功能概要很简单,如下图. 基础框架选择了https://github.com/looplab/even ...
- GO语言的进阶之路-Golang高级数据结构定义
GO语言的进阶之路-Golang高级数据结构定义 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 我们之前学习过Golang的基本数据类型,字符串和byte,以及rune也有所了解, ...
- Golang语言全栈开发视频教程全集
基础课: 语言基础第01天(变量和基本类型) 语言基础第02天(运算符和流程控制) 语言基础第03天(循环函数和工程管理) 语言基础第04天(工程管理和数组) 语言基础第05天(切片和map) 语言基 ...
- 【Golang源码分析】Go Web常用程序包gorilla/mux的使用与源码简析
目录[阅读时间:约10分钟] 一.概述 二.对比: gorilla/mux与net/http DefaultServeMux 三.简单使用 四.源码简析 1.NewRouter函数 2.HandleF ...
- 基于Golang的简单web服务程序开发——CloudGo
基于Golang的简单web服务程序开发--CloudGo[阅读时间:约10分钟] 一.概述 二.系统环境&项目介绍 1.系统环境 2.项目的任务要求 (1)基本要求 (2)扩展要求 三.具体 ...
- CentOS Docker安装配置部署Golang web helloworld
目录[阅读时间:约5分钟] 一.Docker简介 二.Docker的安装与配置[CentOS环境] 三.Docker部署Golang web helloworld 四.Docker与虚拟机的区别 五. ...
- 【ReactiveX】基于Golang pmlpml/RxGo程序包的二次开发
基于Golang pmlpml/RxGo程序包的二次开发[阅读时间:约20分钟] 一.ReactiveX & RxGo介绍 1.ReactiveX 2.RxGo 二.系统环境&项目介绍 ...
- 【golang程序包推荐分享】分享亿点点golang json操作及myJsonMarshal程序包开发的踩坑经历 :)
目录[阅读时间:约5分钟] 一.概述 1.Json的作用 2.Go官方 encoding/json 包 3. golang json的主要操作 二.Json Marshal:将数据编码成json字符串 ...
- 基于Golang的对象序列化的程序包开发——myJsonMarshal
基于Golang的对象序列化的程序包开发--myJsonMarshal[阅读时间:约10分钟] 一.对象序列化概述 二.系统环境&项目介绍 1.系统环境 2.项目的任务要求 三.具体程序设计及 ...
- 【golang程序包推荐分享】go-ini、viper、godoc
[golang程序包推荐&分享]go-ini.viper.godoc 一.go-ini 1.程序包简介 2.下载安装 3.简单使用[截取自官网] 二.viper 1.程序包简介 2.下载安装 ...
最新文章
- OpenGL ES for Windows Mobile
- Java泛型初探————泛型通配
- Objective C学习总结(二)
- MiniDao支持ID自增主键策略,使用讲解
- 信息化基础建设 工作流开发
- 【带着canvas去流浪(6)】绘制雷达图
- Java 15 即将到来,新特性速览!
- java 判断字符串是否是整数
- golang 之 import 和 package 的使用
- 内存泄漏检查工具 Visual Leak Detector(VLD)
- html 图片滑动验证码,html+jQuery实现拖动滑块图片拼图验证码插件【移动端适用】...
- 青果信息系统操作问题
- element-ui表格合并数据相同行
- 向传奇致敬,向约翰·纳什和他的妻子艾丽西亚致敬,缔造了数学和爱的传奇
- poscms清除html,POSCMS开源内容管理系统 v3.6.0 升级说明
- 《炬丰科技-半导体工艺》 硅光电子器件上的单片砷化铟量子点
- 内网安全-域横向内网漫游Socks代理隧道技术
- sqlserver dba
- 带空格直角三角形图案的输出-c++
- 微信小程序使用video组件时的一些坑
热门文章
- 记一次安装完nvidia驱动后进不去系统的经历
- 聊聊高并发长连接架构:百万在线的美拍直播弹幕系统如何实现
- 一文读懂IIR和FIR
- (一)PUN 2基本介绍
- 寿险常见核算科目及场景分录
- 东拉西扯:王建硕主义
- Codeforces 1492 E Almost Fault-Tolerant Database
- 详解RNN(数据解释、结构、计算、优缺点)
- CDH运维常见问题-Failed to connect to newly launched supervisor.XX
- 马云确定放弃 VIE 架构所有权;ofo 国庆烧钱 7 亿;Facebook 面临 16 亿罚单 | 极客头条...