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

Go 语言中Select与for结合使用时可能会遇到的坑

作为一个刚接触go编程的新鸟,是不是被它的某些新特性给吓到,尤其是之前已经习惯了C++的编程。对于Go语言,网上褒贬不一,有极力推崇的,如七牛的许式伟,其对go的评价极高,并预言Go的市场占有率会一直逐步上升,取代java,成为第一。也有极力贬低的,他们一般会网络上有各种博客帖子,详细的剖析了go的不妥之处。而我接触go这段时间之后,不得不说,它真的是一门很有意思的语言,为什么用有意思形容呢,借用一句装逼的话,存在即合理。go能够慢慢被国内国外的各大互联网公司用于服务器架构,它自有它的闪光之处,而至于有意思呢,就需要对它有兴趣的人慢慢去发现,(呃。。。。这个情景导入有点长,貌似有点跑偏) 好,言归正传,最近在用go开发项目的过程中突然发现一个坑,尤其是对于其它传统语言转来的人来说一不住注意就...阅读全文

博文 2015-11-13 15:00:00 u010511236

百度云虚拟主机做网站有哪些优势?

众所周知百度是国内最大的搜索引擎、最大的中文网站。百度推出的云服务器、云虚拟主机、域名服务等质量可靠,对于客户的网站来说,能够保证访问的速度、稳定和安全。 百度云虚拟主机是最新的的容器技术、热迁移技术和百度生态能力提供的新一代网站主机服务,能够保证高性能、高可靠性、高安全性和高易用性等,即使是零基础的站长也可以轻松搞定网站的部署、发布、运维、推广,这无论是对企业还是个人网站来说都有非常大的作用。 ![虚拟主机.jpg](https://static.studygolang.com/180420/59974fa5a2ba4eec783545b7a6caebd8.jpg) 那么百度云虚拟主机的优势又有哪些? 高稳定 基于百度云的核心技术,故障服务方面可秒级热迁移...阅读全文

记一次线上Giao(go)服务内存占用率过高问题排查

本文作者: 保护我方李元芳 商业转载请联系作者获得授权,非商业转载请注明出处。 故障现象 某线上埋点上报机器偶尔触发内存占用过多的报警。ssh到机器top发现主要内存被埋点服务占用。之前重启过几次,但是过段时间仍然会发生内存占用过多的警报。下面是报警详情。 [P1][PROBLEM][ali-e-xxx-service03.bj][][ all(#3) mem.memfree.percent 4.19575<5][O3 >2019-10-28 10:20:00] 问题推断 埋点服务主要接收客户端压缩过的上报请求,并对请求数据做解压,投递到kafka,逻辑功能相对简单。初步怀疑是某些资源没有释放导致的内存泄露或Groutine泄露。 问题排查 由于代码不是由我们业务方维护的,首先向相关部门索要...阅读全文

博文 2020-01-19 16:34:17 保护我方李元芳

佣金百万so easy!阿里云推广联盟喊你来赚钱

佣金百万so easy!阿里云推广联盟喊你来赚钱 阿里云CPS推广阶梯返佣活动火热升级! 坐享15%佣金!一笔成交即有奖励!最高奖励2000元! 超高客单价、高转化率、高佣金! 招募淘客推广,获取超高佣金,速来! 活动详情:迅速点击阿里云cps推广:http://click.aliyun.com/m/1783/ 除15%佣金外,淘客现在参加活动还可以获得额外2000元奖励。 欢迎加入阿里云推广联盟旺旺交流群:1212510604 活动详情:迅速点击阿里云cps推广:http://click.aliyun.com/m/1783...阅读全文

一分钟生成上百个电影混剪视频

3.5-1.png 新增多次合成和自定义分段 下面是两个功能的演示 如何一分钟生成上百个影视混剪视频 10秒种完成多个视频有序或随机合成 关注公众号 golang实战应用,不定期分享密钥 软件地址:https://github.com/suifengqjn/videoWater 软件还包含以下功能 [视频格式转换] [帧率设置] [比特率设置] [剪掉片头] [剪掉片尾] [视频剪裁] [去除水印] [视频旋转] [视频镜像] [调整视频分辨率] [视频压缩] [添加文字水印] [添加跑马灯文字水印] [添加图片水印] [画中画] [添加随机背景音乐] [倍速播放(加速减速)] [添加片头] [添加片尾] [视频分段] [视频合成] [插入背景图片] 打包程序下载 支持 mac win32 ...阅读全文

博文 2020-03-08 00:32:43 夜千寻墨

Golang实现大数乘法

大数乘法,简单的说,就是把小学学的列竖式计算的方法进行了实现。这其实也就是个乘法分配率的变形。 5 * 12 = 5 * (2 + 10) = 5 * 2 + 5 * 10 所以第二行竖式,12的十位1与5相乘的时候,需要再最后空一位,其实是在最后省略了一个0。十位就是省略一个0,也就是左移一位,那么百位就是左移两位。以此类推。 通过代码实现,相乘的两个数就不能用整形表示了,因为存不了很大的整数。需要用字符串表示。按位相乘,最后把结果错位相加就行。乘法的结果等于乘数的位数,所以可以申请一个和乘数位数相同的数组,然后错位相加即可。但是这样太麻烦了。 乘法是从个位开始,但是遍历字符串是从最高为开始的,所以要首先将输入字符串反转。用i表示被乘数的遍历索引,j表示乘数的索引。前面说了左移的位数和乘数...阅读全文

[有奖调研] 美团云开发者调查问卷

![云云众生_美团云给你想要的自由 2.png](http://studygolang.qiniudn.com/161228/5cfc48b8cd6996ba354bb2f2208cf6a6.png) 美团云针对客户业务弹性变化特点,推出按需付费的灵活计费方式。冲击云计算市场价格底线,为企业提供高性价比的云服务解决方案。 本次调研将收集开发者在云服务使用过程中遇到的主要问题,以及新需求,借此完善美团云产品及解决方案,实现我们更好的服务于客户的宗旨。 [调研问卷地址] http://survey.meituan.com/?r=survey/index/sid/457371/lang/zh-Hans [奖励机制] 请准确并完整地填写调查问卷,我们将根据问卷的真实性、...阅读全文

阿里云助力创业者从零开启视频之路,史上最低门槛,299元打造视频点播平台

摘要: 为了扶持众多创业者,降低入行门槛,阿里云推出了全新的视频点播创业版套餐,只需299元,即可获得960GB/年的流量包、60GB/年的存储包和24小时/年的转码包,可供个人、小微企业门户网站使用。 近年来,互联网的内容形态快速演变,从最原始的文字博客。到微博时代的图文混合,再到早已主流普及的长视频与近期如火如荼的短视频模式,一直是趋于更具互动性、丰富性的迭代。据公开数据显示,截至2016年12月,中国网络视频用户规模达5.45亿,这个数字足以证明视频已经成为当下最为主流的内容形态。 作为平台方或内容提供方,迎合主流的用户消费习惯,更新迭代内容形态载体,才能留住用户。打个比方,大多数在线教育网站都已经支持视频授课,那些只沉迷于图文课件的教育网站也被市场竞争慢慢淘汰。所以,越来...阅读全文

MongoDB 最佳实践及2.8版本特性与功能

主要流程 MongoDB 2.8 版本特性与功能 MongoDB 在赶集网的应用 MongoDB 最佳实践 MongoDB 2.8 版本特性与功能 TJ MongoDB 开发者 TJ 强调 MongoDB 没有实际意义上的锁,只有 Latch,门栓。 2.6 库级锁 Latch,没有 Lock,写内存的一刹那锁住内存 2.8 无锁的 MVCC 并发,WIREDTIGER,snapshot isolation 2.6 MMAP 内存映射,库级锁 2.8 MMAP 集合级锁 2.8 WIREDTIGER 无锁 WIREDTIGER 存储模式 LSM(HBASE, Cassandra) - Log Structured Merge B-TREE LSM 数据写内存,异步写硬盘 读性能有问题,性能一...阅读全文

博文 2015-04-18 22:00:00 灰仔

【功能盘点】升级后的媒体处理MPS有哪些能力?

摘要: 不同于其他云服务厂商的媒体转码产品,阿里云将更多的技术赋能给用户,通过媒体处理,用户可以基于海量数据深度学习,对媒体的内容、文字、语音、场景多模态分析,实现智能审核、内容理解、智能编辑等视频平台不可或缺的能力。 近日,阿里云媒体转码(MTS)升级为媒体处理(MPS),原音视频转码功能不受影响,除此之外,媒体处理新增智能审核、编辑等功能。 image 自建转码与采用阿里云媒体处理的区别 阿里云媒体处理服务是基于阿里云庞大基础设施体系和计算能力而构建的,它改变了传统的购买、搭建、管理转码软硬件的高昂投入以及配置优化、转码参数适配等复杂性问题。同时,借助云计算服务的弹性伸缩的特性,可以按需提供转码能力,从而最大限度的满足业务转码需求、避免资源浪费。 采用阿里云媒体处理...阅读全文

golang实现Ringbuf

Ring buffer算法优点:高内存使用率,在缓冲buffer内存模型中,不太容易发生内存越界、悬空指针等 bug ,出了问题也容易在内存级别分析调试。做出来的系统容易保持健壮。 package main import ( "bytes" "fmt" ) type Ringbuf struct { buf []byte start, size int } func New(size int) *Ringbuf { return &Ringbuf{make([]byte, size), 0, 0} } func (r *Ringbuf) Write(b []byte) { for len(b) > 0 { start := (r.start + r.size) % len(r.buf) n ...阅读全文

博文 2015-10-20 23:00:12 webyh

基于 GMM-UBM 说话人识别引擎(声纹识别) govpr

## 简介 govpr是golang 实现的基于 GMM-UBM 说话人识别引擎(声纹识别),可用于语音验证,身份识别的场景. 目前暂时仅支持汉语数字的语音,语音格式为wav格式(比特率16000,16bits,单声道) 安装 go get github.com/liuxp0827/govpr 示例 如下是一个简单的示例. 可跳转至 [example](https://github.com/liuxp0827/govpr/blob/master/example) 查看详细的例子,示例中的语音为纯数字8位数字.语音验证后得到一个得分,可设置阈值来判断验证语音是否为注册训练者本人.

阅读全文

govpr,golang实现的gmm-ubm声纹识别引擎

## 简介 govpr是golang 实现的基于 GMM-UBM 说话人识别引擎(声纹识别),可用于语音验证,身份识别的场景. 目前暂时仅支持汉语数字的语音,语音格式为wav格式(比特率16000,16bits,单声道) ## 安装 go get github.com/liuxp0827/govpr ## 示例 如下是一个简单的示例. 可跳转至 [example](https://github.com/liuxp0827/govpr/blob/master/example) 查看详细的例子,示例中的语音为纯数字8位数字.语音验证后得到一个得分,可设置阈值来判断验证语音是否为注册训练者本人. ```go package main import (...阅读全文

响应式网站定制到底有什么好

很多人对于响应式网站定制会有很大的疑问,响应式网站定制是什么?响应式网站定制投入大吗?其实说起定制网站,简单的说就是找人或者公司按照你的意思来为你做一个网站。很多公司为了跻身进入互联网,实现“互联网+”,所以急需做一个网站,让自己能够开启互联网经营之路。他们更多面对的问题是自己缺乏技术和专业的团队为他们打开这扇互联网大门。对于公司而言,他们最关注的点莫非于:做一个响应式网站要多长时间?网站建设的费用能不能低一些?网站做出来能不能马上有成效? ![u=2607373067,307514015&fm=23&gp=0_副本.jpg](http://studygolang.qiniudn.com/170208/77e1929e7ae593e8f2cd2235b6d31bc0.jpg) 对...阅读全文

mongodb 最佳实践

MongoDB功能预览:http://pan.baidu.com/s/1k2UfW MongoDB在赶集网的应用:http://pan.baidu.com/s/1bngxgLp MongoDB在京东的使用:http://pan.baidu.com/s/1qWkawv6 MongoDB 在赶集网的应用 赶集网 DBA 选型失败的案例 选型成功的案例 服务化与运维 失败案例 不支持 join,数据库支持反范式 过多内联数据,索引庞大,性能过低 过多聚合及计算功能,数据库不堪重负 基于地理位置, mongodb 二级索引 schema free,无传统 DB DDL 负担 document 丰富的数据结构类型 mongodb 1.8 全局锁,读写超时非常严重 直到 2.0 DB 级锁,才有单库单表...阅读全文

博文 2016-01-25 03:00:01 jifeng

Dapper,大规模分布式系统的跟踪系统 by bigbully

概述 当代的互联网的服务,通常都是用复杂的、大规模分布式集群来实现的。互联网应用构建在不同的软件模块集上,这些软件模块,有可能是由不同的团队开发、可能使用不同的编程语言来实现、有可能布在了几千台服务器,横跨多个不同的数据中心。因此,就需要一些可以帮助理解系统行为、用于分析性能问题的工具。 Dapper--Google生产环境下的分布式跟踪系统,应运而生。那么我们就来介绍一个大规模集群的跟踪系统,它是如何满足一个低损耗、应用透明的、大范围部署这三个需求的。当然Dapper设计之初,参考了一些其他分布式系统的理念,尤其是Magpie和X-Trace,但是我们之所以能成功应用在生产环境上,还需要一些画龙点睛之笔,例如采样率的使用以及把代码植入限制在一小部分公共库的改造上。 自从Dapper发展成为...阅读全文

博文 2017-12-13 05:59:06 bigbully.github.io

用golang实现一个简单的监控工具

背景是这样的,有一次我的服务器突然挂掉了,是由于cpu占用过高,但是我又不知道是哪个进程造成的。于是便想找一个监控工具来监控我的机器,我希望这个工具足够简单,没有复杂的配置,开箱即用,能够监控到当cpu负载过高时,发生的时间以及当时是什么进程造成这样的问题。很可惜,我并没有找到这样的工具(若有这样方便的工具请告知我),但我实在不想因此而给服务器上一套很重的监控系统。于是乎,我决定自己写一个工具。思路如下: 每隔一段时间就查看cpu占用率,当超过了设置的百分比,就触发记录; 调用top命令,按照cpu占用率从高到低排列,将输出记录到文件中,文件以时间命令; 程序能后台运行。 针对第一点,我用了一个库:github.com/shirou/gopsutil,里面有关于cpu使用率以及内存使用率的相...阅读全文

博文 2020-04-22 16:33:38 wx5e1abbbb0a5e5

Uber 的分布式追踪系统Jaeger

Jaeger是Uber的分布式跟踪系统。 大多数现有的Zipkin兼容仪表库支持概率采样,但他们希望在初始化时配置采样率。这种方法在大规模使用时导致几个严重问题: 给定的服务几乎没有洞察采样率对跟踪后端的总体流量的影响。 在Uber,商业交通展示强烈的每日季节性; 更多的人在高峰时段乘坐。固定采样概率对于非高峰业务来说太低,而对于高峰业务又太高。 Jaeger客户端库中的轮询功能旨在解决这些问题。通过将关于适当采样策略的决定移动到跟踪后端,我们免除服务开发人员猜测适当的采样率。这还允许后端在流量模式改变时动态地调整采样率。下图显示了从收集器到客户端库的反馈循环。 ![image](https://static.oschina.net/uploads/space/2017/0310/...阅读全文

开源项目 2017-03-10 03:00:51 网友

阿里视频云最强转码技术揭秘:窄带高清原理解析+用户接入指南

摘要: 窄带高清代表的是一种成本与体验最合理配置、最佳性价比的视频服务理念。本文将介绍窄带高清的原理及用户接入指南。 有人说2017年是中国网络视频发展的黄金时期,根据中国互联网信息中心发布的《中国互联网发展状况统计报告》显示,截止2017上半年,网络视频用户规模已经达到5.65 亿,半年增长3.7%。 随着社交媒体、网络直播、VR、AR的兴起,用户对于视频的多元化、场景化、临场感、体验的追求更加极致,视频网站竞争尤为激烈,各大视频网站都在努力布局结合云计算、大数据、视频服务等能力实现技术创新,提升用户观感。 根据网络调研显示,视频中经常出现 转码失真、拍摄噪声、卡顿、低帧率卡顿、低分辨率模糊、镜头抖动等现象 ,是影响用户体验的直接因素。而在视频服务中,想要保证流畅的观感,...阅读全文

基于文本密度的 html2article 实现html2article-golang

avg 3.2ms per article, accuracy >= 98% (对比其他开源实现,可能是目前最快的html2article实现,我们测试的数据集约3kw来自于微信公众号,各大类中文科技媒体历史文章,目前能达到98%以上准确率) 参考examples [from_url.go](https://github.com/sundy-li/html2article/blob/master/examples/from_url.go) [参考论文](http://www.doc88.com/p-7714009813182.html) [Java实现](https://github.com/CrawlScript/WebCollector...阅读全文

开源项目 2017-07-23 05:00:03 网友

Kubernetes节点资源耗尽状态的处理

今天上午一到工位,就收到来自同事的“投诉”:私有云上的Kubernetes cluster中的一个node似乎不工作了,因为专门部署于那个节点上的应用挂掉了,并且长时间没有恢复。这个公司私有云上Kubernetes集群是v1.7.5版本,部署于双节假期之前。最近感觉K8s开发明显提速,连续发布版本,截至发稿时,最新发布的版本为v1.8.1了。这个集群一直运行相对稳定,今天这个异常到底是怎么一回事呢?于是打开terminal,开始了问题的调查。 一、问题现象 我们这个小集群一共有三个Kubernetes Node。首先,我查看集群中的所有Pods状态,发现node1和node2上的Pods均正常(running状态),但位于node3上的三个Pods均为“Pending”状态,这三个pod是w...阅读全文

博文 2017-10-25 06:54:44 bigwhite

Golang在大数据领域中的应用之唯品会高吞吐量Access Log存储的实现

潘卫华 / 唯品会基础架构部架构师,唯品会Dragonfly日志系统负责人。对 Elasticsearch 和大数据流式处理有丰富经验,对Golang及其程序的性能优化也有较多研究。前言大家下午好!我是来自唯品会基础架构部的潘卫华。今天我们来跟大家一起看看在大数据领域里面,Golang的应用。我们知道在大数据领域里,Java 和 Scala 语言基本是处于统治地位的,主要是因为像 Hadoop 以及基于 Hadoop 的一些工具栈,比如 HBase/Hive/Spark/Flink 等等,这些都是基于 Java 或者 Scala开发,他们提供 的api 也是主要给 Java 系的语言来使用的。不过实际在项目过程中,我认为还是在一些地方Golang是可以有用武之地的。我将从以下几个方面作分享:...阅读全文

博文 2019-01-24 22:17:35 Go中国

分析golang定时器cpu使用率高的现象

前言: 废话少说,上线一个用golang写的高频的任务派发系统,上线跑着很稳定,但有个缺点就是当没有任务的时候,cpu的消耗也在几个百分点。 平均值在3%左右的cpu使用率。你没有任务的时候,cpu还跑到3%,这个说不过去呀。通过查看进程pidstat捕获得知,system系统的cpu消耗也不少。 sys的cpu占用率高一般是由于大量的syscall系统调用引起的…. 该文章后续仍在不断更新中, 请移步到原文地址 http://xiaorui.cc/?p=5117 下面的截图是用strace统计出来的系统调用…. 我们发现 futex 和 pselect6 的syscall非常的多…. futex 是锁的调用,pselect6可以理解为select的加强版,除了我们不关心的信号掩码外,他是支...阅读全文

博文 2019-06-03 20:02:18 rfyiamcool

优雅地实现 TCP 压缩传输

集群式、负载均衡的RPC框架 rpcx支持多种的序列化库,可以有效的减少消息体的大小,但是对于字符串或者图片的字节slice,明显还可以进一步的压缩,正如fasthttp作者valyala在他的新的开源项目httpteleport中描述的: 通过1G的带宽传输10G的数据 (夸张)。 为了在RPC的传输中减少传输的数据大小,我在不影响rpcx整体框架的基础上,参考了httpteleport的实现,对net.TCPConn进行了封装,实现了压缩/解压缩功能的net.Conn,可以有效的减少带宽,节省公司在带宽上的花费, 以下就是具体的实现。 首先介绍两种压缩格式。 zip 是常用的一种压缩格式,Go标准库中提供了它的实现。zip原名Deflate,发明者为菲尔·卡茨(Phil Katz),他于...阅读全文

博文 2017-02-08 12:53:43 smallnest

让Chrome看不了WWDC直播的HLS技术详解

Requirements: Live streaming uses Apple’s HTTP Live Streaming (HLS) technology. HLS requires an iPhone, iPad, or iPod touch with Safari on iOS 7.0 or later, a Mac with Safari 6.0.5 or later on OS X v10.8.5 or later, or a PC with Microsoft Edge on Windows 10. Streaming via Apple TV requires an Apple TV (2nd or 3rd generation) with software 6.2 or la...阅读全文

博文 2017-06-06 09:06:57 又拍云

猎奇过后,VR还有什么能让用户买单?

VR乍到之时,声如迅雷,来势汹汹却转瞬而逝。 能够在市场激起千层浪,大抵是因其强势地撩起了不少好奇心者,而随着这个热闹周围聚拢层层的围观者,自然吸引了更多人驻足。 但围观之下,好奇心不会转化为购买率。围观者居多,但是让好奇心者转化为用户,还有很长的路要走。正如 Oculus 创始人帕尔默•拉奇在接受《金融时报》采访时表示,“虚拟现实设备成为生活中的一部分,可能要花上 5 年,甚至是更长的 10 年时间”。 用户都是见证者,能挺过这段寂寞时光的,升华。 没内容,谁肯买单?VR领域有“钱”途,大伙儿一股脑地往里钻,很正常,不奇怪。 但很多人都仅仅将它视为一个新鲜的新设备,用技术去消费大众的猎奇心。但事实上,行业十分缺乏优质的代表,关键性技术节点远未突破,VR...阅读全文

zstd,未来可期的数据压缩算法

tl;dr(太长不读): zstd是Facebook在2016年开源的新无损压缩算法,优点是压缩率和压缩/解压缩性能都很突出。 在我们测试的文本日志压缩场景中,压缩率比gzip提高一倍,压缩性能与lz4、snappy相当甚至更好,是gzip的10倍以上。 zstd还有一个特别的功能,支持以训练方式生成字典文件,相比传统压缩方式能大大的提高小数据包的压缩率。 在过去的两年里,新版本的Linux内核、HTTP协议、以及一系列的大数据工具(包括Hadoop 3.0.0,HBase 2.0.0,Spark 2.3.0,Kafka 2.1.0)等都已经加入了对zstd的支持。 可以预见,zstd将是未来几年里会被广泛关注和应用的压缩算法。 最近了解到了zstd这种新的压缩算法。不像lz4,lzo,sn...阅读全文

Socket 网络隧道 qTunnel

qTunnel 是 getqujing.com 使用的安全套接字隧道,是 [Stunnel/stud](http://www.oschina.net/p/stud) 的替代品。qTunnel 使用 Go 编写,为了提高数据传输率,它去掉了认证设置和 SSL 握手。         使用:

$ ./bin/qtunnel -h
Usage of ./bin/qtunnel:
    -backend="127.0.0.1:6400": host:port of the backend
    -clientmode=false: if running at ...阅读全文

Go、Nginx、Php、Nodejs谁能胜出紫禁之巅

版权声明:本文为Sunface(孙飞)原创文章,转载请注明出处 https://blog.csdn.net/abv123456789/article/details/52743704 声明:这里的测试框架都是很常用的框架,不去跟一些奇葩但是所谓性能极高的框架进行对比 由于我们在项目中大量使用Iris和nginx这两个Web框架(纯Go语言实现,零内存拷贝),同时也听过很多人问Go的Http性能对比nginx、对比nodejs到底如何,有鉴于此,今天我们就来做一个Web框架性能真实比拼。 测试环境图: 下面从多个维度对4个框架进行对比:Nginx VS Nginx-php-fpm VS Iris VS nodejs-Express一、 Nginx 并发压力测试100 - 100K 第一张图是在...阅读全文

博文 2019-03-17 14:05:15 erlib

hystrix-go

内部组织了一次关于hystrix-go的分享,没想到引起了内部的困惑,对于没有做过分布式系统的开发同学可能根本没有接触过hystrix,学习一个新东西,我个人的一贯思路是按照黄金圈理论。 这里关于hystrix是什么就不描述了,百度一下足够你翻几屏的了。因为目前Team以golang为主要开发语言,所以使用了开源的hystrix-go(https://github.com/afex/hystrix-go).大家先看下面一个例子:var Number intvar Result stringfunc main() { config := hystrix.CommandConfig{ Timeout:2000, //超时时间设置 单位毫秒 MaxConcurrentRequests:8, //最...阅读全文

博文 2018-07-22 23:34:48 GoSnail

Go、Nginx、Php、Nodejs谁能胜出紫禁之巅

声明:这里的测试框架都是很常用的框架,不去跟一些奇葩但是所谓性能极高的框架进行对比 由于我们在项目中大量使用Iris和nginx这两个Web框架(纯Go语言实现,零内存拷贝),同时也听过很多人问Go的Http性能对比nginx、对比nodejs到底如何,有鉴于此,今天我们就来做一个Web框架性能真实比拼。 测试环境图: 下面从多个维度对4个框架进行对比:Nginx VS Nginx-php-fpm VS Iris VS nodejs-Express一、 Nginx 并发压力测试100 - 100K 第一张图是在不同并发压力下,每秒处理的请求数 第二张是每秒吞吐的数据量 第三张是99.9%、平均、标准方差的延迟统计,可以看出有0.01%的请求延迟在2秒左右 第四张是单线程统计 (这些图后面不会...阅读全文

博文 2016-10-06 14:00:06 abv123456789

govpr--golang实现的gmm-ubm算法的说话人识别(声纹识别)引擎

简介 govpr是golang 实现的基于 GMM-UBM 说话人识别引擎(声纹识别),可用于语音验证,身份识别的场景.目前暂时仅支持汉语数字的语音,语音格式为wav格式(比特率16000,16bits,单声道) 安装 go get github.com/liuxp0827/govpr 示例 如下是一个简单的示例. 可跳转至 example查看详细的例子,示例中的语音为纯数字8位数字.语音验证后得到一个得分,可设置阈值来判断验证语音是否为注册训练者本人. package main import ( "github.com/liuxp0827/govpr" "github.com/liuxp0827/govpr/log" "github.com/liuxp0827/govpr/waveIO" ...阅读全文

博文 2017-02-10 10:29:05 ponpon_

测试一下golang协程资源占有率

GO版本:go version go1.4.2 linux/amd64 测试环境: [root@localhost mpro]# more /proc/cpuinfo | grep "model name" model name : Intel(R) Core(TM) i5-4590 CPU @ 3.30GHz model name : Intel(R) Core(TM) i5-4590 CPU @ 3.30GHz model name : Intel(R) Core(TM) i5-4590 CPU @ 3.30GHz model name : Intel(R) Core(TM) i5-4590 CPU @ 3.30GHz [root@localhost mpro]# [root@local...阅读全文

Go内存优化(一)— struct

理 关于Golang同一struct中field的书写顺序不同内存分配大小也会不同。主要原因如下:struct内field内存分配是以4B为基础,超过4B时必须独占。 示例 type A1 struct { a bool b uint32 c bool d uint32 e uint8 f uint32 g uint8 } 计算一下A1所需要占用的内存: 首先第1个4B中放入a,a是bool型,占用1B,剩余3B 这时看b是uint32,占用4B,剩余3B放不下,所以offset到下一个4B空间,这时我们会发现3B没有放东西,被浪费了 依次往下,A1要占用28B的空间 根据1,2两个步骤很容易看出,有很多浪费空间。 优化: type A2 struct { a bool c bool e u...阅读全文

博文 2018-06-29 15:34:44 sipt

【新功能】媒体处理MPS全新支持自适应多码率、多语言音轨

摘要: 视频内容的分发与播放已经深入了各行业的各类业务场景之中,对于视频平台而言,在不同网络状况下,都能以最优质的状况播放视频,满足用户对于观看体验的更高追求是一个不变的目标。为了更好的满足视频云客户的需求,阿里云媒体处理MPS产品在目前已经全面支持自适应多视频码率、多语言音轨和字幕等功能。 功能优势与适用场景 自适应多码率: 根据用户实际网络带宽条件,自动匹配视频流,兼顾清晰度和流畅度 适用场景: 实际上在视频内容传输过程中因为网络不稳定,播放卡顿、无法观看等问题时常发生。平台方一般会输出多个固定码率的视频(流畅、标准、高清、超清),在播放中用户如果遇到卡顿等问题,可以手动将视频清晰度调低,来保证播放顺畅,反之如果网络情况较好,用户再手动将视频清晰度调高来实现...阅读全文

阿里P8架构师谈:如何搭建亿级并发系统的性能指标体系

性能指标的分类为了更好的去监控整个系统的性能,做好全流程的优化,主要分为3类:1.感知系统性能这类指标主要从工程师的角度去衡量,如后端的:响应时间当前并发的用户数请求数请求的错误率等等。2.用户体验性能用户实际感觉网页是否加载延迟首屏时间白屏时间完全加载时间之类3.系统性能这类指标重点查看服务器:服务器的cpu内存网络带宽流量等等物理资源。对于上述的每一类,衡量标准可能都不一样,在数据展示方面,主要通过趋势图和汇总表格来展现,下面来对这3类指标分别细说:感知系统性能这类指标主要为工程师设计,来衡量业务后端的处理速度,主要从以下几个方面去衡量:1) 响应时间响应时间是性能的主要kpi。首先对每个业务的整体(集群)响应时间有个衡量:95%的响应时间:将一段时间内所有请求的响应时间中取一个值,使9...阅读全文

博文 2018-09-17 13:53:46 Java_fenxiang

阿里云免费教你使用营销引擎

课程介绍 阿里云数加营销引擎可以帮助企业快速搭建或升级自有DSP/ADN/DMP系统,提供高质量的竞价、投放、受众定向、pCTR点击率预估/pCVR转化率预估、相关性评估等核心能力。 产品详情:https://data.aliyun.com/product/openad 课时列表 • 课时1:营销引擎 - 如何快速搭建自有DSP • 课时2:营销引擎 - DSP如何进行流量管理 • 课时3:营销引擎 - 如何在DSP中接入【友盟+】DIP • 课时4:营销引擎 - 广告主如何使用借助营销引擎快速搭建的DSP • 课时5:营销引擎 - 广告主如何借助【友盟+】DIP创建人群 开始学习http://click.aliyun.com/m/278...阅读全文

海量数据处理常用方法有哪些?

处理海量数据是大数据工程师必备技能,通过对PB级别的数据进行挖掘与分析发掘出有价值的信息,为企业或政府做出正确决策提供依据,是十分必要的一项工作,以下是常用的海量数据处理方法! **1. Bloom filter** Bloom filter是一种二进制向量数据结构,具有很好的空间效率和时间效率,可用来检测一个元素是否属于一个集合。该方法的优点是它的插入和查询时间都是常数,并且它查询元素却不保存元素本身,因此,具有良好的安全性,但因其算法的原因,其正确率稍低,可以确定不存在数据一定不存在,确定存在的数据不一定存在,适合对低错误率可以容忍的场合。 **2. Hash** Hash即散列函数,其是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数,根据处理需求的不同,...阅读全文

天池中间件大赛Golang版Service Mesh思路分享

21天精品区块链课程免费学习,深入实战行家带路,助力开发者轻松玩转区块链! >>> 这次天池中间件性能大赛初赛和复赛的成绩都正好是第五名,出乎意料的是作为Golang是这次比赛的“稀缺物种”,这次在前十名中我也是侥幸存活在C大佬和Java大佬的中间。 关于这次初赛《Service Mesh for Dubbo》难度相对复赛《单机百万消息队列的存储设计》简单一些,最终成绩是6983分,因为一些Golang的小伙伴在正式赛512并发压测的时候大多都卡在6000分大关,这里主要跟大家分享下我在这次Golang版本的一些心得和踩过的坑。 由于工作原因实在太忙,比赛只有周末的时间可以突击,下一篇我会抽空整理下复赛《单机百万消息队列的存储设计》的思路方案分享给大家,个人感觉实现方案上也是决赛队伍中比较特...阅读全文

博文 2018-09-01 14:33:15 亚普的技术轮子

怎么制作HTML5页面让它适应电脑和手机的尺寸?

1、 利用meta标签 Meta标签主要用来描述一个HTML网页文档的属性,如作者、日期时间、网页描述、关键词、页面刷新等,它的Description和Keywords属性,可加入网站的关键字,让网页利于搜索引擎。 解释:Viewport指用户网页的可视区域,content中的“width”指的是虚拟窗口宽度,上面代码意为虚拟窗口/页面宽度初始比例为1,最小比例为1,最大比例为1,用户不可扩展,页面不可缩放。 以上标签只支持一种尺...阅读全文

[系列] - go-gin-api 路由中间件 - Jaeger 链路追踪(五)

概述 首先同步下项目概况: 上篇文章分享了,路由中间件 - 捕获异常,这篇文章咱们分享:路由中间件 - Jaeger 链路追踪。 啥是链路追踪? 我理解链路追踪其实是为微服务架构提供服务的,当一个请求中,请求了多个服务单元,如果请求出现了错误或异常,很难去定位是哪个服务出了问题,这时就需要链路追踪。 咱们先看一张图: 这张图的调用链还比较清晰,咱们想象一下,随着服务的越来越多,服务与服务之间调用关系也越来越多,可能就会发展成下图的情况。 这调用关系真的是... 看到这,我的内心是崩溃的。 那么问题来了,这种情况下怎么快速定位问题? 如何设计日志记录? 我们自己也可以设计一个链路追踪,比如当发生一个请求,咱们记录它的: 请求的唯一标识 请求了哪些服务? 请求的服务依次顺序? 请求的 Reque...阅读全文

博文 2019-09-17 00:04:19 訢亮

异构计算助力客户春节webp图片编码

摘要: 背景与挑战 技博客 GigaOM 曾报道:YouTube 的视频略缩图采用 WebP 格式后,网页加载速度提升了 10%;谷歌的 Chrome 网上应用商店采用 WebP 格式图片后,每天可以节省几 TB 的带宽,页面平均加载时间大约减少 1/3;Google+ 移动应用采用 WebP 图片格式后,每天节省了 50TB 数据存储空间。 **背景与挑战** 科技博客 GigaOM 曾报道:YouTube 的视频略缩图采用 WebP 格式后,网页加载速度提升了 10%;谷歌的 Chrome 网上应用商店采用 WebP 格式图片后,每天可以节省几 TB 的带宽,页面平均加载时间大约减少 1/3;Google+ 移动应用采用 WebP 图片格式后,每天节省了 50TB 数据存储空...阅读全文

Golang、python关于压缩和解压的解释。

golang中,存在 "compress/zlib" 这个包,里面包含各压缩解压的各项设置,比如压缩级别/压缩速度。 比如 zlib包里面的常量如下: const ( NoCompression = flate.NoCompression //没有压缩 BestSpeed = flate.BestSpeed //压缩速度 BestCompression = flate.BestCompression //压缩率 DefaultCompression = flate.DefaultCompression//默认压缩 ) 压缩速度和压缩率这两个是一个相互矛盾的过程,这里面的取舍还是需要各位去仔细甄别使用场景。 func main() { b := []byte(`china GO GO !!!的...阅读全文

博文 2017-03-15 18:00:20 大洋的顶端

Golang设计模式(工厂方法模式)

工厂方法模式类图, image.png abstract_factory_test.go // abstract_factory_test package abstract_factory import ( "testing" ) func TestMotorbikeFactory(t *testing.T) { motobikeF, err := GetVehicleFactory(MotobikeFactoryType) if err != nil { t.Fatal("Create motorbike vehicle factory failed") } vehicle, err := motobikeF.GetVehicle(SportMotorbikeType) if err !=...阅读全文

记一次golang程序CPU高的排查过程

前言 事情的起因是某天CTO突然和我说,生产环境的程序CPU有点高,关键是现在也没什么负载,同样的代码在开发环境上CPU就低的多了。 不用细说,那一定是有什么地方出问题了。 CTO还说,他pprof过了,占用CPU最高的runtime.futex,还发了一篇相关的文章谁占了该CPU核的30% - 一个较意外的Go性能问题 ,打趣说没准系统负载高了,这个问题就没了。因为原文中写到: 必须指出,本问题是因为系统空闲没有goroutine可以调度造成的。显然的,系统繁忙的时候,即CPU资源真正体现价值时,上述30%的%CPU的overhead并不存在,因为大概率下会有goroutine可供调度,无需去做让M去sleep这个很重的操作。 然后就把这个锅就“甩”给我了,让我研究一下。毕竟开发环境的负载...阅读全文

博文 2019-08-13 01:32:45 海之方