背景提要分享一个GC相关的踩坑实践。公司线上某组件内存资源泄漏,偶发oom。通过Go的pprof排查,很快速定位到泄漏的数据结构A,结构A的相关资源是通过Go的 Finalizer机制来释放的。但诡异的来了,对照着代码审视了多次之后,大家一致断定,这段代码绝对没有泄漏的问题。但是,事实胜于雄辩,现实就是泄漏就在此处。想不通。。。几天之后,问题的转机来自于另一个毫不相关的地方,我们发现了一个卡住的协程。最开始并不在意,因为虽然卡住是异常的,但是泄漏的地点差了十万八千里,两者毫不相关。所以刚开始是忽略的。后来实在是想不开,闲来无事,把这个异常点拿来看,才发现一点点线索。这个卡住的协程是一个结构体
背景提要分享一个GC相关的踩坑实践。公司线上某组件内存资源泄漏,偶发oom。通过Go的pprof排查,很快速定位到泄漏的数据结构A,结构A的相关资源是通过Go的 Finalizer机制来释放的。但诡异的来了,对照着代码审视了多次之后,大家一致断定,这段代码绝对没有泄漏的问题。但是,事实胜于雄辩,现实就是泄漏就在此处。想不通。。。几天之后,问题的转机来自于另一个毫不相关的地方,我们发现了一个卡住的协程。最开始并不在意,因为虽然卡住是异常的,但是泄漏的地点差了十万八千里,两者毫不相关。所以刚开始是忽略的。后来实在是想不开,闲来无事,把这个异常点拿来看,才发现一点点线索。这个卡住的协程是一个结构体
许北林软通动力资深项目经理 在全球开源趋势下,中国正逐渐成为全球开源软件的主要使用者和核心贡献者。今天我们来认识一位接触OpenHarmony不到一年,便带领团队成功开发出一款“启航KP“智能开发套件的开发者——软通动力资深项目经理许北林。作为软通动力硬件团队负责人,许北林负责团队整体技术规划、项目看护、成果交付以及部门、成员的协调沟通。在工作中,许北林积极推进OpenHarmony解决方案,同时推进OpenHarmony开发板的开源事宜,特别是推动硬件开源以及硬件设计指南,做到“软硬兼施”。接下来,让我们和许北林一起聊一聊关于他加入OpenHarmony生态的初心、对OpenHarmony的
许北林软通动力资深项目经理 在全球开源趋势下,中国正逐渐成为全球开源软件的主要使用者和核心贡献者。今天我们来认识一位接触OpenHarmony不到一年,便带领团队成功开发出一款“启航KP“智能开发套件的开发者——软通动力资深项目经理许北林。作为软通动力硬件团队负责人,许北林负责团队整体技术规划、项目看护、成果交付以及部门、成员的协调沟通。在工作中,许北林积极推进OpenHarmony解决方案,同时推进OpenHarmony开发板的开源事宜,特别是推动硬件开源以及硬件设计指南,做到“软硬兼施”。接下来,让我们和许北林一起聊一聊关于他加入OpenHarmony生态的初心、对OpenHarmony的
之前给大家写过如何将ChatGPT接入微信和钉钉,没看过的可以往公众号前面的文章翻翻,最近又发现了一个有趣的玩法,周末找时间实现了一下,感觉挺不错的,分享给大家。背景事情的起因是阿粉在朋友圈看到了这样一条信息,敏感信息已经去掉了,意思很明显就是将OpenAI接入到知识星球了,用户可以通过星球提问的方式来对OpenAI进行提问,OpenAI会自动回答相应用户的问题,并通知到用户。看到这就很有意思了,对于运营了知识星球的博主来说,特别是技术类博主,很多简单的技术知识点,完全就可以通过自动化来进行回答,而不用太消耗自己的时间。那有的小伙伴就要问了,这跟用户自己百度有什么区别呢?只要用过OpenAI的
之前给大家写过如何将ChatGPT接入微信和钉钉,没看过的可以往公众号前面的文章翻翻,最近又发现了一个有趣的玩法,周末找时间实现了一下,感觉挺不错的,分享给大家。背景事情的起因是阿粉在朋友圈看到了这样一条信息,敏感信息已经去掉了,意思很明显就是将OpenAI接入到知识星球了,用户可以通过星球提问的方式来对OpenAI进行提问,OpenAI会自动回答相应用户的问题,并通知到用户。看到这就很有意思了,对于运营了知识星球的博主来说,特别是技术类博主,很多简单的技术知识点,完全就可以通过自动化来进行回答,而不用太消耗自己的时间。那有的小伙伴就要问了,这跟用户自己百度有什么区别呢?只要用过OpenAI的
面试官问我,什么是hive的静态分区和动态分区,这题我会呀。简述分区是hive存放数据的一种方式,将列值作为目录来存放数据,就是一个分区,可以有多列。这样查询时使用分区列进行过滤,只需根据列值直接扫描对应目录下的数据,不扫描不关心的分区,快速定位,提高查询效率。hive的分区有两种类型:静态分区SP(StaticPartitioning)动态分区DP(DynamicPartitioning)对于静态分区,表的分区数量和分区值是固定的。新增分区或者是加载分区数据时,需要提前指定分区名。对于动态分区,分区的值是不确定的,会根据数据自动的创建新的分区。一、静态分区如上所述,静态分区的使用场景主要是分
面试官问我,什么是hive的静态分区和动态分区,这题我会呀。简述分区是hive存放数据的一种方式,将列值作为目录来存放数据,就是一个分区,可以有多列。这样查询时使用分区列进行过滤,只需根据列值直接扫描对应目录下的数据,不扫描不关心的分区,快速定位,提高查询效率。hive的分区有两种类型:静态分区SP(StaticPartitioning)动态分区DP(DynamicPartitioning)对于静态分区,表的分区数量和分区值是固定的。新增分区或者是加载分区数据时,需要提前指定分区名。对于动态分区,分区的值是不确定的,会根据数据自动的创建新的分区。一、静态分区如上所述,静态分区的使用场景主要是分
互联网飞速发展的今天,各种App的验证方法也越来越方便用户,从一开始的密码输入,到后来的指纹解锁,演变成如今的刷脸认证。刷个脸,就可以解锁设备、在线/线下支付、通过门禁、快速检票等。与此同时也伴随了很多安全问题,首要就是如何判断用户的真实性。HMSCore机器学习服务(MLKit)的人脸比对和活体检测能力能够快速捕捉人脸,通过识别并提取模板中的人脸特征,不需要用户配合做动作就可以判断是真实人脸,还是人脸攻击,同时将模板人像和人脸进行高精度比对,输出相似度值,进而判断两者是否为同一个人。基于此,开发者可以快速构建人脸检测能力,比如在金融类App中,比对用户身份证照片和人脸检测结果,判断用户信息真
互联网飞速发展的今天,各种App的验证方法也越来越方便用户,从一开始的密码输入,到后来的指纹解锁,演变成如今的刷脸认证。刷个脸,就可以解锁设备、在线/线下支付、通过门禁、快速检票等。与此同时也伴随了很多安全问题,首要就是如何判断用户的真实性。HMSCore机器学习服务(MLKit)的人脸比对和活体检测能力能够快速捕捉人脸,通过识别并提取模板中的人脸特征,不需要用户配合做动作就可以判断是真实人脸,还是人脸攻击,同时将模板人像和人脸进行高精度比对,输出相似度值,进而判断两者是否为同一个人。基于此,开发者可以快速构建人脸检测能力,比如在金融类App中,比对用户身份证照片和人脸检测结果,判断用户信息真