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
golang-小试牛刀的更多相关文章
- Golang在视频直播平台的高性能实践
http://toutiao.com/i6256894054273909249/ 熊猫 TV 是一家视频直播平台,先介绍下我们系统运行的环境,下面这 6 大服务只是我们几十个服务中的一部分,由于并发量 ...
- Golang在视频直播平台的高性能实践(含PPT下载)
熊猫 TV 是一家视频直播平台,先介绍下我们系统运行的环境,下面这 6 大服务只是我们几十个服务中的一部分,由于并发量与重要性比较高,所以成为 golang 小试牛刀的首批高性能高并发服务. 把大服务 ...
- Golang框架beego电影网爬虫小试牛刀
学习了一段时间golang,又参考课程学习了beego开发网站爬虫,项目的目录结构是: 采集的目标是豆瓣网电影,入口地址是:https://movie.douban.com/subject/19008 ...
- Golang框架Beego在Windows环境下小试牛刀
Beego官网beego官网 : https://beego.me/github : https://github.com/beego Beego安装前提: ①Go 1.1+ 以确保所有功能的正常使用 ...
- GO语言的进阶之路-Golang高级数据结构定义
GO语言的进阶之路-Golang高级数据结构定义 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 我们之前学习过Golang的基本数据类型,字符串和byte,以及rune也有所了解, ...
- GO语言的进阶之路-Golang字符串处理以及文件操作
GO语言的进阶之路-Golang字符串处理以及文件操作 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 我们都知道Golang是一门强类型的语言,相比Python在处理一些并发问题也 ...
- Golang的交互模式进阶-读取用户的输入
Golang的交互模式进阶-读取用户的输入 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 读写数据除了 fmt 和 os 包,我们还需要用到 bufio 包来处理缓冲的输入和输出. ...
- CQRS简单入门(Golang)
一.简单入门之入门 CQRS/ES和领域驱动设计更搭,故整体分层沿用经典的DDD四层.其实要实现的功能概要很简单,如下图. 基础框架选择了https://github.com/looplab/even ...
- Golang字符串处理以及文件操作
一.整数 1.int与uint的初值比较以及其大小. 1 /* 2 #!/usr/bin/env gorun 3 @author :xxxx 4 Blog:http://www.cnblogs.com ...
- Golang的变量定义及使用案例
Golang的变量定义及使用案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.变量的定义 package main import "fmt" func m ...
随机推荐
- bzoj 3408 热浪 最短路
一道最短路的模板题,就当练习一下SPFA和dijkstra了 SPFA #include<bits/stdc++.h> using namespace std; struct edge{ ...
- HDU-1225 Football Score 模拟问题(水题)
题目链接:https://cn.vjudge.net/problem/HDU-1225 水题 代码 #include <algorithm> #include <string> ...
- CF718C Sasha and Array(线段树维护矩阵)
题解 (不会矩阵加速的先去学矩阵加速) 反正我想不到线段树维护矩阵.我太菜了. 我们在线段树上维护一个区间的斐波那契的列矩阵的和. 然后询问时提取每个符合题意列矩阵的答案项(不是列矩阵存了两项吗,一个 ...
- 紫书 习题 10-10 UVa 1645(递推)
除了根节点以外,有n-1个节点,然后就看n-1的因数有那些,所有因数加起来(递推)就好了. #include<cstdio> #define REP(i, a, b) for(int i ...
- Linux查看当前正在执行的进程
Linux查看当前正在执行的进程 youhaidong@youhaidong-ThinkPad-Edge-E545:~$ ps PID TTY TIME CMD 2576 pts/0 00:00:00 ...
- 用motion实现家庭视频监控
需求?当然不是为了艳照.你们这些猥琐的人类! 毕竟家里总会有没人的时候,出门走到半路忘记煤气灶是不是关了,还得回去看看. 在这个科技以人为本的时代,当然应该是拿出智能手机联网看看啦.还有万一有人闯空门 ...
- Unity multiplayer
using UnityEngine; using System.Collections; public class multiplayer_Button : MonoBehaviour { void ...
- poj1062 Bellman 最短路应用
昂贵的聘礼 Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 41066 Accepted: 11959 Descripti ...
- ControlDesigner
GetHitTest https://stackoverflow.com/questions/7762397/how-do-i-click-a-usercontrols-child-in-design ...
- 22. Angular 中用 a 标签 href 路由时在浏览器中显示异常 "%2F" 路由失败问题
转自:https://blog.csdn.net/duansale/article/details/77455355 <a href="#/index">index&l ...