准备拿一个简单的go 项目练手

以Golang 为核心,建立一个小项目,选一下可能要用到的东西

准备拿一个简单的go 项目练手

语言

golang

数据库

ssdb 一般各种语言都不是性能的瓶颈,数据库才是。都用go 了,当然选NoSQL。

json 解析

go 标准库 或 go-ujson 目前没有更快的,go 对json map 转换速度和python对 json dict 转换速度没可比性 这个结果让我选则NoSQL 很纠结,如果用NoSQL 将会有大量的json 数据转换,而又不想用庞大的MongoDB,其性能也一般。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
go 1.4.2

标准库 loads  121.017531ms
go-ujson loads  63.217203ms
simplejson loads  90.202043ms
标准库 dumps  88.908435ms

python 2.7.3

simplejson
Loads Taken 14.655828476ms
Dumps Taken 28.5069942474ms

ujson
Loads Taken 12.7279758453
Dumps Taken 13.9889717102

json
Loads Taken 36.0250473022
Dumps Taken 23.5030651093

markdown

https://github.com/knieriem/markdown

明显优于python

1
2
3
4
5
6
7
8
9
10
11
12
python

misaka 488.649129868 ms
markdown2 68.4613540173 s
markdown 40.3043971062 s

go

knieriem/markdown 35.854568 ms
blackfriday.MarkdownBasic 1.098207145 s
blackfriday.MarkdownCommon 1.607117325 s
opennota/markdown 3.277178642s

ssdb go SDK

github.com/eryx/lessgo/data/hissdb 比 https://github.com/ego008/ssdb.py 慢一点点

1
2
3
4
每秒get or set 次数
go / python 
get 13888 / 18181
set  10638 / 11904

这个不接近现实环境,差异主要来自报文解析效率。

本文网址: https://pylist.com/topic/101.html 转摘请注明来源

Suggested Topics

一个简单高效的LRU 缓存,golang 实现

LRU(Least recently used,最近最少使用)是根据数据的历史访问记录来进行淘汰数据,其核心思想是“如果数据最近被访问过,那么将来被访问的几率也更高”。...

3行 Python 代码解简单的一元一次方程

一元一次方程:只含有一个未知数(即“元”),并且未知数的最高次数为1(即“次”)的整式方程叫做一元一次方程(英文名:`linear equation with one unknown`)。...

用Tornado 构建一个 Comet 应用

Comet -- 基于 HTTP 长连接、无须在浏览器端安装插件的“服务器推”技术为“Comet”,这里介绍用Tornado 构建一个 Comet 应用的经验。...

Leave a Comment