2014-07-18 刘太华
Golang 看了几天golang, 蛋疼的把以前一个PY的日志处理程序,用golang重写了, 很简单的一个小程序. 用golang重写涉及到, 一些自有特定的string类型的日志, 先是转换成json, 用到simplejson模块, json, err := simplejson.Loads(subStr), 后面发现用map类型实现, 会更优雅一点: byt := []byte(subStr) var dat map[string]interface{} if err:= json.Unmarshal(byt, &dat); err != nil{ panic(err) 继续阅读 »
2014-07-18 刘太华
上代码: {} package main import ( "fmt" ) func xrange() chan int { var ch chan int = make(chan int) go func() { for i := 2; ; i++ { fmt.Printf("xrange about to send %d\n", i) ch 继续阅读 »
2017-05-02 YongHao Hu
go
多线程的并发处理: 在有限时间内, 同时并发处理 n 个资源 ``` //from https://talks.golang.org/2012/concurrency.slide#47 c := make(chan Result) go func() { c 继续阅读 »
2016-10-28 ruki
简介 Benchbox是一个基准测试包,基于tbox和xmake,里面包含许多针对第三方库功能的性能基准测试和对比,可以很方便的扩展测试用例和模块。 目前内置:各大开源协程库性能基准测试,后续还会陆续增加各种开源库模块的分析测试 测试报告仅供参考,测试代码或者结果上如有问题,可以提交issues 编译 请先安装: xmake 然后运行: bash $ xmake 协程切换测试报告(2个协程) Run bash $ xmake coroutine -n switch Macosx (x86_64) tbox: 10000000 switches in 205 ms, 4 继续阅读 »
2016-10-29 ruki
tbox add a coroutine library with stackfull mode and provide the following features. 1. yield 2. suspend and resume 3. sleep 4. io scheduler with (epoll, poll, kqueue, select, poll ..) 5. supports stream, http and other all io modules of tbox 6. channel 7. lock 8. semaphore 继续阅读 »
2017-02-25 Xie Jingyi
技术流水账一篇,记录踩过的坑 Channels 异构 Django Channels 官方文档宣称 channels 的最佳配置是使用其自带的服务器组件 Daphne,但在开发中我发现 daphne 处理普通请求比在 WSGI 架构下慢了好几倍,更何况使用 daphne 派发静态文件是十分不切实际的。于是我将 http.request 和 websocket.* 两个 channel 解耦,前者使用 nginx 配合 uwsgi 处理,后者使用 nginx 反向代理至 daphne 处理。这样一来便可充分利用两种架构的优势。 旧架构: 新架构: more 环境 Ubuntu Server 16.04(与开发环境相 继续阅读 »