Go语言中文网 为您找到相关结果 19

golang 记录函数执行耗时的一个简单方法。

先写一个公共函数, 比如在 common 包下有这么一个方法: // 写超时警告日志 通用方法func TimeoutWarning(tag, detailed string, start time.Time, timeLimit float64) { dis := time.Now().Sub(start).Seconds() if dis > timeLimit { log.Warning(log.CENTER_COMMON_WARNING, tag, " detailed:", detailed, "TimeoutWarning using", dis, "s") //pubstr := fmt.Sprintf("%s count %v, using %f seconds", tag,...阅读全文

博文 2015-01-29 03:00:02 ghj1976

Golang 性能忽然增加变慢10倍的现象,推测是编译器在spilt stack,导致的问题

本测试分别执行三种测试: 1.程序嵌套调用时使用int; 2.程序嵌套调用时使用int+string; 3.程序嵌套调用时使用int+interface{}; 测试脚本如下: // stackSplitTest package main import ( "fmt" "time" ) //测试函数嵌套多少次后,进行runtion.stackSplit,导致运行效率急剧下降 var C = make(chan int, 100) var F = "嵌套次数%5d,From=%5d,To=%5d,Group=%6d,耗时%7s毫秒\t%d\n" //计算函数 func sum(from int, to int) (r int) { r = 0 for i := from; i <= to; i+...阅读全文

golang版本的通用时间轮 Timewheel

一个通用的timewheel工具类 通用粗精度的timewheel,只启动一个timer,可监听任意多的到期时间,放入的用户数据可以是任何类型。 接口说明: 1. Start: 开始一个timewheel ; 2. SetCallback: 设置时间到期时的回调函数,回调函数中不可作过于耗时的操作,以免卡住timewheel的正常运行; 3. Add: 添加需要监控的对象,务必在Start调用后再调用此接口; 4. Stop: 停止此timewhee...阅读全文

教你轻松做一个响应式网站

在响应式还未流行的时候,很多企业与互联网公司都觉得响应式网站应该是大企业才用的上,大企业才有资金去投入。对于这个问题小编只能说,没错放在前段时间做一个响应式网站的确需要高投入,而且还很耗时间。但是放在今天来讲,小编可以告诉你,以现在的互联网技术,做一个响应式网站快的只需要几个小时,需要细致完成的也就几天时间。这样的发展速度,让众人所惊叹! 在响应式还未流行的时候,很多企业与互联网公司都觉得响应式网站应该是大企业才用的上,大企业才有资金去投入。对于这个问题小编只能说,没错放在前段时间做一个响应式网站的确需要高投入,而且还很耗时间。但是放在今天来讲,小编可以告诉你,以现在的互联网技术,做一个响应式网站快的只需要几个小时,需要细致完成的也就几天时间。这样的发展速度,让众人所惊叹! 现在...阅读全文

go语言_异步编程_example.01

package main import ( "log" "math/rand" "time" ) func UploadNetvalueFile(done chan bool) { //利用随机函数模拟不同文件的处理时间 r := rand.New(rand.NewSource(time.Now().UnixNano())) x := r.Intn(20) log.Println("UploadNetvalueFile: ", x) time.Sleep(time.Second * time.Duration(x)) log.Println("UploadNetvalueFile OK") done <- true } func UplaodSaleFareFile(done chan bo...阅读全文

博文 2015-06-17 23:05:56 zistxym

求指教 session.Run过后如何实时逐行读取Stdout数据

```go package main import ( "bytes" "fmt" "golang.org/x/crypto/ssh" "os" ) func main() { var bt bytes.Buffer config := &ssh.ClientConfig{ User: "test", Auth: []ssh.AuthMethod{ ssh.Password("test"), }, } client, err := ssh.Dial("tcp", "10.0.192.123", config) if err != nil { os.Exit(1) } session, err := client.NewSession() if...阅读全文

在8核cpu 15G内存的设备上开启10万个协程处理10万条数据 没有任何log打印的情况下 耗时4min为什么这么慢呀,协程并发处理感觉没用上

在8核cpu 15G内存的设备上开启10万个协程处理10万条数据 没有任何log打印的情况下 耗时4min,查看设备信息 cpu最高峰才使用141% 内存最高才占用8% ,为什么这么慢呀,协程并发处理感觉没用...阅读全文

一人耗时 2 年,收集 2000 多万数据,创建了一个提供免费翻译搜索的网站

> 作为小微开发者,难以支付高昂的翻译费用,在线翻译又难以满足精度,所以想通过复用高质量的翻译实例进行软件内容翻译,我花了两年时间收集了2000 多万条移动 app 的翻译数据,将它们做成了一个搜索网站,期望能帮助小微开发者以更低的成本更好的质量完成软件或者网页的国际化。 #### i18n 多语言语料搜索引擎 - 网址:[https://i18ns.com](https://i18ns.com/) - 功能:支持 11 国语言搜索,包括:中文、英文、西班牙文、葡萄牙文等语言。有一千多种语言数据,超 2000 多万条数据,免费提供搜索服务。 - 详细介绍:  - 中文搜索地址:[https://i18ns...阅读全文

go+chan并发执行

利用一个chan执行一个并发的任务, 整个任务的最大耗时是最耗时的那个子任务 func SendChan(data int){ t := 10 - data if data == 5{ t = 20 } time.Sleep(time.Duration(t*1e9)) C <- data } func main(){ for i:=0; i<10; i++{ go SendChan(i) } for i:=0; i<10; i++{ var data int = <- C fmt.Println("data:", data) } ...阅读全文

博文 2017-08-05 03:14:54 jinjiashan

一人耗时 2 年,收集 2000 多万数据,创建了一个提供免费翻译搜索的网站

> 作为小微开发者,难以支付高昂的翻译费用,在线翻译又难以满足精度,所以想通过复用高质量的翻译实例进行软件内容翻译,我花了两年时间收集了2000 多万条移动 app 的翻译数据,将它们做成了一个搜索网站,期望能帮助小微开发者以更低的成本更好的质量完成软件或者网页的国际化。 #### i18n 多语言语料搜索引擎 - 网址:[https://i18ns.com](https://i18ns.com/) - 功能:支持 11 国语言搜索,包括:中文、英文、西班牙文、葡萄牙文等语言。有一千多种语言数据,超 2000 多万条数据,免费提供搜索服务。 - 详细介绍: <https://i18ns.com/help.html> - 中文搜索地址:[http...阅读全文

生产者与消费者

package main import ( "fmt" "gitee.com/ha666/golibs" "github.com/astaxie/beego/logs" _ "ha666/initial" "math" "time" ) func main() { ch := make(chan int, 100000) defer close(ch) for i := 1; i < 3; i++ { go producer(fmt.Sprintf("生产者%d", i), i, ch) } time.Sleep(1 * time.Second) for i := 1; i < 5; i++ { go consumer(fmt.Sprintf("消费者%d", i), i, ch) } ti...阅读全文

博文 2017-12-22 05:07:38 ha666

关于查询程序执行时间消耗问题

写了一个线性二分查找的算法,想打印出执行的时间,时间明明在7秒以上,可却打印出2.xxms 或者 7.xxms ,总之,打印出来的数字都不到一秒。奇怪,代码如下,望大神指点: ```golang func makeRange(min, max int) []int { a := make([]int, max-min+1) for i := range a { a[i] = min + i } return a } func main() { array := makeRange(0, 1000000000) LinearySearcheT(array) } func LinearySearcheT(array []int) { defer t...阅读全文

go的time

package main import ( "fmt" "time" ) func main() { fmt.Println(time.Now()) fmt.Println(time.Now().Unix()) fmt.Println(time.Now().Second()) //程序耗时可以用结束时间-开始时间 fmt.Println(time.Now().UnixNano()) //里面的时间必须按照这些数值来 fmt.Println(time.Now().Format("02/1/2006 15:04")) fmt.Println(time.Now().Format("2006-1-02 15:04")) } 输出:2019-01-22 13:44:16.0255278 +0800 C...阅读全文

博文 2019-01-22 18:35:15 梁十八

参加扣丁学堂Java培训后一定能找到工作吗

  如今参加Java培训的小伙伴比较关心的问题大概就是今后的就业问题吧,不又少参加扣丁学堂Java培训的小伙伴询问扣丁学堂的老师,从扣丁学堂毕业后能不能找到一份高薪的好工作。本片文学小编就和大家分析一下这个问题,对Java开发感兴趣的小伙伴就随小编一起来看一下吧。   参加扣丁学堂Java培训后一定能找到工作吗?   讲真的,关于这个问题没有任何一个培训机构可以给你肯定的回答,因为给你肯定的回答既是对你的不负责也是对自己的不负责,通常Java培训机构一般都会通过就业率来证明自己的就业情况,意思就是我们的就业率很高,只要你来我们这里好好学,找份工作是不成问题的。但是如果说百分百保证,那就有夸大的成分了。   为什么有的小伙伴会问参加完Java培训机构能不能找到工作呢?其实更多的是想给自己...阅读全文

扣丁学堂Java培训简述Java后台开发技术怎么学

如今想要学习Java开发技术的人有很多,Java开发技术在后台开发中不得不说实力惊人。Java历经了20多年的磨练已经日趋完善,在后台开发这块Java技术本来就已经很成熟,所以企业对Java在后台的应用这块是特别的满意,也越发多的企业比较喜爱用Java进行后台建设。因此参加Java培训学习Java后台开发技术的人有很多,下面就随小编来了解一下Java后台开发技术怎么学吧。 Java后台开发技术应该怎么学习呢?现在学Java后台开发技术的朋友,真的不得不说,是支庞大的队伍,学Java后台开发技术的朋友可以用多来容易,因为Java后台开发技术的确是特别的火爆,但真的是每个人都能学好了Java后台开发技术吗?想想也知道,不可能,没有学好Java后台开发技术的朋友原因各式各样。 有的感觉...阅读全文