肖恩技术周刊(第 37 期):反差魅力
周刊内容: 对一周内阅读的资讯或技术内容精品(个人向)进行总结,分类大致包含“业界资讯”、“技术博客”、“开源项目”和“学习资源”等。
更新时间: 周一
历史收录: 技术周刊合集
订阅方式: 微信公众号“肖恩聊技术”,除周刊外还有更多原创技术博文,欢迎关注👏🏻~
开篇图
只因刷到了《乌龙特工》一个剪辑片段,就立马在B站看完了整个电影,笑得肚子疼。
业界资讯
GitHub Copilot 支持 Agent
GitHub Copilot多项更新,重点是通过AI技术提升开发效率和用户体验。推出了“Agent Mode”(代理模式),这一功能可以自动迭代代码、修复错误,并推断出未明确说明但必要的任务。Copilot Edits正式发布,结合了聊天和内联编辑功能,支持跨文件的内联更改和快速迭代。GitHub还展示了“Project Padawan”——一个自主SWE代理的初步愿景。该代理能够生成代码、优化代码库、自动化测试,并处理拉取请求的反馈,未来将深度集成到GitHub的用户体验中。
技术博客
快手Java透明协程:实现零代码修改提升30%QPS
本文介绍了快手基于Java 17透明协程技术的研发与应用实践。快手通过与Dragonwell社区合作,自研了无侵入式的Java透明协程技术,成功解决了性能、稳定性及业务适配等问题,实现了业务吞吐量提升30%以上,并节省了数千万服务器成本。
文章首先回顾了协程技术的发展历程,指出协程结合了线程模型和异步模型的优点,尤其在高负载和线程切换频繁的场景下,能够显著提升服务性能。然而,Java协程起步较晚,且面临多种挑战,如调度器效率低下、抢占机制不完善以及IO管理低效等问题。
快手在选型时,基于自身业务规模和改造成本,选择了基于Dragonwell社区的Wisp协程方案,并对其进行了深度优化。在调度器方面,快手重新设计了架构,遵循线程数最小化和连续执行原则,优化了上下文切换频率,解决了低负载下CPU效率低下的问题。在抢占机制上,快手引入了Handshake机制和HandOff调度抢占机制,解决了Java和JNI长任务的抢占问题。在IO模型上,快手遵循非阻塞IO补偿、内核结构复用和资源缓存限定原则,重构了IO架构,解决了查询不及时、设计低效和堆外内存膨胀等问题。
最终,快手完成了Java透明协程架构的优化重构,填补了Dragonwell社区在Java 17上的协程空白。协程技术在快手全面上线后,显著提升了服务性能,并为业界提供了实践范例。未来,快手将继续探索与Loom的深度融合,以及调度策略与调度器的解耦,以进一步提升协程技术的灵活性和效率。
Netflix 如何为数十亿次用户交互构建分布式计数器(英文)
Netflix构建了一个分布式计数器系统,用于处理全球数十亿用户交互事件的计数需求。该系统旨在满足低延迟、高吞吐量和成本效益的要求,支持从快速近似计数到精确持久计数的多种场景。Netflix通过设计分布式计数器抽象,提供了一个高度可配置且用户友好的API,支持Add Count、GetCount和ClearCount等操作,并通过幂等性令牌确保重复请求不会导致重复计数。
为了满足不同的业务需求,Netflix采用了多种计数策略。其中,“尽力而为”的区域计数器基于EVCache实现,适用于对精度要求不高的场景,如A/B测试;而“最终一致性”计数器则通过单行计数器、实例级聚合、持久化队列和增量事件日志等方式实现,确保计数的准确性和持久性。
Netflix进一步提出了混合计数方法,结合事件日志、后台聚合和缓存技术,平衡了速度、准确性、持久性和可扩展性。该方法通过时间序列抽象层记录每个计数器事件,利用后台聚合减少存储和读取开销,并通过EVCache缓存聚合后的计数,优化读取性能。
为了高效处理全球数百万计数器,Netflix设计了Rollup Pipeline,通过内存队列处理聚合任务,支持动态批处理和反压机制,防止底层存储过载。此外,控制平面(Control Plane)负责管理计数器抽象的配置、部署和操作复杂性,支持多租户环境,允许不同团队根据需求独立配置计数器。
开源项目
data-formulator:AI数据可视化工具
Data Formulator是一个强大的AI驱动工具,旨在通过结合UI交互和自然语言输入,简化数据可视化过程。
MindSearch:深度AI搜索引擎
MindSearch是一个基于大型语言模型(LLM)的多智能体框架的Web搜索引擎。
http.cat:状态喵
http.cat 是一个展示 HTTP 状态码对应猫咪图片的网站。
学习资源
入门AI/LLM大模型指南
关于AI和LLM(大型语言模型)的入门指南,提供了从API调用到本地模型部署和微调的逐步教程和演示代码。
Crash Course 的 CS 视频课程
计算机科学与技术专业学习视频。
学习Restful API设计
REST API彻底改变了开发者构建和集成网络服务的方式,成为开发者、工程师和架构师的关键技能。网站介绍了REST API设计的重要性及其学习资源。
随便看看
如果没有人阅读,为什么要写博客?(英文)
文章探讨了博客写作的意义,即使它可能无人问津。作者指出许多博主面临一个现实:尽管他们精心撰写文章,但往往无人关注。这种情况下,人们常常会自我安慰,认为只要坚持写下去,总会有人关注,但事实并非如此。互联网上的信息浩如烟海,博客的声音往往微不足道。
然而,作者认为博客写作本身具有隐藏的价值。写作的过程能够帮助作者整理思路,提升思考的深度和清晰度。即使没有读者,这种自我表达和思考的过程本身就是有价值的。博客的真正受众不仅仅是当下可能存在的读者,还包括未来的自己。这些文章可以成为个人思想成长的记录,如同时间胶囊,记录下作者在不同阶段的思考和感悟。
此外,博客的真正价值还在于它可能在未来某个时刻,触动某个偶然发现它的人。即使只有一个人被文章的内容所影响,那么写作的付出也是值得的。作者还提到,博客写作与街头摄影有相似之处。街头摄影师捕捉城市中的瞬间,即使无人关注,但他们依然坚持拍摄,因为他们看到了值得记录的场景。同样,博客写作也是一种记录和表达,即使没有读者,作者依然需要将所思所想记录下来。
最后,作者强调,写作的意义不在于追求短期的流量或关注,而在于长期的坚持和深度的思考。一篇篇有深度的博客文章,最终会比那些短暂爆火的内容更有价值。通过写作,作者不仅能够与自己对话,也有可能在未来与某个读者产生共鸣。
人类的最后考试(英文)
“Humanity's Last Exam”(HLE)是一个全球性的多模态基准测试项目,旨在衡量大型语言模型(LLM)在封闭式学术问题上的能力。该项目由来自50个国家的500多个机构的近千名专家贡献问题,覆盖超过一百个学科领域,包含2700个具有挑战性的问题。HLE的目的是提供一个更具难度的基准测试,以弥补现有基准测试中LLM准确率接近饱和的问题。