积分充值
 首页
前端开发
AngularDartElectronFlutterHTML/CSSJavaScriptReactSvelteTypeScriptVue.js构建工具
后端开发
.NetC#C++C语言DenoffmpegGoIdrisJavaJuliaKotlinLeanMakefilenimNode.jsPascalPHPPythonRISC-VRubyRustSwiftUML其它语言区块链开发测试微服务敏捷开发架构设计汇编语言
数据库
Apache DorisApache HBaseCassandraClickHouseFirebirdGreenplumMongoDBMySQLPieCloudDBPostgreSQLRedisSQLSQLiteTiDBVitess数据库中间件数据库工具数据库设计
系统运维
AndroidDevOpshttpdJenkinsLinuxPrometheusTraefikZabbix存储网络与安全
云计算&大数据
Apache APISIXApache FlinkApache KarafApache KyuubiApache OzonedaprDockerHadoopHarborIstioKubernetesOpenShiftPandasrancherRocketMQServerlessService MeshVirtualBoxVMWare云原生CNCF机器学习边缘计算
综合其他
BlenderGIMPKiCadKritaWeblate产品与服务人工智能亿图数据可视化版本控制笔试面试
文库资料
前端
AngularAnt DesignBabelBootstrapChart.jsCSS3EchartsElectronHighchartsHTML/CSSHTML5JavaScriptJerryScriptJestReactSassTypeScriptVue前端工具小程序
后端
.NETApacheC/C++C#CMakeCrystalDartDenoDjangoDubboErlangFastifyFlaskGinGoGoFrameGuzzleIrisJavaJuliaLispLLVMLuaMatplotlibMicronautnimNode.jsPerlPHPPythonQtRPCRubyRustR语言ScalaShellVlangwasmYewZephirZig算法
移动端
AndroidAPP工具FlutterFramework7HarmonyHippyIoniciOSkotlinNativeObject-CPWAReactSwiftuni-appWeex
数据库
ApacheArangoDBCassandraClickHouseCouchDBCrateDBDB2DocumentDBDorisDragonflyDBEdgeDBetcdFirebirdGaussDBGraphGreenPlumHStreamDBHugeGraphimmudbIndexedDBInfluxDBIoTDBKey-ValueKitDBLevelDBM3DBMatrixOneMilvusMongoDBMySQLNavicatNebulaNewSQLNoSQLOceanBaseOpenTSDBOracleOrientDBPostgreSQLPrestoDBQuestDBRedisRocksDBSequoiaDBServerSkytableSQLSQLiteTiDBTiKVTimescaleDBYugabyteDB关系型数据库数据库数据库ORM数据库中间件数据库工具时序数据库
云计算&大数据
ActiveMQAerakiAgentAlluxioAntreaApacheApache APISIXAPISIXBFEBitBookKeeperChaosChoerodonCiliumCloudStackConsulDaprDataEaseDC/OSDockerDrillDruidElasticJobElasticSearchEnvoyErdaFlinkFluentGrafanaHadoopHarborHelmHudiInLongKafkaKnativeKongKubeCubeKubeEdgeKubeflowKubeOperatorKubernetesKubeSphereKubeVelaKumaKylinLibcloudLinkerdLonghornMeiliSearchMeshNacosNATSOKDOpenOpenEBSOpenKruiseOpenPitrixOpenSearchOpenStackOpenTracingOzonePaddlePaddlePolicyPulsarPyTorchRainbondRancherRediSearchScikit-learnServerlessShardingSphereShenYuSparkStormSupersetXuperChainZadig云原生CNCF人工智能区块链数据挖掘机器学习深度学习算法工程边缘计算
UI&美工&设计
BlenderKritaSketchUI设计
网络&系统&运维
AnsibleApacheAWKCeleryCephCI/CDCurveDevOpsGoCDHAProxyIstioJenkinsJumpServerLinuxMacNginxOpenRestyPrometheusServertraefikTrafficUnixWindowsZabbixZipkin安全防护系统内核网络运维监控
综合其它
文章资讯
 上传文档  发布文章  登录账户
IT文库
  • 综合
  • 文档
  • 文章

无数据

分类

全部后端开发(34)Go(34)

语言

全部中文(简体)(23)英语(11)

格式

全部PDF文档 PDF(30)其他文档 其他(4)
 
本次搜索耗时 0.034 秒,为您找到相关结果约 34 个.
  • 全部
  • 后端开发
  • Go
  • 全部
  • 中文(简体)
  • 英语
  • 全部
  • PDF文档 PDF
  • 其他文档 其他
  • 默认排序
  • 最新排序
  • 页数排序
  • 大小排序
  • 全部时间
  • 最近一天
  • 最近一周
  • 最近一个月
  • 最近三个月
  • 最近半年
  • 最近一年
  • pdf文档 Go GC: Latency Problem Solved

    Go GC: Latency Problem Solved Rick Hudson Google Engineer GopherCon Denver July 8, 2015 Google Confidential and Proprietary My Codefendants: The Cambridge Runtime Gang https://upload.wikimedia.o #1 Barrier: GC Latency Google Confidential and Proprietary When is the best time to do a GC? When nobody is looking. Using camera to track eye movement When subject looks away do a GC. Recovering org/wiki/File:WIFI_icon.svg#globalusage Google Confidential and Proprietary Or Trade Throughput for Reduced GC Latency Google Confidential and Proprietary Latency Nanosecond 1: Grace Hopper Nanosecond
    0 码力 | 20 页 | 897.11 KB | 1 年前
    3
  • pdf文档 The Go frontend for GCC

    is based on the Plan 9 C compiler originally written by Ken Thompson; this compiler is known as the gc compiler. This paper describes the sec- ond, a frontend to gcc, generally known as gccgo. A goal of ordinary unmodi- fied assemblers and linkers. This approach is different from the less conventional gc compiler, which does sig- nificant code generation work at link time. Gccgo is written in C++. As followed by a comma. This is the only place where arbitrary lookahead occurs in the gccgo parser. The gc compiler uses a different approach: it has a nonterminal for a comma-separated identifier list, which
    0 码力 | 14 页 | 122.25 KB | 1 年前
    3
  • pdf文档 2-6-Golang 在 Baidu-FrontEnd 的应用-陶春华

    7层流量代理GO-BFE • 应用层防火墙WAF • 百度GOLANG委员会成员 内容提要 • 后台程序开发的需求和难点 –C, Python and Go对比 • 采用Go语言重构BFE –背景和技术路线 –GC问题 –协议一致性 –分布式架构 后台程序开发的需求(1) • 性能 –C/C++, Java –Python, Ruby • 并发性 –Process, Thread, Event(编程难度) 几个问题 • GC优化 • http协议栈 • 分布式架构 GC带来的问题 –GC是个好东西,但也有问题 –难以避免的延迟(几十到几百ms) • 经验公式:10万对象1ms 扫描时间 –1个tcp连接,约10个对象=> 1万连接,1ms gc延迟 • GO-BFE的实时需求 –请求的处理延迟 平均1ms以内,最大10ms • 实测 –100万连接,400ms gc延迟 GC优化思路 GC优化思路 • Go的gc算法(go1.3) –Mark and Sweep:大量时间时间用于扫描对象 • 常规手段的核心:减少对象数 –小对象合并成大对象 • 利用Array来合并一组对象(内部对象计数为1) – 把数据放到C代码里面,通过cgo做接口使用 –对象复用 (对象池) –深度优化系统结构和算法 通过Array减少引用计数 OBJ1 OBJ2 OBJ3 OBJ1 OBJ2
    0 码力 | 35 页 | 730.17 KB | 1 年前
    3
  • pdf文档 Go性能优化概览-曹春晖

    com/bagder/http3-explained 逃逸分析 ⽤户声明的对象,被放在栈上还是堆上, 是由编译器的 escape analysis 来决定的 ⽅法论 内存使⽤优化 CPU 使⽤优化 阻塞优化 GC 优化 标准库优化 runtime 优化 应⽤层优化 底层优化 • 越靠近应⽤层,优化带来的效果越好 • 涉及到底层优化的,⼤多数情况下还是修改应⽤代码 逻辑优化 ⽣产环境的优化 第⼆部分 Go 的服务,还可以额外看看: • Goroutine 数,线程数 • 如果 Goroutine 数很多,那这些 Goroutine 在⼲什么? • GC 频率,gctrace 的内容(线上保存 gctrace 的话,注意硬盘类型),GC 的 stw 时间 • Memstats 中的其它指标: https://github.com/prometheus/client_golang/b https://golearn.coding.net/p/gonggongbanji/files/all/DF46 CPU 使⽤太⾼了-GC 使⽤ CPU 过⾼ https://github.com/glycerine/offheap • 可以将变化较少的结构放在堆外 • 通过 cgo 来管理内存 • 让 GC 发现不了这些对象 • 也就不会扫描了 Off heap 也可以减少 Go 进程的内存占⽤和内存使 ⽤波动,但要⽤到
    0 码力 | 40 页 | 8.69 MB | 1 年前
    3
  • pdf文档 2.1.1 Golang主动式内存缓存的优化探索之路

    可自定义冷热数据交换策略 还能提供什么帮助? 04. 降低硬件成本,降低依赖,保证稳定性 同样的性能,需要更少的硬件资源,降低成本 01 核心数据在本地,依赖少,更稳定 02 • 千万级内存对象,GC严重耗时,如何解决? • 复杂的查询场景,内存数据如何高效组织? • 主动式内存缓存,如何保证数据实时性? • 数据太多,内存不够用,如何进行存储扩展? 通过本次分享,可以带来哪些收获? 难点攻克 出现的GC耗时问题 • go原生map存储200万数据对象 • 数据对象中包含多个string,slice字段 • string,slice的内部结构包含指针 • GC并发标记、扫描的平均耗时10s • GC的辅助标记会抢占业务协程 每次QPS掉底都与GC相关 GC较高的耗时对QPS的影响巨大 服务性能上不去,QPS剧烈抖动 代码实施 语言局限性,如何突破? 解决GC扫描耗时的问题 解决GC扫描耗时的问题 08. 基于cgo,定制化的内存管理,减少运行时对golang结构的gc扫描 Copy Copy 内存数据与golang结构间的桥梁 09. 自研MemoryTile(定制化的golang序列化反序列化),解决百万数据量级序列化反序列化耗时问题 MemoryTile的通用性 复杂的数据结构,如何处理? 复杂结构的处理 MemoryTile Marshal MemoryTile
    0 码力 | 48 页 | 6.06 MB | 1 年前
    3
  • pdf文档 5.cgo 原理解析及优化实践

    maintainer • 玩过 DSL 编译器 • 对 LuaJIT、Go 有一些研究 目 录 背景介绍 01 cgo 工作机制 02 cgo 调度机制 03 CPU 优化 04 GC 优化 05 背景介绍 第一部分 网关发展历史 网关的扩展机制 什么是 MoE 举个例子 为什么需要 MoE Envoy  研发效能  良好的生态,上手门槛低  Wasm?Lua? C 栈顶,增长 32k ① 后续 C 栈顶变高,morestack 检查需要扩栈 ② 转发信号时,通过 sp 是否在 g0 栈来判断上下文 GC 优化 第五部分 内存交互原理 ① 内存布局一致 ② 生命周期一致  Go 对象是由 GC 管理的  确保不会被提前释放 ③ Go 指针  不可写  可以读? 同一进程内,可以互访 内存交互 – C to Go C 中常见的类型,都可以直接使用 堆内存  大小不确定的对象  大内存对象  需要 GC 扫描,开销高  目前没有实现 moving GC,但是不保证以后不会 栈上地址强制逃逸 问题:Go 传给 C 的 object 总是 会被 escape to heap 原因:C 又回调 Go 时,Goroutine 的 stack 可能会移动 减少 GC 对象的逃逸 增加 annotations,标记不会回调 https://go-review
    0 码力 | 45 页 | 5.74 MB | 1 年前
    3
  • pdf文档 2.4 Go 1.4 runtime

    1MB span span (objects) grow small object large object span OS cache sweep. 垃圾回收器引发回收操作。 GC heap large central small cache span/objects span ref != 0 ref = 0 相邻合并 OS X fixalloc. allspans: 垃圾回收遍历。 2. Garbage Collector 垃圾回收器 gc. 阈值触发,并行标记,并发清理。 定期强制回收,释放物理内存。 版本升级,垃圾回收效率总是核心问题。 gogc. 阈值检查,或强制回收。 malloc next_gc 0 gogc runtime.gc() stop start mark sweep stop start mark sweep markroot scanblock heap.bitmap Go 1.5: concurrent pauseless collector. sweep. 串行,或与用户逻辑并发执行。 gc eagersweep concurrent goroutine bgsweep starttheworld mem allocator sweepone all spans sysmon
    0 码力 | 29 页 | 608.57 KB | 1 年前
    3
  • pdf文档 2.2.3 Go语言的抢占式调度

    page-id=5106%3A2&node- id=5106%3A3&scaling=scale-down 何时需要抢占 什么时候 我们需要抢占⼀个 正在执⾏(running)的 G 呢? 抢占的触发时机-GC STW gcStart STW preemptall preemptone 抢占的触发时机-栈扫描 markroot scan stack set preempt flag suspendG markroot -> allgs[i] -> g -> suspendG(g) -> scan g stack -> resumeG 信号式抢占-栈扫描抢占 信号式抢占-后台监控抢占 && gc stw 抢占 sysmon 抢占流程(运⾏超过 10ms): sysmon -> retake -> preemptone -> asyncPreempt -> globalrunqput stw goroutine 峰值创建的⼤量 goroutine 会在之后消耗 CPU GC ⽆分代,⼤量对象、低频更新的系统中劣势很⼤ GC 需要扫描所有存活对象 复杂业务系统 len(config) > 100w 特征系统 len(feature_map) > 100w 极低频率(甚⾄可能是天级)更新的内存对象 仍然需要为 gc mark 付出额外成本 本 PPT 内容不建议作为⾯试题。 作者保留对使⽤其作为⾯试题⾏为的鄙视。
    0 码力 | 44 页 | 7.43 MB | 1 年前
    3
  • pdf文档 1.5 Go 语言构建高并发分布式系统实践

    ⾼高达69G GC 3~6s 瓶颈 散列在协程⾥里⾯面的io buffer和 对象不复⽤用 问题与瓶颈 问题与瓶颈 瓶颈 散列在协程⾥里⾯面的io 问题与瓶颈 奔放的协程使⽤用 ⺴⽹网络环境不好 引起激增 问题与瓶颈 2~3s的GC 瓶颈 散列在协程⾥里⾯面的io 问题与瓶颈 奔放的协程使⽤用 接⼝口响应速度 降低,重试 增多,压⼒力倍增 问题与瓶颈 2~3s的GC 瓶颈 散列在协程⾥里⾯面的io 问题与瓶颈 奔放的协程使⽤用 内存暴涨 问题与瓶颈 io阻塞, 协程激增 所有实例组通信数据监控 性能监控与调优 架构迭代 压测平台 拆分多实例 l 缓解GC压⼒力(gc时间减少40%) 按业务类型聚类,⼲⼴广播(io密集),多播,点对点(内部通信密集),聊天室(cpu密集) 分层服务,按层次扩展改为分集群(Set/Cell思想),各⾃自独⽴立,⼜又具备全被全部功能⼦子集群
    0 码力 | 39 页 | 5.23 MB | 1 年前
    3
  • pdf文档 Go 入门指南(The way to Go)

    Ruby 那样通过实现过程来定义编码规范。作为一门具有明确编码规范的语言,它要求可以采用不 同的编译器如 gc 和 gccgo(第 2.1 节)进行编译工作,这对语言本身拥有更好的编码规范起到很大帮 助。 LALR 是 Go 语言的语法标准,你也可以在 src/cmd/internal/gc/go.y 中查看到,这种语法标准在编译 时不需要符号表来协助解析。 1.2.5 语言的特性 Go 语言开发团队开发了适用于以下操作系统的编译器: Linux FreeBSD Mac OS X(也称为 Darwin) 目前有2个版本的编译器:Go 原生编译器 gc 和非原生编译器 gccgo,这两款编译器都是在类 Unix 系统 下工作 。其中,gc 版本的编译器已经被移植到 Windows 平台上,并集成在主要发行版中,你也可以通 过安装 MinGW 从而在 Windows 平台下使用 gcc 编 码拷贝到相应平台上进行编译即可,或者可以使用交叉编译来构建目标平台的应用程序(第 2.2 节)。但 如果你打算使用 cgo 或者类似文件监控系统的软件,就需要根据实际情况进行相应地修改了。 1. Go 原生编译器 gc: 主要基于 Ken Thompson 先前在 Plan 9 操作系统上使用的 C 工具链。 Go 语言的编译器和链接器都是使用 C 语言编写并产生本地代码,Go 不存在自我引导之类的功能。因
    0 码力 | 380 页 | 2.97 MB | 1 年前
    3
共 34 条
  • 1
  • 2
  • 3
  • 4
前往
页
相关搜索词
GoGCLatencyProblemSolvedThefrontendforGCCGolangBaiduFrontEnd应用春华性能优化概览春晖2.1主动动式主动式内存缓存探索cgo原理解析实践2.41.4runtime2.2语言抢占调度式调度1.5构建并发分布布式系统分布式分布式系统入门指南wayto
IT文库
关于我们 文库协议 联系我们 意见反馈 免责声明
本站文档数据由用户上传或本站整理自互联网,不以营利为目的,供所有人免费下载和学习使用。如侵犯您的权益,请联系我们进行删除。
IT文库 ©1024 - 2025 | 站点地图
Powered By MOREDOC AI v3.3.0-beta.70
  • 关注我们的公众号【刻舟求荐】,给您不一样的精彩
    关注我们的公众号【刻舟求荐】,给您不一样的精彩