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

golang time 时间的加减法

time包中的Add和Sub的用法,Add用于计算某个时间之前和之后的时间点,Sub用于计算两个时间差 package main import ( "fmt" "strings" "time" ) func main() { // Add 时间相加 now := time.Now() // ParseDuration parses a duration string. // A duration string is a possibly signed sequence of decimal numbers, // each with optional fraction and a unit suffix, // such as "300ms", "-1.5h" or "2h45m". // ...阅读全文

博文 2016-11-02 10:00:03 CodyGuo

golang 计算两个时间的时间差

package main import ( "fmt" "time" ) func main() { //Add方法和Sub方法是相反的,获取t0和t1的时间距离d是使用Sub,将t0加d获取t1就是使用Add方法 k := time.Now() //一天之前 d, _ := time.ParseDuration("-24h") fmt.Println(k.Add(d)) //一周之前 fmt.Println(k.Add(d * 7)) //一月之前 fmt.Println(k.Add(d * 30)) ...阅读全文

博文 2016-02-24 12:00:11 gzw13999

golang 格式化时间为字符串

package main import ( "fmt" "reflect" "time" ) func main() { //格式化字符串为时间 test, _ := time.Parse("2006-01-02", "2013-11-11") //时间增加 after, _ := time.ParseDuration("15m") fmt.Println(test) test = test.Add(after) fmt.Println(test) //格式化时间为字符串 t3 := test.Format("2006-01-02 15:04:05") fmt.Println(t3) //格式化时间为字符串,只保留年月日 t3 = test.Format("2006-01-02") fmt....阅读全文

博文 2014-10-04 19:26:12 forrestsun

golang -- 时间日期总结

golang时间处理 相关包 "time" 时间戳 当前时间戳 fmt.Println(time.Now().Unix()) # 1389058332 str格式化时间 当前格式化时间 fmt.Println(time.Now().Format("2006-01-02 15:04:05")) # 这是个奇葩,必须是这个时间点, 据说是go诞生之日, 记忆方法:6-1-2-3-4-5 # 2014-01-07 09:42:20 时间戳转str格式化时间str_time := time.Unix(1389058332, 0).Format("2006-01-02 15:04:05") fmt.Println(str_time) # 2014-01-07 09:32:12 str格式化时间转时间戳...阅读全文

博文 2014-10-04 19:26:54 flyking

golang时间处理

golang时间处理 相关包 "time" 当前时间戳 fmt.Println(time.Now().Unix()) # 1389058332 当前格式化时间 fmt.Println(time.Now().Format("2006-01-02 15:04:05")) # 这是个奇葩,必须是这个时间点, 据说是go诞生之日, 记忆方法:6-1-2-3-4-5 # 2014-01-07 09:42:20 时间戳转str格式化时间 str_time := time.Unix(1389058332, 0).Format("2006-01-02 15:04:05") fmt.Println(str_time) # 2014-01-07 09:32:12 str格式化时间转时间戳 the_time :=...阅读全文

博文 2014-10-04 19:27:10 千山万水

Golang 优化之路——HTTP长连接

写在前面 压测的是否发现服务端TIME_WAIT状态的连接很多。 netstat -nat | grep :8080 | grep TIME_WAIT | wc -l 17731 TIME_WAIT状态多,简单的说就是服务端主动关闭了TCP连接。 IMG-THUMBNAIL TCP频繁的建立连接,会有一些问题: 三次握手建立连接、四次握手断开连接都会对性能有损耗; 断开的连接断开不会立刻释放,会等待2MSL的时间,据我观察是1分钟; 大量TIME_WAIT会占用内存,一个连接实测是3.155KB。而且占用太多,有可能会占满端口,一台服务器最多只能有6万多个端口; TCP 相关 长连接的概念包括TCP长连接和HTTP长连接。首先得保证TCP是长连接。我们就从它说起。 func (c *TCPC...阅读全文

博文 2017-06-02 09:08:08 Cyeam

Golang 获取当前时间

package main import ( "fmt" "time" ) func main() { t := time.Now() //2019-07-31 13:55:21.3410012 +0800 CST m=+0.006015601 fmt.Println(t.Format("20060102150405")) //当前时间戳 t1 := time.Now().Unix() //1564552562 fmt.Println(t1) //时间戳转化为具体时间 fmt.Println(time.Unix(t1, 0).String()) //基本格式化的时间表示 fmt.Println(time.Now().String()) //2019-07-31 13:56:35.7766729...阅读全文

博文 2019-08-09 14:39:05 LLL_小浪

Go程序GC优化经验分享

作者:达达 来源:http://1234n.com/?post/yzsrwa 最近一段时间对《仙侠道》的服务端进行了一系列针对GC的调优,这里跟各位分享一下调优的经验。 游戏第一次上线的时候,大部分精力都投入在做cpuprof和memprof找性能瓶颈和内存泄漏上,没有关注过Go的GC运行情况。 有一次cpuprof里的scanblock调用所占的比例让我注意到Go的GC所带来的性能消耗,记得那份cpuprof里,scanblock调用占到49%。也就是说有一半的CPU时间浪费在了GC上。 于是我开始研究如何进行优化,过程中免不了要分析数据,经过一番搜索,我好到了GOGCTRACE这个环境变量。 用法类似这样: GOGCTRACE=1 ./my_go_program 2> log_file ...阅读全文

博文 2014-10-29 01:00:00 LvanNeo

url解析

Golang URL解析今天利用课余时间看了一下Go语言的URL解析,于是就实践了一下,为了大家一起学习交流,故贴出来和大家一起分享,如有什么错误,请各位大神批评指出,共同进步。本人邮箱:1975210542@qq.compackage main import ( "fmt" "net/url" "strings" ) func main() { Url := "https://root:123456@www.baidu.com:0000/login?name=xiaoming&name=xiaoqing&age=24&age1=23#fffffff" //Parse函数解析Url为一个URL结构体,Url可以是绝对地址,也可以是相对地址 // type URL struct { // Sc...阅读全文

博文 2017-06-16 09:55:43 131360144

使用 fasthttp 时要注意的两个点

#我们做的是聚合支付系统,使用的是fasthttp 作为http server, http client 也是使用fasthttp ### 1. 第一个问题出现的场景是我们使用fasthttp client 请求微信支付时报了这个err ErrConnectionClosed ``` the server closed connection before returning the first response byte Make sure the server returns 'Connection: close' response header before closing the connection ``` ![image.png](http://upload-images.jian...阅读全文

博文 2017-12-16 13:45:41 Bulesxz

微服务实践(七):从单体式架构迁移到微服务架构

【编者的话】这是用微服务开发应用系列博客的第七篇也是最后一篇。第一篇中介绍了微服务架构模式,并且讨论了微服架构的优缺点;接续文章讨论了微服务架构不同方面:使用API网关,进程间通信,服务发现,事件驱动数据管理以及部署微服务。本篇,我们将探讨将应用从单体式架构迁移到微服务架构需要考虑的策略。 @Container容器技术大会将于6月4日在上海光大会展中心国际大酒店举办,来自Rancher、携程、PPTV、蚂蚁金服、京东、浙江移动、海尔电器、唯品会、eBay、道富银行、麻袋理财、土豆网、阿里百川、腾讯游戏、数人云、点融网、华为、轻元科技、中兴通讯等公司的技术负责人将带来实践经验分享,5月7日之前购票只需438元,欢迎感兴趣的同学抢购。 希望读者通过本系列文章对微服务优缺点有一个比较好的理解,以及...阅读全文

博文 2016-05-11 10:46:15 hokingyang

微信小程序解码工具

项目地址 https://github.com/sjatsh/unw... & 个人博客 https://sjatsh.com 起因 前段时间想学习微信小程序开发但是又没有什么深厚前端功底,看到很多很好玩的小程序想要做一个类似的学习学习,所以想着借鉴一下现有的小程序。但是苦于没有源码,抓包也没有办法获取源码。 google后知道可以用安卓模拟器安装微信然后安装小程序,然后在文件系统中找到小程序对应的wxapkg文件,拿到压缩包解压后就可以得到小程序源码。 但是压缩包是2进制文件,找了一遍后发现一个现有现有的开源项目可以直接解压小程序压缩包。 废话不多说,直接开干~ 获取小程序压缩包文件一、下载网易MuMu安卓模拟器 下载地址 http://mumu.163.com/ 二、安装微信和RE文件管...阅读全文

博文 2019-01-08 01:34:44 打瞌睡滴花花

golang消息队列实现用什么比较好?

项目开始需要与其他语言开发的项目通信,http请求比较损耗性能,但短时间内不太可能要求其他平台改成rpc通信。所以打算先用消息队列实现,网上搜了一下,好像golang用redis作消息队列比较少。 请问大家,golang 开发的项目还有什么其他的消息队列吗?如果是用redis做消息队列,会有什么问题吗...阅读全文

golang 中的日期时间

Golang 中的日期和时间 包名 time 当前时间 time.Now() 当前时间戳 time.Now().Unix() 时间格式化string time.Now().Format("2006-01-02 15:04:05") time.Now().Format("2006-01-02") 时间戳格式化到string str_time := time.Unix(1389058332, 0).Format("2006-01-02 15:04:05") string 转化到 时间 以上是时间转化 接下来是总会用到的特殊事件 现在时间 time.Now() 今天00:00:00 now := time.Now() year, month, day := now.Date() today_str...阅读全文

博文 2015-06-17 20:04:34 csapr1987

Golang-设置系统时间

// 接收UDP时间广播,并设置系统时间 func (sl *Slaver) masTimeSync(ch chan int) { // 开始监听广播时间 log.Printf("time sync listen [%s]", sl.Node.Port.PortUdpSlaTimeSync) for { (func() { // 监听 mas 发来的同步时间 lis, err := socket.NewListen("", sl.Node.Port.PortUdpSlaTimeSync, 3).ListenUDP() // 判断监听是否建立成功 if err != nil { // 异常抛出 log.Fatalln(err) } // 保证监听正常关闭 defer lis.Close() /...阅读全文

博文 2015-03-03 21:41:22 nulijiabei

golang 时间加减

package main import ( "fmt" "time" ) // 这个方法就是把加减时间值和时间整合到了一起而已 func CTime(t time.Time, time_str string) time.Time { time_part, err := time.ParseDuration(time_str) if err != nil { fmt.Println(err) return t } return t.Add(time_part) } func main() { k := time.Now() /*ParseDuration解析一个时间段字符串。一个时间段字符串是一个序列,每个片段包含可选的正负号、 十进制数、可选的小数部分和单位后缀,如"300ms"、"-1.5...阅读全文

博文 2017-10-30 06:03:10 捍卫机密

golang中获取当前时间

package main import ( "fmt" "time" ) func main() { t := time.Now() fmt.Println(t.Format("20060102150405")) //当前时间戳 t1 := time.Now().Unix() fmt.Println(t1) //时间戳转化为具体时间 fmt.Println(time.Unix(t1, 0).String()) //基本格式化的时间表示 fmt.Println(time.Now().String()) fmt.Println(time.Now().Format("2006year 01month 02day")) ...阅读全文

博文 2019-03-21 00:34:40 时间里的小恶魔

golang 时间计算

package test import ( "testing" "time" "fmt" ) func Test_time(t *testing.T) { now := time.Now() fmt.Println("当前时间:", now) //两小时之后的时间 h,_ := time.ParseDuration("2h") nowAfter2Hour := now.Add(h) fmt.Println("两小时之后的时间:", nowAfter2Hour) //两小时之前的时间 negativeH,_ := time.ParseDuration("-2h") nowBefore2Hour := now.Add(negativeH) fmt.Println("两小时之前的时间:", now...阅读全文

博文 2018-01-22 12:33:04 漂泊的树叶

[翻译]mongodb日志分析工具mtools之mplotqueries

mtools是一组非常好用的mongodb日志分析工具,里面最复杂的命令是mplotqueries,上网查了一下,还没有人翻译过。英文不好,费了好大的劲翻完,翻的不好,但没有办法,我英文水平就这么多~ 原文地址:https://github.com/rueckstiess/mtools/wiki/mplotqueries ----------------------------------------------------------------------------------------------------------------------- mplotqueries Thomas Rueckstiess edited this page on 9 Oct · 31 revis...阅读全文

博文 2014-11-27 17:00:01 吕明明

区块链技术(如何搭建golang语言开发环境)

目前比较大家熟知的有比特币,以太坊eth,etc等等。但是关于比特币是用什么语言实现的,就并不太清楚了,实现比特币开发的语言是谷歌开发的golang语言,今天下面的文章主要讲的就是如何的搭建go语言开发环境;关于开发环境,没有接触过计算的人来说就是你下载美图秀秀,然后在电脑安装,现在都是简易安装,你使用美图秀秀P图,我们是用go语言编程,其实说白了就是下个程序,然后安装。链接一:go语言下载链接 golang.org/dl/谷歌的网页貌似加载了某种识别程序,能够直接识别这是windows系统,而且直接识别是64位系统的。(如果这个链接打不开,也可以在其他地址找到相应的下载) golang语言下载页 点击红色方框部分下载即可,如果你是其他系统的选择相应的文件下来。然后双击开始运行,如果你是新手...阅读全文

Go语言_时间篇

Go的time包是标准库中的包之一 不用说,几乎是开发必须用到的包之一。time包的说明文档在: http://golang.org/pkg/time/ 先注意下Overview中的一句话: The calendrical calculations always assume a Gregorian calendar. 这个包的时间计算式是基于格里历,就是我们使用的公历。关于格里历的历史,可以看百度百科: http://baike.baidu.com/view/391054.htm 看看godoc文档,最大的数据类型就是Time了,这个Time类型最微小可以表示到nanosecond(微毫秒,十亿份之一秒)。 Time的比较是使用Before,After和Equal方法。看一眼After: ...阅读全文

Golang ReverseProxy 简单的反向代理用于内网穿透

简单的反向代理用于内网穿透 特别注意,此工具只适合小文件类的访问测试,用来做做数据调试 前言 最近周末闲来无事,想起了做下微信公共号的开发,但微信限制只能80端口的,自己用的城中村的那种宽带,共用一个公网,没办法自己用路由做端口映射。自己的服务器在腾讯云上,每次都要编译完后用ftp上传再进行调试,非常的浪费时间。 一时间又不知道上哪找一个符合我的这种要求的工具,就索性自己构思了下,整个工作流程大致为: ##工作原理 外部请求自己服务器上的HTTP服务端 -> 将数据传递给Socket服务器 -> Socket服务器将数据发送至已连接的Socket客户端 -> Socket客户端收到数据 -> 使用http请求本地http服务端 -> 本地http服务端处理相关后返回 -> Socket客户端...阅读全文

博文 2017-11-17 23:03:30 不在乎y

Go推出的主要目的之一就是G内部大东西太多了,系统级开发巨型项目非常痛苦,Go定位取代C++,Go以简单取胜(KISS)

以前为了做compiler,研读+实现了几乎所有种类的语言。现在看语法手册几乎很快就可以理解整个语言的内容。后来我对比了一下go和rust,发现go的类型系统简直就是拼凑的。这会导致跟C语言一样,需要高超的技巧才能写大程序。而rust则没有这种问题,每个部分的组成都很和谐。---------------------------------------------------------------------- Rust是挺优秀的,函数式本来就比命令式来的优雅。但同时也要看到,两种语言的定位不同。Go的定位是取代C(或C++),做所有软件的基础。而Rust想是一种划时代的语言,如果成功,将是颠覆性的。 但同时也应该看到,Go的目标简单,现在也比较稳定,可以使用了而Rust虽然很强大,但它还处...阅读全文

博文 2015-01-16 18:00:01 findumars

OPIPING 专业Api 管理及自动化测试工具

功能说明 支持多团队、多项目、多环境,更符合技术开发和使用场景 支持Api场景组并发测试、性能测试 通过功能权限、数据权限让您精准的控制用户的使用权限,使其尽在掌控之中 动态生成API数据,让前后端更好的协同开发,降低等待时间,提高开发效率 官方地址:https://www.opiping.com/ 操作手册:https://shuka.opiping.com/t/opiping Windows、Mac客户端演示 多团队管理 Api快速查找 Api自动化测试 Api Mock测试 常用插...阅读全文

开源游戏玩家配对项目Open Match

Google Cloud 和 Unity 联合宣布了一项名为 Open Match 的开源玩家配对项目,该项目允许游戏开发者专注于玩家配对逻辑,而无需从头开始为每个游戏构建完整的配对系统。 Open Match 项目包括三个核心组件,一个用于游戏客户端的前端 API,一个用于游戏服务器的后端 API,以及一个运行自定义配对逻辑的游戏编排器。 Open Match 使用了 OpenCensus 和 Prometheus。 除了度量标准收集和默认配置设置之外,Open Match 还提供了高度可扩展性,可自定义的配对逻辑范例,允许基于延迟,等待时间和技能级别,进行简单的游戏玩家配对。 由于 Open Match 在 Kubernetes 上运行,因此可以部署在任何公共云、本地数据中心或工...阅读全文

Jenkins安装部署go项目

什么是Jenkins? Jenkins 是一款流行的开源持续集成(Continuous Integration)工具,广泛用于项目开发,具有自动化构建、测试和部署等功能。 它是一个自动化的周期性的集成测试过程,从检出代码、编译构建、运行测试、结果记录、测试统计等都是自动完成的,无需人工干预,有利于减少重复过程以节省时间、费用和工作量; 它需要有专门的集成服务器来执行集成构建; 它需要有代码托管工具支持,比如SVN; 官网地址地址:https://jenkins.io Jenkins的主要目标是监控软件开发流程,快速显示问题; jenkins持续集成中的任何一个环节都是自动完成的,无需太多的人工干预,所以它有利于减少重复过程以节省时间、费用和工作量。 安装jenkins mac上安装 mac上...阅读全文

博文 2019-04-08 01:34:38 若与

Everybody Go Go Go!!!

Everybody Go Go Go!!! 一起走向通往梦想的道路 我是谁 Hello,各位大佬们,我的名字叫孙龙,在校大学生,信息与计算科学专业,热衷于编程,故创此博客,和大家一起走进有趣的编程世界进行学习和分享,新人报到,请多多关照。 学什么 C语言是母体语言,是人机交互接近底层的桥梁,学好C/C++,相当于掌握技术核心,同时,我将要学好语言、算法、数据结构、操作系统和计算机网络。 怎么学 欲戴王冠,必承其重 学习需要兴趣,兴趣是最好的老师,培养对学习编程的兴趣,不叫苦,不叫累,学好专业课的同时,用大量的课余时间来学习编程,将其养成习惯,久而久之将领悟到其真正内涵。 My World int main() { printf("---欢迎来到我的编程世界---\n"); printf(" ...阅读全文

Golang的压测工具 hey

https://github.com/rakyll/hey -n 要运行的请求数。默认是200。 -c 并发运行的请求数。请求的总数不能小于并发级别。默认是50。 -q 速率限制,以每秒查询(QPS)为单位。默认没有限制。 -z 发送请求的应用程序配置。当时间到了,应用程序停止并退出。如果指定持续时间,则忽略n。例子:- z 10s - z 3m。 -o 输出类型。如果没有提供,则打印摘要。“csv”是唯一受支持的替代方案。转储文件的响应以逗号分隔值格式的度量。 -m HTTP method, one of GET, POST, PUT, DELETE, HEAD, OPTIONS. -H 自定义HTTP头。您可以通过重复标记指定所需的数量 For example, -H "Accept: ...阅读全文

阿里云OSS归档存储类型单价下调 45%

摘要: 7月21日起,阿里云对象存储OSS归档存储类型存储单价下调45%,归档解冻(Restore)时间优化到1分钟内 7月21日起,阿里云对象存储OSS归档存储类型(OSS Archive)存储单价下调45%,最短存储周期调整到60天,归档解冻(Restore)时间降低到1分钟以内,调整方案如下: 调整项 调整前 调整后 按量付费单价 0.06元/GB/月 0.033元/GB/月 最小存储周期 30天 60天 归档解冻时间 1~4小时 1分钟内 OSS有三种存储类型:标准存储类型 Standard、低频访问存储类型IA、归档存储类型Archive。OSS 归档存储类型(OSS Archive)适用于各类需要长期保存的数据:医疗影像、科研数据、金融数据、视频素材等。此类数...阅读全文

Nsq从入门到实践

当nsq跑起来之后, 我们可能会遇到以下问题 分布式部署 处理错误(何时requeue) 如何使用golang lib 抱着不应该只停留在入门的态度, 笔者粗浅的研究了一下这几个问题, 希望也对有同样疑问的人有帮助. 部署 由于NSQ的分布式网络结构, NSQD必须广播(到lookup)自己的地址并让消费者连接, 那么多个NSQD无法做透明负载均衡. 就必须为每一个NSQD分配单独的IP(或host)以保证消费者(在lookup找到NSQ节点)能够正确的连接. 这样部署起来可能会麻烦一些 但问题不大, 注意一下就好. ps: 如果有更好的方法请告诉我, 小弟感激不尽. NSQ Requeue And Backoff 建议结合官方文档来看 requeue(重试) 用于当错误发生, 需要重试时....阅读全文

一个想学golang的程序猿的吐槽

接触golang语言几天了,大部分是业余时间,看了一下入门教程,觉得语言风格相对于C来说改进很大,虽然我只学过一点C(主要用java写了几年的android),接着看了一下这本书,各种bug就不说了,当我照着书中的结构创建项目后,尽然各种编译不了,关键是网上搜索资源看到的答案简直让人崩溃,难道就没有一个程序猿写个清楚一点的教程吗?最起码对想要入门的人来说很重要,然道golang就只是给各种C或C++大神用的吗?不说golang想不想替换C或者C++,但是想取代java这样的语言就不要做梦了...阅读全文

微信小程序解码工具

项目地址起因 前段时间想学习微信小程序开发但是又没有什么深厚前端功底,看到很多很好玩的小程序想要做一个类似的学习学习,所以想着借鉴一下现有的小程序。但是苦于没有源码,抓包也没有办法获取源码。 google后知道可以用安卓模拟器安装微信然后安装小程序,然后在文件系统中找到小程序对应的wxapkg文件,拿到压缩包解压后就可以得到小程序源码。 但是压缩包是2进制文件,找了一遍后发现一个现有现有的开源项目可以直接解压小程序压缩包。废话不多说,直接开干~使用源码安装安装golang没有用过golang的人可以直接去官网下载go get github.com/sjatsh/unwxapkgcd ~/go/src/github.com/sjatsh/unwxapkg使用可执行文件下载地址使用unwxapk...阅读全文

博文 2019-01-04 01:34:44 打瞌睡滴花花

golang时间正反格式化

在工作中遇到要将时间格式化,就整理了下时间正反格式化: //当前时间戳 fmt.Println(time.Now().Unix()) //当前时间戳格式化 fmt.Println(time.Now().Format("2006-01-02 15:04:05")) //时间戳格式化 str_time := time.Unix(1389058332, 0).Format("2006-01-02 15:04:05") fmt.Println(str_time) //时间反格式化成时间戳(月份必须是month) the_time := time.Date(2016, 1, 5, 0, 0, 0, 0, time.Local) unix_time1 := the_time.Unix() fmt.Pri...阅读全文

博文 2016-07-05 05:00:10 weidao

【GOLANG】Go语言学习-time包

go语言的time包 组成 time.Duration(时长,耗时)time.Time(时间点)time.C(放时间点的管道)[ Time.C:=make(chan time.Time) ] time包里有2个东西,一个是时间点,另一个是时长 时间点的意思就是“某一刻”,比如 2000年1月1日1点1分1秒 那一刻(后台记录的是unix时间,从1970年开始计算) 时长就是某一刻与另一刻的差,也就是耗时 函数 Sleep函数 time.Sleep(time.Duration) 表示睡多少时间,睡觉时,是阻塞状态 fmt.Println("start sleeping...") time.Sleep(time.Second) fmt.Println("end sleep.") //【结果】打印...阅读全文

博文 2015-06-17 23:01:37 zhonglinzhang

年中总结与目标OKR

文: 年中总结与目标OKR thumbnail: /thumbnails/xingbake.jpg date: 2018-07-16 21:39:04 [TOC] 昨天看到了狗哥的年中总结, 虽然开头和结尾比较丧, 但还是比较详细的列出了半年回顾和计划 也让我感受到了像狗哥这样的年轻人有目标真好~ 自己没制定过目标和计划, 发现有点难或者好奇心没啦又断了 所以, 结合前段时间看到的OKR, 这次来学习做一次年中总结, 内容尽可能细致且可度量, 以便年终进行检验 一. OKR 先来简单说下OKR是什么 OKR: Objectives and Key Results的简称,中文名是目标与关键成果法 从名称上看到它包含两个要素 目标(Objectives) 关键结果(Key Results) 它由...阅读全文

博文 2019-05-22 17:34:54 i蝸居年華_谢谢谢

golang.org/x/text使用

前言 go语言也已经使用一段时间了,但是关于golang的相关常用三方库仍然使用的不到位,正好前段时间接触了golang.org/x/text的库,这个包能强大的处理国际化和本地化,对应用的全球化时能帮上大忙。 包概览 golang.org/x/text 包含多层子包,提供了很多的工具和函数,并且用fmt风格的API来格式化字符串。 cases 提供通用的方法 // code src := []string{ "hello world!", "i with dot", "'n ijsberg", "here comes O'Brian", } for _, c := range []cases.Caser{ cases.Lower(language.Und), cases.Upper(lan...阅读全文

博文 2019-06-10 17:02:54 m20082008m

音视频同步(播放)原理

每一帧音频或视频都有一个持续时间:duration:采样频率是指将模拟声音波形进行数字化时,每秒钟抽取声波幅度样本的次数。。正常人听觉的频率范围大约在20Hz~20kHz之间,根据奈奎斯特采样理论,为了保证声音不失真,采样频率应该在40kHz左右。常用的音频采样频率有8kHz、11.025kHz、22.05kHz、16kHz、37.8kHz、44.1kHz、48kHz等,如果采用更高的采样频率,还可以达到DVD的音质对采样率为44.1kHz的AAC音频进行解码时,一帧的解码时间须控制在23.22毫秒内。背景知识:(一个AAC原始帧包含一段时间内1024个采样及相关数据)分析:1) AAC音频帧的播放时间=一个AAC帧对应的采样样本的个数/采样频率(单位为s)一帧 1024个 sample。采...阅读全文

博文 2020-03-03 00:33:10 linux大本营

一个不可思议的问题,大婶们进来看看

``` // 取redigo 连接 conn := models.Redis(setting.Conf.TimelineRedis).Get() defer conn.Close() for i, _ := range times { // redis key key := getTimelineKeyByCode(code, times[i]) // 接参数发送命令 err := conn.Send("HMGET", getTimelineArgs(key)...) if err != nil { return nil, err } } err := conn.Flush() if err != nil { ...阅读全文

阿里云上线视频云剪辑 快速产出PGC短视频不再是问题!

摘要: 近日,阿里云率先推出了视频云剪辑功能。作为一款操作简单、功能齐全的PC端视频剪辑工具,针对短视频应用场景,提供丰富在线编辑与素材管理功能,可以帮助运营人员快速制作有趣、有料的视频内容。 中国网络视频已经进入黄金发展时期,数据研究机构骨朵传媒发布的《2016年网生内容产业发展研究白皮书》中显示,截至2016年12月,我国网络视频用户规模接近5.5亿,市场总规模可达600亿元。可以预见的是,在2017年这个数字也一定会持续走高。 如此大的市场规模,一定需要海量的、优质的、多元的内容来支撑。 从内容生产的角度来看,视频可以分为UGC(用户生产内容)、PGC(专业生产内容)、OGC(职业生产内容)。OGC大部分为长视频,比如电影、剧集、综艺、动漫等,网站或APP通过版权购买...阅读全文

区块链开发要学多久?

现在在区块链大热日子里,时间已经成为许多人抓住机会的筹码。对于那些已经进入区块链圈的人来说,他们已经开始了解区块链技术。等区块链以外的人做出了反应,机会已经错过了一半。但毕竟鲜有人有先见之明。现在是我们年轻人的时代,迅速掌握区块链技术并进入区块链领域才是获胜的方式。那么区块链开发要学多久? 区块链开发要学多久? 首先如果条件允许,尽量选择在一线城市学习,毕竟有一个技术聚集区。二看其他方面,如:教师实力、课程系统、教学模式、就业工资、学费等。可以直接去试镜检查学校的实际情况。 然后问题来了。就时间而言,自学肯定为时已晚。其余的是区块链系统。现在区块链课程需要学习多长时间?一般区块链课程共22周,分为5个阶段。 区块链开发要学多久? 4周的第一阶段是语言基础和网络并发,学习入门语言; 第二阶段4...阅读全文

博文 2019-02-11 19:34:41 汉全区块链

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

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

go database/sql包sql.Open不是长连接

sql.Open 不会创建连接 ,只会创建一个DB实例,同时会创建一个go程来管理该DB实例的一个连接池(是长连接,但不是在Open的时候创建)。 在调用Begin()取一个连接,回滚或者提交得时候归还。如果你直接使用时Exec()执行,则每次会从连接池里面取出一个连接,到Exec执行完毕的时候归还。可以通过参数来调节连接池的大小。 golang sql包已经做了并发处理,自己通过channel的方式维护了一个连接池,所以没有必要在go程中加锁共享。 关于每次sql.Open,我觉得应该是一个不恰当的做法,这会导致连接得不到重用,并产生过多的短时间关闭的连接,给数据库造成没必要的压力...阅读全文

博文 2015-12-23 04:00:01 s630405377

程序员在家办公挣得更多

程序员在家办公挣得更多 --- 对于程序员来说,凭借自身的技能和经验,外加一些简单的IM沟通,就可以独立完成工作,只要需求明确,那么和其他人面对面沟通的必要性是很有限的。 所以,已经有很多程序员辞职成为自由职业者,边旅游边工作。他们时间自由的同时,财务也更加自由:有数据显示,自由开发者获得的平均报酬要比那些在办公室工作的开发者高出40%。 这些自由开发者在靠谱的IT众包平台上寻找适合自己的任务,完成在线合同和交付任务等一系列交易环节,过程无需任何线下操作,第三方平台完全保证交易双方的利益。只要完成需求方的开发任务,就可以得到相应的报酬。 --- **IT开发众包平台是如何保证程序员安全云工作的?** 拿“[云沃客][1]”网站为例,IT众包流程如下: ![1....阅读全文

我们已经拉开了差距之二

图片发自简书App 我的大学同学,现在是某知名教育机构的讲师,看了看她的朋友圈,惊叹!有人正在过着我想要的生活。压力了,焦虑了,Golang分布架构师,是讲啥的,我百度了一下,什么都不懂了,我们的差距,毕业十年就如此之大了。现在的我还在自认为努力学习,奋斗中,而早奋斗的人已经品尝胜利的果实了,还赶趟吗?与其苦苦挣扎不去釜底抽薪吧!不能放弃成长,种树最好是十年前,其次是现在,虽然短时间不能追上她的,至少会变得更好,梦想要有,每天都拿出来看看,行动,努力实现它...阅读全文

博文 2020-01-12 23:32:50 爱咋咋地康立娜

golang:使用timingwheel进行大量ticker的优化

Ticker 最近的项目用go实现的服务器需要挂载大量的socket连接。如何判断连接是否还存活就是我们需要考虑的一个问题了。 通常情况下面,socket如果被客户端正常close,服务器是能检测到的,但是如果客户端突然拔掉网线,或者是断电,那么socket的状态在服务器看来可能仍然是established。而实际上该socket已经不可用了。 为了判断连接是否可用,通常我们会用timer机制来定时检测,在go里面,这非常容易实现,如下: ticker := time.NewTicker(60 * time.Second) for { select { case <-ticker.C: if err := ping(); err != nil { close() } } } 上面我们使用一个...阅读全文

博文 2014-10-15 00:01:22 siddontang