开始试用微软的visualstudio tfs

之前的私有代码托管都是放在bitbucket的。

说实话,bitbucket是个不错的服务。但是和github同质化太严重了。

和github同质化严重的,之前还有code.google.com和codeplex,现在都已经在欢声笑语中打出了GG了。

所以,虽然已经用了好几年bitbucket了,但在知乎上看了大软吹轮子哥推荐,还是试用一下。

到目前为止,感觉还算良好

发布于
2018-01-31

https的效率影响

blog重构后,在本地跑了下性能测试。发现https,至少是nginx的默认设置对效率的影响还是很大的。

本地环境:rmbp 13,2014 mid 中配

debian testing,nginx version: nginx/1.13.8

测试结果:

使用证书和不使用证书,在某些情况下能有一个数量级,也就是10倍的效率差距。

测试结论:

普通应用全上https证书自然是没问题的,毕竟前端的负载均衡是最容易扩充的。真的要求极限性能的地方,比如内网验证服务,还是要考虑下的。成本敏感的话,全站https还是需要考虑下的。

测试数据:

直连:

ab -n 10000 -c 100 http://127.0.0.1:8000/site/blogi/150-

Requests per second: 19273.02 [#/sec] (mean) 

nginx反代:

ab -n 10000 -c 100 http://local.jarlyyn.com:1000/site/blogi/150-

Requests per second: 12578.55 [#/sec] (mean)

nginx https(let's encrypt证书)反代:

ab -n 10000 -c 100 https://local.jarlyyn.com/site/blogi/150-

Requests per second: 1173.36 [#/sec] (mean)

nginx配置:


server {


   ssl on;


   ssl_certificate_key /ssl/local.jarlyyn.com.key;


   ssl_certificate /ssl/local.jarlyyn.com.fullchain.crt;


   server_name local.jarlyyn.com;


   listen 443 http2;


   access_log  off;



location / {


   proxy_set_header X-Real-IP $remote_addr;


   proxy_set_header X-Forwarded-For $remote_addr;


   proxy_set_header Host $host;


   proxy_pass http://127.0.0.1:8000;


}



}



发布于
2018-01-27

记录:golang中错误在for range中对值使用了指针。

某段程序出错,最后定位到错误在大概这样的结构

    for _, v := range data {
        c <- &v
    }


这样,整个cannel里,都只有最后一个v值

整理了下思路,也很好理解。

这样的代码某种角度相当于

{
var v int
    for _, v = range data {
        c <- &v
    }
}   


而非

    for _, v = range data {
        var v int
        c <- &v
    }   


那自然都是最后一个值了。

作为一个每个循环中都要使用的值,自然不可能不停的创建新的。这太不环保。

但直接的写法里比较难直接看出来。

记录下,以后至少记得解决的方向

发布于
2018-01-08

记录:通过golang的reflect包创建value的指针

这个问题困扰了我一定时间,搜了一圈后发先自己2了

先用New创建空指针

然后给指针的Elem设置为具体的值。

主要一直以为New出来的对象没发用,是个zero value,到处panic,没反映过来elem还是可以用来set的。

其实想想也是,如果没法赋值的话,这个New函数有什么用……

大概代码:

    var v = mapvalue.MapIndex(reflect.ValueOf(key))
    var vp = reflect.New(v.Type())
    vp.Elem().Set(v)
发布于
2018-01-03

用nssm为windows添加服务

最近牵涉到需要在为客户做一个提供api转发的守护程序,研究了下什么方法最方便,立刻看中了nssm

nssm有命令行以及图形界面,通过简单的bat程序就能非常容易的做一个注册服务的安装程序。

具体网址:

https://nssm.cc/

发布于
2017-09-29