最新 | 最热门 | 最高评价

+0  Go 调度器跟踪

Tag: Go
鸟窝 发于 2016年06月15日 10:43 | 点击: 674 | 展开摘要
这是William Kennedy写的第二篇文章: Scheduler Tracing In Go, 第一篇为 Stack Traces In Go。

本文主要介绍如何跟踪Go的调度器Scheduler的活动。

介绍

我喜欢Go的原因之一就是能够产生概要(profiling)和调试信息。当你的程序运行时,GODEBUG环境变量可以产生运行时的调试信息。你可以请求垃圾回收器和调度器(scheduler)的摘要信息和细节。关键是你不需要额外创建单独的编译程序就可以实现。

查看全文: http://www.udpwork.com/item/15421.html

+0  [译]Go Stack Trace

Tag: Go
鸟窝 发于 2016年06月15日 10:43 | 点击: 689 | 展开摘要
William Kennedy写了两篇关于Go 调试的文章,非常不错,特意翻译了一下,加深记忆。本文是其中的一篇: Stack Traces In Go。 另一篇是 Scheduler Tracing In Go。

Stack Trace表示堆栈跟踪,这是一个或多个堆栈帧的有序的集合。在程序出现panic的时候你会看到控制台有Stack Trace信息打印出来。

介绍

拥有基本的调试Go程序技能可以节省程序员很大的时间来发现问题。我当然相信你可以使用log信息来跟踪问题

查看全文: http://www.udpwork.com/item/15420.html

+0  Go Channel 详解

Tag: Go
鸟窝 发于 2016年06月15日 10:43 | 点击: 522 | 展开摘要
Channel是Go中的一个核心类型,你可以把它看成一个管道,通过它并发核心单元就可以发送或者接收数据进行通讯(communication)。

它的操作符是箭头 <- 。

1
2

ch <- v // 发送值v到Channel ch中
v := <-ch // 从Channel ch中接收数据,并将数据赋值给v

(箭头的指向就是数据的流向)

就像 map 和 slice 数据类型一样, channel必须先创建再使用:

1

ch :

查看全文: http://www.udpwork.com/item/15407.html

+0  Go泛型提案

Tag: Go
鸟窝 发于 2016年06月15日 10:43 | 点击: 430 | 展开摘要
Go泛型特性已经被讨论了多次了1, Andrew Gerrand现在把这个提案加入到了Go的issue列表中2,并标记为Go2标签。当然这不代表着要将泛型加入到Go中,而是演示一个完整的提案应该是什么样子。

以下是提案的内容:

Proposal: Go should have generics

Author: Ian Lance Taylor

Created: January 2011

Last updated: April 2016

Discussion at

查看全文: http://www.udpwork.com/item/15403.html

+0  使用Golang实现Futures 和 Promises

Tag: Go
鸟窝 发于 2016年06月15日 10:43 | 点击: 455 | 展开摘要
其它语言中Future和Promise的概念大量存在, 比如Node.js、Scala、Java、C#、C++ 11、Scheme、Swift等,可以方便的实现异步执行和回调。但是在Go语言的世界里,我们是通过goroutine/channel实现这种类似的功能呢,goroutine之间可以通过channel进行通讯, 但是,如果我们还是想使用Future/Promise的功能的话,该如何实现呢?

Future,Promise或Delay是用于并发编程的一种设计模式。它们表

查看全文: http://www.udpwork.com/item/15402.html

+0  谁是最快的Go Web框架

Tag: Go
鸟窝 发于 2016年06月15日 10:43 | 点击: 3232 | 展开摘要
前几天我写了一篇文章: 超全的Go Http路由框架性能比较,利用Julien Schmidt实现的benchmark测试框架对几乎所有的go web框架的路由功能进行了比较。我本来以为对Go web框架的性能考察就告以段落了,直到我写了一段简单的代码测试Irsi,用来模拟实际产品中的处理,才发现了Julien Schmidt测试框架的问题。

这段代码是这样的:

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

查看全文: http://www.udpwork.com/item/15383.html

+0  [转]Golang自动生成版本信息

Tag: Go
鸟窝 发于 2016年06月15日 10:43 | 点击: 635 | 展开摘要
原文: Golang自动生成版本信息

需求

golang程序在build时自动生成版本信息,使用 ./helloworld –version可以查看版本和build时间

实现原理

使用链接选项-X设置一个二进制文件中可以访问的变量

实例1:

1
2
3
4
5
6
7
8

package main
import "fmt"

var Version = "No Version Provided"

func main() {
fmt.Println(

查看全文: http://www.udpwork.com/item/15382.html

+0  网站升级日志0525

Tag: First Category
s5s5 发于 2016年06月08日 14:56 | 点击: 375 | 展开摘要
原来这篇文章的草稿 5 月 25 日就有了,那么标题就不改了,最近因为在使用 HTTPS 后,网站速度太慢,想想我也是拥护热爱我党我国,所以就把网站又迁回国内,当然更要使用 腾讯云 ,内部有个 8 折优惠,一年下来 400 多,和用 5 刀一月的 VPS 差不多,而且速度快,帮你备案,更可以体验业务,吃自己的狗粮(现在我又在跟腾讯云的业务啦~~~大家快来买啊,哈哈哈~~~)……大家如果要买的话,点此链接,我也可以收到一点返利,呵呵。

迁移腾讯云

迁移其实蛮简单的,好像买了

查看全文: http://www.udpwork.com/item/15547.html

+0  GFWListToSurgeRule.js

Tag: First Category
s5s5 发于 2016年06月02日 12:29 | 点击: 460 | 展开摘要
之前做的一个小工具,转 GFWList 为 Surge Rule 。访问时会去 GFWList 拉最新的,然后转化。做了本地缓存,如果二次访问不超过 6 小时,直接用缓存的。

使用地址

http://s5s5.github.io/GFWListToSurgeRule.js/

使用说明:

不建议再用 GEOIP ,同时 FINAL 用 DIRECT,因为已经精确把该代理的都代理了。

问过作者得知四千条规则在性能上不存在问题。

源码

https://github.c

查看全文: http://www.udpwork.com/item/15534.html

+0  HTTPS站引用腾讯公益404

Tag: First Category
s5s5 发于 2016年04月20日 16:35 | 点击: 463 | 展开摘要
腾讯公益404 并不支持 HTTPS 站点的引用,为了公益事业研究了下,发现只要拉到 http://qzone.qq.com/gy/404/data.js 数据即可,但 HTTPS 站是不能直接拉非安全协议内容,所以还要在自己网站上用一个 PHP 做中转,如下:

<?php
header('Content-type: text/javascript');
$filename = 'data.js';
clearstatcache();
$lastTime = file

查看全文: http://www.udpwork.com/item/15424.html

+0  iris 真的是最快的Golang 路由框架吗?

Tag: Go
鸟窝 发于 2016年04月06日 09:18 | 点击: 788 | 展开摘要
依照我的前一篇文章(超全的Go Http路由框架性能比较)对各种Go http路由框架的比较, Iris明显胜出,它的性能远远超过其它Golang http路由框架。

但是,在真实的环境中,Iris真的就是最快的Golang http路由框架吗?

2016-04-05 更新: 我已经提交了一个Bug, 作者Makis已经做了一个临时的解决方案,性能已经恢复,所以准备使用Iris的读者不必担心。
根据我的测试,最新的Iris的测试如下:

在业务逻辑需要10毫秒时,吞吐率可

查看全文: http://www.udpwork.com/item/15367.html

+0  如何得到goroutine 的 id?

Tag: Go
鸟窝 发于 2016年04月01日 14:56 | 点击: 516 | 展开摘要
使用Java的时候很容易得到线程的名字, 比如"Thread.currentThread().getName",这样就可以进行一些监控操作或者设置线程相关的一些数据。当转向Golang开发的时候,却发现Go语言并没有提供获取当前goroutine id的操作。这是Golang的开发者故意为之,避免开发者滥用goroutine id实现goroutine local storage (类似java的"thread-local" stora

查看全文: http://www.udpwork.com/item/15366.html
|<<<2345678>>>| 一共47页, 564条记录