当前位置: 首页 > news >正文

自己做的网站不满屏wordpress小说插件

自己做的网站不满屏,wordpress小说插件,结婚证app制作软件,网站源码程序Go 编译器 Go 编译器是通过 go 工具执行的#xff0c;这个工具的功能不仅仅是生成可执行文件。你可以使用 go tool compile 命令来编译一个 Go 源文件。这个操作将生成一个目标文件#xff0c;也就是 .o 后缀的文件。以下是在 macOS Mojave 系统上执行的命令和结果展示…Go 编译器 Go 编译器是通过 go 工具执行的这个工具的功能不仅仅是生成可执行文件。你可以使用 go tool compile 命令来编译一个 Go 源文件。这个操作将生成一个目标文件也就是 .o 后缀的文件。以下是在 macOS Mojave 系统上执行的命令和结果展示 $ go tool compile unsafe.go $ ls -l unsafe.o -rw-r--r-- 1 mtsouk staff 6926 Jan 22 21:39 unsafe.o $ file unsafe.o unsafe.o: current ar archive目标文件是一种包含机器代码的文件通常是不可直接执行的。它的一个主要优势在于在链接阶段所需的内存更少。如果你使用 -pack 命令行参数go tool compile 会生成一个归档文件而不是目标文件 $ go tool compile -pack unsafe.go $ ls -l unsafe.a -rw-r--r-- 1 mtsouk staff 6926 Jan 22 21:40 unsafe.a $ file unsafe.a unsafe.a: current ar archive归档文件是一种二进制文件包含一个或多个文件主要用于将多个文件合并为一个文件。ar 是其中一种格式Go 使用的就是这种格式。这个示例中的 unsafe.go 文件不包含任何特殊代码以上的命令适用于任何有效的 Go 源文件。 查看归档文件内容 你可以使用以下命令查看 .a 归档文件的内容 $ ar t unsafe.a __.PKGDEF _go_.o-race 标志 另一个值得一提的 go tool compile 命令行参数是 -race它可以检测竞态条件。在并发编程中竞态条件可能导致意想不到的错误。你可以通过以下命令生成汇编语言的输出 $ go tool compile -S unsafe.go这个命令会生成大量的输出虽然它难以理解但这意味着 Go 编译器很好地隐藏了复杂性除非你主动要求查看这些细节。 垃圾回收 垃圾回收GC是释放未被使用的内存空间的过程换句话说GC 会找到那些已经超出作用范围且无法再被引用的对象并释放它们占用的内存空间。这个过程是在 Go 程序运行时以并发方式执行的而不是在程序执行前或执行后才开始。Go 垃圾回收的官方文档中提到 “GC 与变更线程并发运行精确类型化也称为精确允许多个 GC 线程并行运行。它是并发标记-清除使用写屏障非代际且非压缩。分配采用大小分离的每 P 分配区以最小化碎片化同时在常见情况下消除锁。” 其中涉及到许多术语接下来我们会逐一解释。首先我会展示一个查看垃圾回收过程参数的方法。 使用标准库查看垃圾回收参数 幸运的是Go 标准库提供了一些函数可以帮助我们了解垃圾回收的运行方式。下面的代码展示了如何获取垃圾回收的相关信息 package mainimport (fmtruntimetime )func printStats(mem runtime.MemStats) {runtime.ReadMemStats(mem)fmt.Println(当前内存分配:, mem.Alloc)fmt.Println(内存总分配:, mem.TotalAlloc)fmt.Println(堆内存分配:, mem.HeapAlloc)fmt.Println(垃圾回收次数:, mem.NumGC)fmt.Println(-----) }每当你需要获取最新的垃圾回收统计信息时你需要调用 runtime.ReadMemStats() 函数。printStats() 函数用于打印这些信息以避免重复编写相同的代码。 接下来的部分创建了大量的 Go 切片以分配大量内存并触发垃圾回收 func main() {var mem runtime.MemStatsprintStats(mem)for i : 0; i 10; i {s : make([]byte, 50000000)if s nil {fmt.Println(操作失败)}printStats(mem)} }最后一部分代码做了更多的内存分配操作 for i : 0; i 10; i {s : make([]byte, 100000000)if s nil {fmt.Println(操作失败)}time.Sleep(5 * time.Second) } printStats(mem)运行上述代码的输出如下以 macOS Mojave 为例 $ go run gColl.go 当前内存分配: 66024 内存总分配: 66024 堆内存分配: 66024 垃圾回收次数: 0 ----- 当前内存分配: 50078496 内存总分配: 500117056 堆内存分配: 50078496 垃圾回收次数: 10 ----- 当前内存分配: 76712 内存总分配: 1500199904 堆内存分配: 76712 垃圾回收次数: 20 -----深入理解垃圾回收 观察垃圾回收的行为能够帮助你在性能较慢的应用中发现问题。你可以通过以下命令查看更详细的 GC 信息 $ GODEBUGgctrace1 go run gColl.go输出会显示每次垃圾回收的详细数据。例如 gc 4 0.025s 0%: 0.0020.0650.018 ms clock, 47-47-0 MB, 48 MB goal三色标记-清除算法 Go 的垃圾回收基于三色标记-清除算法。这个算法将堆中的对象分为三类白色、灰色和黑色。白色对象是垃圾回收的候选对象而灰色对象可能指向白色对象黑色对象则不会指向白色对象。 当垃圾回收开始时所有对象最初是白色的垃圾回收器会将根对象标记为灰色并继续扫描灰色对象。如果灰色对象指向白色对象它会将这些白色对象标记为灰色最终所有不可达的白色对象会被回收。 在程序运行过程中如果某个对象变得可达写屏障机制会将其重新标记为灰色确保其不会被错误回收。 这个三色标记-清除算法不仅适用于 Go还可以应用于其他编程语言。
http://www.w-s-a.com/news/460579/

相关文章:

  • 移动网站开发服务器丰都集团网站建设
  • 网站开发逻辑图烫画图案设计网站
  • 客户管理系统哪找公司网站如何做优化
  • 常德企业网站建设广州站在哪里
  • 移动端网站建站视频教程网站如何做淘客
  • 注册网站会不会有风险网站建设实训致谢语
  • ssh框架做的家政服务网站需要做网站建设的公司
  • 众筹网站制作长春高端网站建设
  • 亳州网站网站建设wordpress汉化.po
  • 怎样给建设的网站提意见网红营销概念
  • 怎么知道一个网站是谁做的广告行业网
  • 上海app定制开发公司大城网站优化
  • 工厂 网站建设北京招聘网站设计师
  • 企业网站建设与网络营销的关系网页qq音乐在线听
  • 网站如何制作学校的做做代销的网站
  • 灌云网站建设维护常州市天宁区建设局网站
  • 广州中小企业网站建设网络营销平台的类型
  • 做非遗网站的原因wordpress ip 插件
  • 微信企业网站 源码下载wordpress 4.9.5 太卡
  • 湖北网站建设公司哪家好房地产最新政策调整
  • 重庆建设岗位培训网站今天重大新闻乌克兰
  • 流水线 东莞网站建设如何在网上销售产品
  • 哪些做图片赚钱的网站网站建设销售业绩任务
  • 建立网站 知乎如何做网站的图片滑动块
  • 国外做珠宝的网站有哪些滨湖区建设局官方网站
  • 关于中国幼教网站开发的经验中国建设银行晋中分行网站
  • 挪威网站后缀如何外贸网络推广
  • 外汇交易网站开发仟亿家设计软件好吗亿家
  • 专门教做甜品的网站郑州高新区建设环保局网站
  • 建站公司怎么获客网站建设全网营销