项目性能优化的指标,目标

性能优化的终极目标是什么性能优化的目标实际上是为了更好的用户体验一般我们认为用户体验是下面的公式:用户体验 = 产品设计(非技术)+ 系统性能 ≈ 系统性能 = 快那什么样的体验叫快呢?3秒定理 一般我们认为网站页面的加载速度在3秒以内就可以称作合格了,加载速度越趋近于0,越快。 3秒定理:Strangeloop在对比了众多网站,并对其性能进行分析之后得出了一个著名的3秒定理,当网站页面加载速度超过3秒后,57%的访客会离开这个网站。  如果想让我们的系统快起来,就要做性能调优。项目性能优化以下可以做为优化的标准:前端工程师:首屏时间、白屏时间、可交互时间、完全加载时间;移动端工程师:端到端响应时间、Crash率、内存使用率、FPS;后端工程师:RT、TPS、并发数。影响因素1:数据库读写、RPC、网络IO、逻辑计算复杂度、缓存影响因素2:JVM[Throughput吞吐量、Footprint访存足迹、Latency延迟]影响性能的关键要素产品设计:产品逻辑、功能交互、动态效果、页面元素基础网络:网络=连接介质+计算终端代码质量&架构移动端环境:设备类型&性能、网络...

PHP,Golang,前端,.Net,解决方案,其他 2024-03-12 PM 330次 0条

golang切片(slice)基本操作

 本篇主要以简洁明了的方式记录分享 go 语言 slice 切片的基本使用操作,以及 go 在使用 slice 切片过程中的注意事项等等。golang切片(slice)创建可以使用make创建一个长度(len)为16的切片可以使用make创建一个长度(len)为16,cap为32 的切片var s []int var s []int={2,3,4,5} // 可以使用make创建一个长度(len)为16的切片 s := make([]int ,16 ) // 可以使用make创建一个长度(len)为16,cap为32 的切片 s := make([]int ,16 ,32)用golang内置函数(append)追加切片(slice)s1 := []int{0,1,2,3,4,5,6,7} s2 :=append(s1,10) s3 := append(s2,11) s4 := append(s3,12,13,14)用golang内置函数(cope)拷贝切片(slice)s1 := []int s2 := []int{2,3,4} cope(s2,s1) fmt....

Golang 2021-11-26 AM 1087次 0条

go安装gin web框架

 gin是一个用 Go(Golang) 编写的 web框架 ,它采用了类似 martini-like 的API,由于 httprouter ,其性能提高了40倍,如果你需要高性能和高生产率,下面我们来演示下怎么安装 gin web 框架。gin开源框架地址https://github.com/gin-gonic/gin#installation安装gin使用相关扩展//下载插件工具(安装gin前,先安装gopm这个工具) go get -v github.com/gpmgo/gopm //自动导入包插件 gopm get -g -v golang.org/x/tools/cmd/goimports //转码插件 gopm get -g -v golang.org/x/text //自动检测网页编码 gopm get -g -v golang.org/x/net/html安装gin矿建步骤流程安装完成测试是否安装成功package main import "github.com/gin-gonic/gin" func main() { r := gin.Defau...

Golang 2021-10-11 PM 555次 0条

go引入使用包异常cannot resolve symbol 'xxx'

 本文主要解决 golang 引入使用 gin包 的时候异常 cannot resolve symbol 'xxx' 这个问题一般比较 熟悉go语言 的同学一眼就知道怎么解决了,本文主要记录下以供其他新同学 排查问题 使用。go出现 cannot resolve symbol 异常原因 go.mod 文件没有 require 包,或者没有初始化 go.mod 解决 cannot resolve symbol 'xxx' 异常go mod init gin go mod edit -require github.com/gin-gonic/gin@latest 使用 go.mod 注意事项go使用go mod加速依赖管理 关于 go引入使用包异常cannot resolve symbol 'xxx' 通过以上方法已经完美解决了。

Golang,解决方案 2021-09-28 PM 1422次 0条

golang使用packr包把静态资源文件打包进二进制应用内

 当开发 fdem-os 时候 以为想把应用做成直接的单一启用文件,所以说一直再思考怎么把 静态文件 html以及一些css,js一类的文件给打包到应用内而不用通过程序下载在去加载,这样及方便使用又保证了代码的安全性,最终发现 golang 可以完美实现需求的 packr 第三方包。 通过 packr 我们可以完美的将静态资源打包进应用程序,并开启一个 http服务 以供使用。golang packr 包文档 packr项目文档地址 目前最新版本为 v2.8.1 版本,推荐使用 v2 版本进行开发。packr 包 官方介绍Packr is a simple solution for bundling static assets inside of Go binaries. Most importantly it does it in a way that is friendly to developers while they are developing Packr是将静态资产捆绑到 Go 二进制文件中的简单解决方案。最重要的是,它以对开发人员在开发期间友好的方式进行。 可以看...

软件工具,Golang,解决方案 2021-09-24 PM 963次 0条

go使用go mod加速依赖管理

 我们使用 go mod 可以很方便的管理使用 go 第三库,但是国内引用第三方库时候因为国内网络环境问题会非常慢,甚至可以说经常获取不到,今天我们就讲一下怎么加速 go mod 包下载。 go mod 国内代理提供商源站地址备注七牛云https://goproxy.cn/中国最可靠的 Go 模块代理 (推荐)goproxy.iohttps://goproxy.io/一个全球代理为 Go 模块而生 (推荐)阿里云http://mirrors.aliyun.com/goproxy/阿里云 go module公共代理仓库nexus社区https://gonexus.dev/为社区而制作怎么使用 go mod 国内代理go 1.13 及以上,配置go mod 国内代理(推荐)go env -w GO111MODULE=on go env -w GOPROXY=https://goproxy.cn,directmac 或 linux 配置go mod 国内代理export GO111MODULE=on export GOPROXY=https://goproxy.cn # 还可以设置不...

Golang,解决方案 2021-09-24 PM 1495次 0条

Go使用自定义包导入后打包异常解决

遇到的问题(build command-line-arguments: cannot find module for path)某个小功能一直使用的单文件进行打包编译,突然有一天慢慢变大了这个时候需要分包处理,分包处理后进行 go build xx 打包 然后就出现了异常 build command-line-arguments: cannot find module for path xxxx,然后不断地找寻原因最终找到了一个正确的解决方案,一下是处理步骤build command-line-arguments: cannot find module for path xxxx示例项目目录结构myProject -src --logic ---logic1.go ---logic2.go -main.gomain.gopackage main import ( "./src/logic" ) func main() { logic.Run(address, thread) } logic1.gopackage logic func Run() { // xxx...

Golang 2021-08-26 PM 843次 0条