- C语言编译四个阶段: 预处理、编译、汇编、链接。预处理阶段:预处理器cpp根据字符#开头的命令,修改C程序。通常以i作为文件扩展名编译阶段:编译器cc1将文件文件hello.i翻译成文本文件hello.s,它包含一个汇编语言程序。汇编阶段:接下来,汇编器as将hello.s翻译成机器语言指令,把这些指令打包成一种叫做可重定位目标程序的格式,并将结果保存在目标文件hello.o中。链接阶段:链... C语言编译四个阶段: 预处理、编译、汇编、链接。预处理阶段:预处理器cpp根据字符#开头的命令,修改C程序。通常以i作为文件扩展名编译阶段:编译器cc1将文件文件hello.i翻译成文本文件hello.s,它包含一个汇编语言程序。汇编阶段:接下来,汇编器as将hello.s翻译成机器语言指令,把这些指令打包成一种叫做可重定位目标程序的格式,并将结果保存在目标文件hello.o中。链接阶段:链...
- 参考资料翻译自 https://blog.golang.org/pipelines 术语 Pipeline流水线 Stage阶段 fan-in扇入 fan-out扇出 介绍Go 的并发原语可以轻松构建流数据管道,从而高效利用 I/O 和多个 CPU。 本文展示了此类pipelines的示例,强调了操作失败时出现的细微之处,并介绍了干净地处理失败的技术。 什么是pipeline?pipeli... 参考资料翻译自 https://blog.golang.org/pipelines 术语 Pipeline流水线 Stage阶段 fan-in扇入 fan-out扇出 介绍Go 的并发原语可以轻松构建流数据管道,从而高效利用 I/O 和多个 CPU。 本文展示了此类pipelines的示例,强调了操作失败时出现的细微之处,并介绍了干净地处理失败的技术。 什么是pipeline?pipeli...
- 翻译自https://blog.golang.org/concurrency-timeouts Go并发范式:超时,继续执行并发编程有自己的习惯用法。 超时是一个很好的例子。在商用软件开发时,所有操作都需要有超时。虽然 Go 的channel不直接支持超时,但很容易实现。假设我们想从通道 ch 接收,但希望实现一秒钟超时。 我们可以创建一个信号channel并启动一个在通道上发送之前休眠的... 翻译自https://blog.golang.org/concurrency-timeouts Go并发范式:超时,继续执行并发编程有自己的习惯用法。 超时是一个很好的例子。在商用软件开发时,所有操作都需要有超时。虽然 Go 的channel不直接支持超时,但很容易实现。假设我们想从通道 ch 接收,但希望实现一秒钟超时。 我们可以创建一个信号channel并启动一个在通道上发送之前休眠的...
- 翻译自https://blog.golang.org/codelab-share 正文传统线程模型(如Java、C++、Python)需要程序通过内存在线程间通信。典型的,共享数据结构被锁保护,线程通过争夺锁来访问这些数据。在某些情况下,通过线程安全的数据结构(如Python的队列,Java的ConcurrentHashMap)可以很容易地做到这一点。Go的并发原语:goroutines和... 翻译自https://blog.golang.org/codelab-share 正文传统线程模型(如Java、C++、Python)需要程序通过内存在线程间通信。典型的,共享数据结构被锁保护,线程通过争夺锁来访问这些数据。在某些情况下,通过线程安全的数据结构(如Python的队列,Java的ConcurrentHashMap)可以很容易地做到这一点。Go的并发原语:goroutines和...
- 翻译https://blog.golang.org/defer-panic-and-recover TLTRdefer的函数在压栈的时候也会保存参数的值,而不是在执行时取值。换句话说,就是defer函数的参数在defer语句出现时,就已经确定下来了。当外围函数执行完成之后,defer 函数是以后进先出的方式执行的defer 函数可以对函数的返回值进行读写 正文Go有着常见的控制流:if, ... 翻译https://blog.golang.org/defer-panic-and-recover TLTRdefer的函数在压栈的时候也会保存参数的值,而不是在执行时取值。换句话说,就是defer函数的参数在defer语句出现时,就已经确定下来了。当外围函数执行完成之后,defer 函数是以后进先出的方式执行的defer 函数可以对函数的返回值进行读写 正文Go有着常见的控制流:if, ...
- 参考资料https://github.com/golang/go/blob/master/src/cmd/compile/README.mdhttps://medium.com/a-journey-with-go/go-overview-of-the-compiler-4e5a153ca889基于Golang 1.16版本 阶段Go编译器由四个阶段组成,可以分为两类frontend前端:这... 参考资料https://github.com/golang/go/blob/master/src/cmd/compile/README.mdhttps://medium.com/a-journey-with-go/go-overview-of-the-compiler-4e5a153ca889基于Golang 1.16版本 阶段Go编译器由四个阶段组成,可以分为两类frontend前端:这...
- Golang没有内置的enum类型,通常都是用常量来模拟。如下例所示:package enum1import ( "fmt" "testing")type Hero intconst ( IRONMAN Hero = 0 SPIDERMAN Hero = 1 BATMAN Hero = 2)func TestName(t *testing.T) { ironman := IRONM... Golang没有内置的enum类型,通常都是用常量来模拟。如下例所示:package enum1import ( "fmt" "testing")type Hero intconst ( IRONMAN Hero = 0 SPIDERMAN Hero = 1 BATMAN Hero = 2)func TestName(t *testing.T) { ironman := IRONM...
- 翻译自https://go101.org/article/pointer.html尽管Go吸收了很多其他语言的特性,但Go总体来说是一个C家族语言。其中一个证据就是Go也支持指针。Go指针和C指针在许多方面非常相似,但其中也有一些不同。本文将会列举Go指针的概念和细节。 Memory Address 内存地址内存地址指的是整个系统管理(通常由操作系统管理)的内存空间中的偏移量(byte的个... 翻译自https://go101.org/article/pointer.html尽管Go吸收了很多其他语言的特性,但Go总体来说是一个C家族语言。其中一个证据就是Go也支持指针。Go指针和C指针在许多方面非常相似,但其中也有一些不同。本文将会列举Go指针的概念和细节。 Memory Address 内存地址内存地址指的是整个系统管理(通常由操作系统管理)的内存空间中的偏移量(byte的个...
- 使用Delve对Go程序进行Debug 翻译自https://medium.com/a-journey-with-go/go-debugging-with-delve-core-dumps-384145b2e8d9CoreDump是异常退出程序的内存快照。可以用来死后debug来找出crash发生的原因以及牵连的变量。通过GOTRACEBACK,Go提供了控制程序崩溃时的输出。变量还可以强... 使用Delve对Go程序进行Debug 翻译自https://medium.com/a-journey-with-go/go-debugging-with-delve-core-dumps-384145b2e8d9CoreDump是异常退出程序的内存快照。可以用来死后debug来找出crash发生的原因以及牵连的变量。通过GOTRACEBACK,Go提供了控制程序崩溃时的输出。变量还可以强...
- 参考资料https://medium.com/a-journey-with-go/go-how-to-take-advantage-of-the-symbols-table-360dd52269e5在参考资料的基础上,尝试复写已存在的变量,并更新Go版本到1.16。符号表由编译器创建维护,用于存储程序相关的信息,比如函数或全局变量。 符号表每个由Go编译的二进制程序默认包含符号表。举个例子p... 参考资料https://medium.com/a-journey-with-go/go-how-to-take-advantage-of-the-symbols-table-360dd52269e5在参考资料的基础上,尝试复写已存在的变量,并更新Go版本到1.16。符号表由编译器创建维护,用于存储程序相关的信息,比如函数或全局变量。 符号表每个由Go编译的二进制程序默认包含符号表。举个例子p...
- 环境准备需要有一个运行的java程序,如果你已经有了运行中的java程序,请跳过这一节,示例,我启动自制的kafka镜像docker run ttbb/kafka:mate 找到java程序的pidps -ef或者jps均可,其中jps需要安装jdk 安装arthaswget https://github.com/alibaba/arthas/releases/download/artha... 环境准备需要有一个运行的java程序,如果你已经有了运行中的java程序,请跳过这一节,示例,我启动自制的kafka镜像docker run ttbb/kafka:mate 找到java程序的pidps -ef或者jps均可,其中jps需要安装jdk 安装arthaswget https://github.com/alibaba/arthas/releases/download/artha...
- skywalking的java agent迁移到了新仓库https://github.com/apache/skywalking-java下载后使用ide打开有一些proto的文件需要生成,使用如下命令行编译生成mvn clean package -DskipTests -Pall然后需要把proto生成的文件添加到classpath中即可 skywalking的java agent迁移到了新仓库https://github.com/apache/skywalking-java下载后使用ide打开有一些proto的文件需要生成,使用如下命令行编译生成mvn clean package -DskipTests -Pall然后需要把proto生成的文件添加到classpath中即可
- TLDR隧道协议无IpIpIpSitUDP带宽(MB/s)1305128812891259在一种工作负载下,进行简单测试,IpIp与IpSit性能相当,UDP稍差。 测试服务器信息测试Server服务器:172.31.183.57测试Client服务器:172.31.183.58网络掩码:255.255.240.0 无隧道# serveriperf3 -s -f K# clientiper... TLDR隧道协议无IpIpIpSitUDP带宽(MB/s)1305128812891259在一种工作负载下,进行简单测试,IpIp与IpSit性能相当,UDP稍差。 测试服务器信息测试Server服务器:172.31.183.57测试Client服务器:172.31.183.58网络掩码:255.255.240.0 无隧道# serveriperf3 -s -f K# clientiper...
- Dapper出现的背景分布式系统不容易观测。有些问题靠日志和统计根本无法挖掘。有些无法重现或极难重现的场景。 Dapper设计的原则 低时延微不足道的性能影响,使应用程序团队愿意迁移。 应用透明应用尽量少做侵入式修改 可扩展随着应用程序的规模扩展 Dapper概念 概览通过引入parent id和span id等来将调用链串起来 trace id特定的模式是trace id span id... Dapper出现的背景分布式系统不容易观测。有些问题靠日志和统计根本无法挖掘。有些无法重现或极难重现的场景。 Dapper设计的原则 低时延微不足道的性能影响,使应用程序团队愿意迁移。 应用透明应用尽量少做侵入式修改 可扩展随着应用程序的规模扩展 Dapper概念 概览通过引入parent id和span id等来将调用链串起来 trace id特定的模式是trace id span id...
- 用了几个小时读完了Gorilla这篇经典的 时序数据库论文 ,prometheus的时序数据库在很多地方都参考了这篇论文。以此文总结一下读后感,非论文翻译。截图基本都出自于论文。本论文可以解答如下的普罗问题 为什么普罗不支持字符串类型,只支持double作为监控值为了压缩数据,普罗使用了高效的用于double的压缩算法。 为什么普罗的默认的落盘间隔是2个小时根据这篇论文,2个小时或以上的bl... 用了几个小时读完了Gorilla这篇经典的 时序数据库论文 ,prometheus的时序数据库在很多地方都参考了这篇论文。以此文总结一下读后感,非论文翻译。截图基本都出自于论文。本论文可以解答如下的普罗问题 为什么普罗不支持字符串类型,只支持double作为监控值为了压缩数据,普罗使用了高效的用于double的压缩算法。 为什么普罗的默认的落盘间隔是2个小时根据这篇论文,2个小时或以上的bl...
上滑加载中
推荐直播
-
HDC深度解读系列 - Serverless与MCP融合创新,构建AI应用全新智能中枢2025/08/20 周三 16:30-18:00
张昆鹏 HCDG北京核心组代表
HDC2025期间,华为云展示了Serverless与MCP融合创新的解决方案,本期访谈直播,由华为云开发者专家(HCDE)兼华为云开发者社区组织HCDG北京核心组代表张鹏先生主持,华为云PaaS服务产品部 Serverless总监Ewen为大家深度解读华为云Serverless与MCP如何融合构建AI应用全新智能中枢
回顾中 -
关于RISC-V生态发展的思考2025/09/02 周二 17:00-18:00
中国科学院计算技术研究所副所长包云岗教授
中科院包云岗老师将在本次直播中,探讨处理器生态的关键要素及其联系,分享过去几年推动RISC-V生态建设实践过程中的经验与教训。
回顾中 -
一键搞定华为云万级资源,3步轻松管理企业成本2025/09/09 周二 15:00-16:00
阿言 华为云交易产品经理
本直播重点介绍如何一键续费万级资源,3步轻松管理成本,帮助提升日常管理效率!
回顾中
热门标签