维影企业网站管理系统西苑做网站公司

news/2025/9/24 7:41:12/文章来源:
维影企业网站管理系统,西苑做网站公司,仿wordpress大学模板,网上购物哪个平台质量有保证为什么80%的码农都做不了架构师#xff1f; 你想知道你的Go程序在做什么吗#xff1f; go tool trace 可以向你揭示#xff1a;Go程序运行中的所有的运行时事件。 这种工具是Go生态系统中用于诊断性能问题时#xff08;如延迟#xff0c;并行化和竞争异常… 为什么80%的码农都做不了架构师    你想知道你的Go程序在做什么吗  go tool trace 可以向你揭示Go程序运行中的所有的运行时事件。 这种工具是Go生态系统中用于诊断性能问题时如延迟并行化和竞争异常最有用的工具之一。 在我之前的 博客文章 中我提到我们在Pusher中使用 go tool trace 来跟踪为何Go垃圾收集器有很长的停顿时间。 在这篇博文中我更加深入的介绍 go toll trace 。 go tool trace 试用 go tool trace 可以显示大量的信息所以从哪里开始是个问题。 我们首先简要介绍使用界面然后我们将介绍如何查找具体问题。 go tool trace UI是一个Web应用程序。 下面我已经嵌入了一个这个web程序的实例  此示例 是可视化并行快速排序实现的追踪信息 请尝试这个例子有关导航UI的帮助请单击右上角的“”。单击屏幕上的任何事件可以在下面获取更多信息。这里有一些你可以从这个追踪中找到的有价值的信息 这个程序运行多长时间 有多少goroutines运行872微秒 该进程何时第一次升级到使用三个OS线程 什么时候主要调用qSortPar 是什么导致额外的过程1,2和3开始工作 proc2什么时候停止 太棒了! 我应该怎么在我的程序中使用 go tool trace ? 您必须调整程序以将运行时事件写入二进制文件。 这涉及从标准库导入 runtime/trace 并添加几行样板代码。 这个快速的视频将引导您 视频 以下是需要复制粘贴的代码 package main import ( osruntime/trace )func main() {f, err : os.Create(trace.out) if err ! nil { panic(err)} defer f.Close()err trace.Start(f)if err ! nil {panic(err)} defer trace.Stop() // Your program here } 这将使您的程序以 二进制格式 在文件trace.out中写入事件数据。 然后可以运行 go tool trace trace.out 。 这将解析跟踪文件并使用可视化程序打开浏览器。 该命令还将启动服务器并使用跟踪数据来响应可视化操作。 在浏览器中加载初始页面后单击“View trace”。 这将加载跟踪查看器如上面嵌入的那样。 使用go tool trace能解决什么问题? 我们来看一个如何使用这个工具跟踪典型问题的例子。 诊断延迟问题 当完成关键任务的goroutine被阻止运行时可能会引起延迟问题。 可能的原因有很多做系统调用时被阻塞; 被共享内存阻塞通道/互斥等; 被runtime系统例如GC阻塞甚至可能调度程序不像您想要的那样频繁地运行关键goroutine。 所有这些都可以使用 go tool trace 来识别。 您可以通过查看PROCs时间线来跟踪问题并发现一段时间内goroutine被长时间阻塞。 一旦你确定了这段时间应该给出一个关于根本原因的线索。 作为延迟问题的一个例子让我们看看上一篇博文中 长时间的GC暂停  红色的事件代表了唯一的程序goroutine正在运行。 在所有四个线程上并行运行的goroutines是垃圾收集器的MARK阶段。 这个MARK阶段阻止了主要的goroutine。 你能出到阻止runtime.main goroutine的时间长短吗 在Go团队宣布GC暂停时间少于100微秒后 ,我很快就调查了这个延迟问题。 我看到的漫长的停顿时间 go tool trace 的结果看起来很奇怪特别是可以看到它们(暂停)是在收集器的并发阶段发生的。  我在go-nuts 邮件列表中提到了这个问题 似乎与 这个问题 有关现在已经在Go 1.8中修复了。 我的基准测试又出现了 另一个GC暂停问题 这在写本文时依然会出现。 如果没有 go tool trace 这一工具我是无法完成调查工作的。 诊断并行问题 假设您已经编写了一个程序您希望使用所有的CPU但运行速度比预期的要慢。 这可能是因为您的程序不像您所期望的那样并行运行。 这可能是由于在很多关键路径上串行运行太多而很多代码原本是可以异步并行运行的。 假设我们有一个pub/sub消息总线我们希望在单个goroutine中运行以便它可以安全地修改没有加互斥锁的用户map。 请求处理程序将消息写入消息总线队列。 总线从队列中读取消息在map中查找订阅者并将消息写入其套接字。 让我们看看单个消息的 go tool trace 中的内容 最初的绿色事件是http处理程序读取发布的消息并将其写入消息总线事件队列。 之后消息总线以单个线程运行 - 第二个绿色事件 - 将消息写给订阅者。 红线显示消息写入订户的套接字的位置。 写入所有订阅者的过程需要多长时间 问题是四分之一的线程正在闲置。 有没有办法利用它们 答案是肯定的 我们不需要同步写入每个用户; 写入可以在单独的goroutine中同时运行。 让我们看看如果我们作出这个变化会发生什么 正如你所看到的写给订阅者消息的过程正在许多goroutines的上同步进行。 但它是否更快 有趣的是鉴于我们使用4X的CPU加速是适合的。 这是因为并行运行代码有更多的开销启动和停止goroutines; 共享内存以及单独的缓存。 加速的理论上限使得我们无法实现4倍延迟降低 阿姆达尔定律 。 实际上并行运行代码往往效率较低; 特别是在goroutine是非常短暂的或者他们之间有很多的竞争的情况下。 这是使用此工具的另一个原因尝试这两种方法并检查哪种工作最适合您的用例。 什么时候 go tool trace 不合适 当然 go tool trace 不能解决一切问题。 如果您想跟踪运行缓慢的函数或者找到大部分CPU时间花费在哪里这个工具就是不合适的。 为此您应该使用 go tool pprof 它可以显示在每个函数中花费的CPU时间的百分比。  go tool trace 更适合于找出程序在一段时间内正在做什么而不是总体上的开销。 此外还有“view trace”链接提供的其他可视化功能这些对于诊断争用问题特别有用。 了解您的程序在理论上的表现使用老式Big-O分析也是无可替代的。 希望这篇文章可以让您了解如何使用 go tool trace 诊断问题。 即使您没有解决具体问题可视化您的程序是检查程序运行时特性的好方法。 我在这篇文章中使用的例子很简单但更复杂的程序中的症状应该与此惊人的相似。 这个博客文章给了你一个使用 go tool trace 的介绍但你可能希望更深入地深入了解该工具。 目前正在进行的 官方 go tool trace 文档 相当稀少。 有一个 Google文档 更详细。 除此之外我发现参考源代码是很有用可以找出 go tool trace 如何工作 go tool trace 源代码 二进制跟踪解析器的源代码 trace 源代码 go tool trace 的Web界面来自 Catapult项目的跟踪查看器 。 该查看器可以从许多跟踪格式生成可视化。 go工具跟踪使用 基于JSON 的跟踪事件格式。 转载于:https://my.oschina.net/tlkt/blog/918115

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/915228.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网站 文章排版适合做网站开发的电脑配置

你的投票也许能让 KNIME 中文化快一点点。 i18n 是个很搞笑的单词,它是英文 internationalization 国际化的缩写。18 指的是首字母i和末字母n中间有18个字母。另外还有什么 K8s 也是一样,中间省去了8个字母 ... 真是懒的可以。指北君还想起一个类似的笑话…

做一个15页的网站怎么做2345网址导航中国百年品牌

TOGAF是技术无关的企业级架构框架,WAF则侧重于云的最佳实践和指导方针,本文介绍了两者的异同。原文: Enterprise Architecture with TOGAF and Well-Architected Frameworks (AWS, Azure and Google) 简介 本文旨在解释TOGAF和云架构框架/良好架构框架(W…

做简历哪个网站比较好网站建设免费维护

参考博客: https://blog.csdn.net/DroidPhone/article/details/7165482 (一下内容基本是原博主的博客转载) 文章目录 一、ASOC的由来二、硬件架构三、软件架构四、数据结构五、内核对ASoC的改进 一、ASOC的由来 ASoC–ALSA System on Chip …

做网站的资金来源北京高端网站建设飞沐

这是我的第 54 篇原创文章。String 类型是我们使用最频繁的数据类型,没有之一。那么提高 String 的运行效率,无疑是提升程序性能的最佳手段。我们本文将从 String 的源码入手,一步步带你实现字符串优化的小目标。不但教你如何有效的使用字符串…

开源建站工具头条小程序

VSCode 配置 C++ 环境(Windows) 参考http://t.csdnimg.cn/27G0Z 1. 配置 C++ 编译器 首先需要安装 C++ 编译器。在 Windows 上,可以安装 MinGW 或者 Visual Studio;在 MacOS 上,可以安装 Clang 或者 Xcode;在 Linux 上,可以安装 GCC。 1.2 添加环境变量 将 mingw64…

小蜜蜂网站建设网站快照怎么做

扭线机属于线缆加工设备,线缆加工设备种类非常多。有用于网线绞合的单绞,双绞机等,有关单绞机相关算法介绍,大家可以查看专栏相关文章,有详细介绍,常用链接如下: 线缆行业单绞机控制算法&#…

平面设计案例网站wordpress cms布局

正题 评测记录:https://www.luogu.org/recordnew/lists?uid52918&pidP3435 大意 一个字符串,对于每个前缀,求复制一份放在末尾可以覆盖整个前缀的前缀,求所有的长度和。 解题思路 这道题如果暴力的话很简单,对于每个前缀每…

上传网站图片不显示自己建的网站如何百度搜索

观察者模式(Observer) 观察者模式(Observer)简介: 定义一个一对多的依赖关系,让多个观察者对象监听某个主题对象,当主题对象的状态发生改变时,主题对象则通知所有的观察者对象&#…

中国建设银行培训网站网站素材图

前置概念 偏差 指模型的预测值与真实值之间的差异,它反映了模型的拟合能力。 方差 指模型在不同的训练集上产生的预测结果的差异,它反映了模型的稳定性。 方差和偏差对预测结果所造成的影响 在机器学习中,我们通常希望模型的偏差和方差都…

宏润建设集团网站手机网页游戏排行榜前十名

文章目录 背景分析 问题来了比较一开始的情况解决方式 背景 之前有分析过一次类似问题,最终结论是在keyby之后,其中有一个key数量特别庞大,导致对应的subtask压力过大,进而使得整个job不再继续运作。在这个问题解决之后&#xff…

福建省高速公路建设管理网站软件开发工具和环境

重点 更多前端知识 诚邀各位前端从事者爱好者加入前端大佬技术交流社区,本社区主要分享技术栈、个人心得、技术交流、问题解惑等前端体系交流 点击下方文字加入 前端大佬技术交流社区 1. 函数的定义和调用 1.1 函数的定义方式 方式1 函数声明方式 function 关键…

包小盒设计网站wordpress手机版主题无效

简单工厂模式描述的是,通过类的继承关系,父类(工厂类)与子类(产品类),调用父类中的方法,实际干活儿的是子类中的方法;封装需求的不确定性,做出通用的编程&…

德阳网站建设优化阳朔到桂林北

2558. 从数量最多的堆取走礼物 原题地址: 力扣每日一题:从数量最多的堆取走礼物 给你一个整数数组 gifts ,表示各堆礼物的数量。每一秒,你需要执行以下操作: 选择礼物数量最多的那一堆。 如果不止一堆都符合礼物数量最…

开网站做代销好网站根目录 本地共享

jarsigner, keytool 这2个都是JDK的内置工具,在JDK的bin目录中可以找到, 下面是使用jarsigner给jar文件签名的5个步骤: 1. 使用java的jar工具创建JAR文件; # 将当前文件夹下的所有文件打包到myapp-1.0.jar文件中 后面的*为通配符, 也可以指定需要打包的jar中的文件或者文件夹…

苏州网站开发外包公司免费ppt模板下载公众号

应用场景 上一篇《Spring Cloud Stream消费失败后的处理策略(一):自动重试》介绍了默认就会生效的消息重试功能。对于一些因环境原因、网络抖动等不稳定因素引发的问题可以起到比较好的作用。但是对于诸如代码本身存在的逻辑错误等&#xff…

做网站公司哪家正规古楼角网站建设

2019独角兽企业重金招聘Python工程师标准>>> 由于最近用阿里云日志服务整合log4j,在配置com.aliyun.openservices.log.log4j.LoghubAppender需要设置一些参数,因为项目中有统一的配置文件,所以想要可以直接在log4j.xml中通过${}来…

2025年国家科技奖初评公布(科技发明奖)

微信视频号:sph0RgSyDYV47z6快手号:4874645212抖音号:dy0so323fq2w小红书号:95619019828B站1:UID:3546863642871878B站2:UID: 3546955410049087 添加图片注释,不超过 140 字(可选) 添加图片注释,不超过 140 …

做网站的收入上海平台网站建设

SQL Server横向扩展方案-SODA每次在提到SQL Server扩展性问题的时候,似乎很多的SQL Server DBA或者使用微软技术开发的朋友心里总是一整痛:SQL Server只能纵向的扩展(Scaling-Up),无法横向的扩展(Scaling-Out)。每次有人提到Oracle和SQL Serv…

wordpress替代广州网站优化公司

对于前端来说,2023 是非同寻常的一年。我们见证了争相抢占甚至是发明服务器端渲染(SSR)市场的热潮、AI 的不断进步、Web 渲染器和 JS 引擎的寒武纪大爆发、一大批有力的竞争者试图摧毁巨头的统治地位…… 在开始预测未来一年发展趋势之前&am…

推荐系统网站开发徐州做网站企业

本次以多台机器需部署zabbix客户端为例: 机器先做免密互信,ansible主机上执行ssh-keygen,一路回车,然后将公钥发送给需管理的主机: ssh-copy-id rootIP 1、编辑hosts文件,添加需配置的主机IP,并测试连通…