14 天前 / HughNian
0x01php 扩展的开发现在有不少新的方式比如用 zephir。是一种用类似 php 的语法写 php 扩展。当然主要的还是用纯 C 写扩展。在开发 php 扩展中,由于资料还是比较缺少的,走了不少弯路。以此来做个记录总结。 我在开发 nmid-php-ext 扩展时,先查阅了些 php 扩展开发文档,目前比较好的可能就是盘古大叔的文档 https://github.com/pangudashu/php7-internal,当然还有惠新宸的博客文章等。还有就是查看了一些比较经典的 php 扩展源码,我看的有 gearman,swoole1.8,swoole4.4.13。
71 天前 / reesunhuang
点击蓝字 关注我们 作者简介 王植萌 去哪儿网工程师 2013 年 5 月加入去哪儿网,目前专注于 API 标准化建设、DDD 驱动业务重塑、技术成熟度评估、团队数字化管理等方面的工作。 1. 篇首最近看到 GC 这个异常古老的话题又被抛了出来,OpenJDK11 中出现了大道至简、返璞归真的 Epsilon GC 垃圾回收器,ZGC,Shenandoah GC 作为在 G1 的基础之上的两个分别合入了 OpenJDK11 和 OpenJDK12 的项目,两个项目的代号分别为分别为 JEP333、JEP189,这两款目前正在发展中的垃圾回收器成为了与 CMS、G1 两款早期并发回收器进行性能对比的主角。
73 天前 / 美团技术团队
总第 422 篇 2020 年 第 46 篇 目前,互联网上 Java 的 GC 资料要么是主要讲解理论,要么就是针对单一场景的 GC 问题进行了剖析,对整个体系总结的资料少之又少。前车之鉴,后事之师,美团的几位工程师历时一年多的时间,搜集了内部各种 GC 问题的分析文章,并结合个人的理解做了一些总结,希望能起到“抛砖引玉”的作用。1. 写在前面 | 本文主要针对 Hotspot VM 中“CMS + ParNew”组合的一些使用场景进行总结。重点通过部分源码对根因进行分析以及对排查方法进行总结,排查过程会省略较多。
120 天前 / GO语言中文网
点击上方蓝色“Go 语言中文网”关注,回复「电子书」领全套 Go 资料 Illustration created for “A Journey With Go”, made from the original Go Gopher, created by Renee French.本文基于 Go 1.13。 在 Go 中,我们不需要自己管理内存分配和释放。然而,有些时候我们需要对程序进行更细粒度的控制。Go 运行时提供了很多种控制运行时状态及其与内存管理器之间相互影响的方式。本文中,我们来审查让变量不被 GC 回收的能力。
158 天前 / 宜信技术学院
每个 java 开发同学不管是日常工作中还是面试里,都会遇到 JDK、JVM 和 GC 的问题。本文会从以下 10 个问题为切入点,带着大家了解一下 JVM 的方方面面。 JVM、JRE 和 JDK 的区别和联系 JVM 是什么?以及它的主要作用 JVM 的核心功能有哪些 类加载机制和过程 运行时数据区的逻辑结构 JVM 的内存模型 如何确定对象是垃圾 垃圾收集的算法有哪些 各种问世的垃圾收集器 JVM 调优的参数配置 上一篇文章结尾时我们谈到,就 JVM 的设计规范,从使用用途角度 JVM 的内存大体的分为:线程私有内存区 和 线程共享内存区。
183 天前 / K8sMeetup
GC(Garbage Collection)即垃圾回收,本文从文件系统层面分析了 registry GC 原理,相比源码分析更加直观,并提示了一些可能遇到的错误,帮助大家避免踩坑。 作者:木子(才云) 编辑:Bach(才云) 校对:bot(才云) 此前,《Docker 容器镜像是怎么炼成的》一文简单提到了容器镜像的一些知识,并介绍了镜像在 registry 中存储的目录结构。本文从文件系统层面分析了 registry GC 的原理,相比源码分析更加直观。部署 registry 容器首先我们在本地部署一个 registry 容器,再使用 skopeo 工具替代 Docker 命令行客户端进行 copy 镜像和 delete 镜像。
196 天前 / hyper0x
点击上方蓝色“Go 语言中文网”关注我们,领全套 Go 资料,每天学习Go语言 Illustration created for “A Journey With Go”, made from the original Go Gopher, created by Renee French 本文基于 Go 1.13。关于内存管理的概念的讨论在我的文章 Go 中的内存管理和分配 [1] 中有详细的解释。 Go GC 的作用是回收不再使用的内存。实现的算法是并发的三色标记和清除回收法。本中文,我们研究三色标记法,以及各个颜色的不同用处。 你可以在 Ken Fox 的 解读垃圾回收算法 [2] 中了解更多关于不同垃圾回收机制的信息。
256 天前 / 高飞
一:背景 1. 讲故事我们有一家 top 级的淘品牌店铺,为了后续的加速计算,在程序启动的时候灌入她家的核心数据到内存中,灌入完成后内存高达 100G,虽然云上的机器内存有 256G,然被这么划掉一半看着还是有一点心疼的,可怜那些被挤压的小啰啰程序,本以为是那些 List,HashSet,Dictionary 需要动态扩容虚占了很多内存,也就没当一回事,后来过了一天发现内存回到了大概 70 多 G,卧槽,不是所谓的集合虚占,而是 GC 没给我回收呀...... 2. windbg 验证一下为了验证我的说法,我就不去生产抓这个庞然大物的 dump 了,去测试环境给大家抓一个,晚上清蒸。
274 天前 / PerfMa
控制台登录注册文章》又抓了一个导致频繁 GC 的鬼 -- 数组动态扩容》又抓了一个导致频繁 GC 的鬼 -- 数组动态扩容你假笨 gc6 月前 概述本周有个同事过来咨询一个比较诡异的 gc 问题,大概现象是,系统一直在做 cms gc,但是老生代一直不降下去,但是执行一次 jmap -histo:live 之后,也就是主动触发一次 full gc 之后,通过 jstat -gcutil 来看老生代一下就降下去了,初看下理论上不太可能,因为 full gc 也会对 old 做回收,于是我要同事针对他们的场景写了一个简单的 demo 出来,然后果然还真能重现,不过他的 demo 设置的 Heap 有 32G...
315 天前 / 编程技术宇宙
读者朋友们可能已经看过太多关于 Java 垃圾回收相关的文章,如果没有,墙裂安利大家看下面这篇:看完这篇垃圾回收,和面试官扯皮没问题了 本文不再重复谈 GC 算法以及垃圾回收器,而是谈谈在 GC 发生的时候,有几个可能被忽略的问题。搞懂这些问题,相信将对 GC 的理解能再加深几分。 本文主要内容 - Q1: GC 工作是如何发起的? - Q2: Stop The World 到底如何让 Java 线程都停下来? - Q3: 如何找到 GC Roots? - Q4: GC 时如何处理四种特殊引用? - Q5: 对象移动后...
386 天前 / 公众号-码农桃花源
本文作者欧长坤,德国慕尼黑大学在读博士,Go/etcd/Tensorflow contributor,开源书籍《Go 语言原本》作者,《Go 夜读》SIG 成员/讲师,对 Go 有很深的研究。Github:@changkun,https://changkun.de。 本文首发于 Github 开源项目 《Go-Questions》,点击阅读原文直达。全文不计代码,共 1.7w+ 字,建议收藏后精读。另外,本文结尾有彩蛋。 按惯例,贴上本文的目录: 本文写于 Go 1.14 beta1,当文中提及目前、目前版本等字眼时均指 Go 1.14,此外,文中所有 go 命令版本均为 Go 1.14。
418 天前 / GO语言中文网
点击上方蓝色“Go语言中文网”关注我们,领全套Go资料,每天学习Go语言 这是三篇系列文章的第一篇博文,系列文章提供了 Go 中垃圾回收背后的机制和概念的理解。这篇博文主要介绍回收器的基础概念。 简介 垃圾回收器负责跟踪堆内存分配,释放无用的分配内存以及维护在用分配内存。语言如何设计去实现这些行为是很复杂的,但不应该要求应用开发者为了构建软件而去理解细节。而且,对于语言不同版本的 VM 和运行时(runtime),这些细节的实现一直都在发展变化。
433 天前 / 大数据手稿笔记
近期整理多个 HBase 集群的 JVM 参数,发现都是默认的 CMS GC 配置,如何调优 JVM 参数就成了一个绕不过的话题。因此,为了寻求一个 CMS GC 的 JVM 合理参数配置,笔者参考多篇社区文章及相关博客,总结了一些 CMS 相关的知识点,以及一套基于 CMS 的 JVM 参数配置。 CMSGC 要点 CMS(Concurrent Mark Sweep,并发-标记-清除)是目前最常用的 JVM 垃圾回收器,这里不解释 CMS 的工作过程,只记录一些基础要点以帮助理解后面的内容: CMS 是一种基于并发、使用标记清除算法的垃圾回收器。
441 天前 / cultus
GC停顿经常超过100ms现象有同事反馈说, 最近开始试用公司的k8s, 部署在docker里的go进程有问题, 接口耗时很长, 而且还有超时. 逻辑很简单, 只是调用了kv存储, kv存储一般响应时间12->6 MB, 11 MB goal, 76 P gc 112 @97.798s 1%: 0.040+93+0.14 ms clock, 3.0+0.55/7.1/0+10 ms cpu, 10->11->5 MB, 12 MB goal, 76 P gc 113 @99.294s 1%: 0.041+298+100 ms clock, 3.1+0.34/181/0+7605 ms cpu, 10->13->6 MB, 11 MB goal, 76 P gc 114 @100.892s 1%: 99+200+99 ms clock, 7597+0/5.6/0+7553 ms cpu, 11->13->6 MB, 13 MB goal, 76 P 在一台有go sd...