IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    love 0
    1link
    发表于
    2025-05-05 04:01:15

    设计数据库时多加点时间戳字段没坏处 | YAGRI

    YAGRI, 是 you are gonna read it 的简称,是文章作者从 YAGNI (you aren't gonna need it)演变过来的,YAGNI 本意是警告你不要在项目初期就过渡设计以及添加太多的功能。而 YAGRI 指的是,当你设计数据库表的时候,除了那些必须要展示给用户的字段之外,建议你多添加一些信息字段,比如:created_atupdated_atdeleted_atdeleted_by等等。这些字段不会带给你太多的开销,但是会在你需要查询某些数据的时候给你非常大的帮助,你(大概率)会在某个时刻去数据库读这些字段的。原文:https://ouo.io/H0jNSR ...继续阅读 (88)


    love 0
    1link
    发表于
    2025-05-05 03:49:45

    别让你的软件像谷歌一样 | do not make it like google

    通常人们批评谷歌都是说它肆无忌惮的收集你的个人信息,但没有多少人从 UI 、UX 的角度来指责它有多么不负责任。文章认为谷歌的 UI 和 UX 做的非常不人性化,比如自家产品中很难让用户分辨出哪些是纯文本,哪些是按钮。而且还通过 material design 来定义一系列视觉规则(你可以不遵守,但是谷歌是科技龙头老大,很大程度上会影响其他科技公司)一个典型的例子就是使用插画+大色块来构建着陆页面,文章认为这种视觉规则和前苏联的海报没啥区别。单单谷歌一家这么设计问题倒不是很大,关键就怕其他公司效仿,总是想让自家的产品看起来“像谷歌一样”,以为这就是行业标准,殊不知这个标准其实对于用户来说并不是最好的。相比起来,在 UI,UX 上,apple 倒是做的不错的。原文:https://ouo.io/iKG7wA ...继续阅读 (77)


    love 0
    admin
    发表于
    2025-05-05 03:17:29

    理解 NumPy 中的高维数组

    在机器学习中大量的使用NumPy作为其基础的数据结构,ndarray是NumPy的核心数据对象。对于ndarray高维数组的一个非常容易产生的误解是,使用数学中的矩阵(或者叫“行列式”)概念去尝试理解更高维的场景,或者使用更高维空间去理解,这样都会导致难以较好的理解更高维(5或6维)的数组。本文使用较为直观的示例和可视化的展示,更为“标准”(文档推荐的)的方式去理解ndarray的更高维数组。更多详细内容,可以参考阅读:numpy.ndarrayNumPy: the absolute basics for beginners问题在机器学习中,经常要对多维的数组做各种操作。对高维数组建立更好的直觉理解,则有利于去理解这些操作。例如,我们考虑右侧的代码,想一想该代码的输出是什么?>>> import numpy as np >>> np.array([[[1],[2]],[[3],[4]]]).shape (考虑输出是什么)要回答这个问题,则需要建立对于多维数组结构的理解。文档中对于高维数组理解的建议在NumPy: the absolute basics for beginners中有如下一段话:It is familiar practice in mathematics to refer to elements of a matrix by the row index first a ...继续阅读 (80)


    love 0
    1link
    发表于
    2025-05-05 02:57:08

    给 GPLv2 协议中的地址写了封信

    遵循 GPL 协议的开源项目一般都会在仓库或者代码中附上协议内容或者协议链接。一位英国程序员发现 GPLv2 协议内容的最后一句话很奇怪,说:【你应该随程序收到一份 GPL 协议的副本,如果没有,请给下面这个地址写信】Free SoftwareFoundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.于是他尝试着给这个地址写了一封邮件,看看会发生什么。接下来他买了一个可以邮寄到那个美国地址的邮票,写信索要 GPL 协议文本副本,并且附上了自己英国的地址以及可以寄回英国的邮票。5 个星期之后,他真的收到了回信(虽然给他的是双面打印的 GPLv3 协议)所以,如果你平时看到什么觉得奇怪,想不通的事情,不妨多深究一下,也许背后的故事很有趣。原文:https://ouo.io/sLotvcp ...继续阅读 (68)


    love 0
    zhuxy
    发表于
    2025-05-05 02:07:45

    为什么要区分宏任务和微任务?它们的执行优先级是什么?

    为什么要区分宏任务(Macro Task)和微任务(Micro Task)?这是为了更好地控制JavaScript 的执行顺序和响应性能,尤其是在处理异步代码时:微任务:用于保证某些操作在当前宏任务结束前立即执行(如Promise.then())。宏任务:系统调度的主循环单位(如setTimeout()、setInterval()、事件处理)。简单说:微任务是“紧急的小事”,宏任务是“下一轮大事”。执行优先级顺序(事件循环模型)执行一个宏任务(如主线程代码或setTimeout回调)执行所有产生的微任务(如Promise.then()、queueMicrotask())渲染更新(如 DOM 改动)开始下一轮宏任务举个例子:console.log('start'); setTimeout(() => { console.log('macro task'); }); Promise.resolve().then(() => { console.log('micro task'); }); console.log('end');输出顺序:start end micro task // 微任务优先 macro task // 宏任务之后总结类型示例何时执行微任务Promise.then()、queueMicrotask()当前宏任务结束后,立刻执行所有宏任务s ...继续阅读 (56)


    love 0
    guntur
    发表于
    2025-05-05 00:23:33

    Firewall: Pelindung Digital yang Selalu Siaga

    Firewalladalah sistem keamanan jaringan yang bertugas menyaring lalu lintas data yang masuk dan keluar dari jaringan. Fungsinya sangat vital untuk menjaga keamanan informasi dan sistem dari serangan dunia maya. Layaknya tembok pertahanan digital,firewall memastikan hanya data yang aman yang dapat melintas.Jenis-Jenis Firewall1. Firewall Perangkat Lunak (Software Firewall)Firewalljenis ini diinstal pada komputer atau perangkat pengguna dan bekerja pada level sistem operasi. Softwarefirewall biasanya digunakan oleh pengguna individu atau jaringan kecil.2. Firewall Perangkat Keras (HardwareFirewa ...继续阅读 (45)


    love 0
    Jiajun的技术笔记
    发表于
    2025-05-05 00:00:00

    KVM 穿透板载蓝牙和无线网卡

    《KVM 穿透板载蓝牙和无线网卡》我的Host一直是Linux,但是偶尔会打游戏,因此有一台 Windows 虚拟机,最近想要把板载蓝牙和无线网卡穿透进去,但是都遇到了一些小困难需要解决,因此记录成文... ...继续阅读 (34)


    love 0
    豌豆花下猫
    发表于
    2025-05-05 00:00:00

    uv:统一的 Python 包管理

    花下猫语:uv 项目自发布起就大受欢迎,目前 Github star 52.6 K,远超过它的同类竞品们。前不久,它的创始人在 X 上披露了一组惊人的数据:uv 曾占据了 PyPI 超过 20% 的流量,用户每天通过它发起约 4-5 亿次下载请求!我在去年翻译过 uv 首发时的新闻文章,根据博客后台不完整的统计,从 Google 搜索进入的访问量已经超过 3000,妥妥成为了我博客的搜索访问 TOP 1!这侧面也反映出 uv 的火爆程度!uv 刚过一周岁不久,如此年轻,成绩斐然啊。趁着这波热点(实际是假期有时间),我抽空把 uv 重要版本更新的文章也翻译出来了,enjoy reading~作者:@charliermarsh译者:豌豆花下猫@Python猫英文:uv: Unified Python packaging (https://astral.sh/blog/uv-unified-python-packaging)声明:本翻译是出于交流学习的目的,为便于阅读,部分内容略有改动。转载请保留作者信息。简述:uv是一个用 Rust 开发的超高性能 Python 包管理器。我们最初在 2 月份发布了 uv,作为常见pip工作流的即插即用替代方案。(译注:uv 在 2024.02 发布,本文写于 2024.08,翻译于 2025.05)今天,我们发布一系列新功能,这些功能将 uv 从一个 ...继续阅读 (77)


    love 0
    Dinda Parker
    发表于
    2025-05-04 23:16:03

    Flask Python Tutorial: Buat Aplikasi Web dengan Mudah

    Aku inget banget waktu pertama kali belajar bikin aplikasi web, yang aku temuin duluan tuh Django. Tapi setelah ngulik sebentar, aku ngerasa itu agak terlalu “berat” buat level pemula kayak aku waktu itu. Terus temenku nyaranin, “Coba Flask deh. Ringan, gampang, dan cocok banget buat belajar.” Dan ya, benar banget! Sejak saat itu aku langsung jatuh cinta samaFlask.Flask tuh ibaratnya seperti Lego. Framework ini ringan dan fleksibel, jadi kamu bisa bangun dari yang sederhana sampai kompleks, tergantung kreativitas dan kebutuhanmu. Di artikel ini, aku mau ajak kamu ikutan belajar bareng membuat ...继续阅读 (49)


    love 0
    Deddy White
    发表于
    2025-05-04 23:13:50

    Lords Mobile: Cara Menjadi Pemimpin yang Tak Terkalahkan

    Lords Mobileadalah salah satu game strategi yang menggabungkan elemen RPG dan taktik real-time. Jika Anda baru memulai atau sudah menjadi pemain berpengalaman, game ini menawarkan banyak tantangan dan kesempatan untuk mengasah kemampuan Anda dalam memimpin sebuah kerajaan. Dalam artikel ini, saya akan membagikan pengalaman pribadi saya dalam memainkan Lords Mobile, serta beberapa strategi yang dapat membantu Anda menjadi pemimpin yang lebih baik. Jadi, simak terus ya!Apa Itu Lords Mobile?Sebagai seorang pemain yang sudah menghabiskan berjam-jam untuk membangun dan memperkuat kerajaan, saya bis ...继续阅读 (45)


    love 0
    nokiaguy
    发表于
    2025-05-04 20:40:16

    【运维】构建基于Python的自动化运维平台:用Flask和Celery打造高效管理工具

    随着企业IT基础设施的复杂性不断增加,手动运维已无法满足高效管理的需求。本文详细介绍如何基于Python构建一个自动化运维平台,利用`Flask`提供轻量级Web界面,结合`Celery`实现异步任务调度。文章从环境搭建开始,逐步讲解如何设计任务管理系统、实现前端交互、调度后台任务,并处理任务结果。通过大量代码示例和中文注释,读者将学习如何集成`Redis`作为消息队列、使用`Bootstrap`美化界面,以及实现常见的运维功能(如服务器状态检查、批量脚本执行)。本文适合对Python有一定基础且希望深入学 ...继续阅读 (89)


    love 0
    nokiaguy
    发表于
    2025-05-04 19:28:18

    【人工智能】DeepSeek与Transformer进化:从理论到代码的深度剖析

    本文深入探讨了DeepSeek在Transformer架构上的创新与进化,聚焦于多头潜注意机制(MLA)、混合专家模型(MoE)以及多标记预测(MTP)等关键技术。通过理论分析与代码实现,揭示了DeepSeek如何在计算效率与模型性能之间取得平衡。文章结合数学公式、伪代码和Python实现,详细剖析了DeepSeek V3的架构优化与训练策略,旨在为研究者和开发者提供从理论到实践的全面参考。本文不仅适合熟悉Transformer的读者,也为初学者提供了清晰的代码注释与解释。 ...继续阅读 (87)


    love 0
    nokiaguy
    发表于
    2025-05-04 19:14:31

    【人工智能】大模型安全的深度剖析:DeepSeek漏洞分析与防护实践

    随着大语言模型(LLM)的广泛应用,其安全性问题日益凸显。DeepSeek作为中国领先的开源AI模型,以低成本和高性能著称,但近期暴露的数据库泄露、越狱攻击和DDoS攻击等事件揭示了其安全架构的脆弱性。本文深入分析DeepSeek的安全漏洞,包括数据存储合规风险、API接口滥用、模型越狱及供应链攻击等,结合实际案例探讨攻击原理与影响。同时,提出多层次防护措施,包括API安全加固、数据加密、本地化部署及模型安全对齐等,并通过大量代码示例和数学推导展示具体实现。本文旨在为企业和开发者提供全面的安全参考,推动AI ...继续阅读 (105)


    love 0
    Nicksxs
    发表于
    2025-05-04 13:56:57

    简单介绍下mcp是什么

    在大模型的演进过程中,mcp是个对于使用者非常有用的一个协议或者说工具,Model Context Protocol (MCP) 是一种专为大型语言模型和 AI 系统设计的通信协议框架,它解决了 AI ...继续阅读 (97)


    love 0
    Aldi Rujak
    发表于
    2025-05-04 11:59:50

    Mario Bros di Era Teknologi Modern: Evolusi Digital Legendaris

    Kalau kamu sempat main Mario di Nintendo zaman dulu, kamu pasti ingat suara loncatan khas “boing!” dan layar kotak-kotak yang bikin mata lelah. Tapi sekarang, Mario Bros udah bukan lagi karakter pixel 8-bit yang loncat-loncat di pipa hijau.Mario Brosdi era teknologi modern berubah total.Dari sisi grafis, gameplay, hingga platform. Sekarang, kita nggak cuma ngomongin lompat-lompat dan selamatin Princess Peach—tapi tentang:Open world seperti diSuper Mario OdysseyKooperatif multiplayer via cloud gamingFitur Augmented Reality seperti diMario Kart Live: Home CircuitDan itu semua dimungkinkan karena ...继续阅读 (47)


    love 0
    oscar999
    发表于
    2025-05-04 09:55:18

    SSE(Server-Sent Events)完整使用示例

    本篇使用Node.js 作为服务端,在浏览器客户端演示SSE的完整实例和演示。实现了一个基于 Server-Sent Events (SSE) 的实时数据推送功能。 ...继续阅读 (70)


    love 0
    oscar999
    发表于
    2025-05-04 09:54:25

    一篇撸清 Http,SSE 与 WebSocket

    特性HTTPWebSocket通信模式请求-响应(客户端主动发起)单向推送(仅服务器到客户端)全双工(客户端与服务器双向通信)协议基础基于 HTTP基于 HTTP 长连接独立协议(握手阶段依赖 HTTP)连接类型短连接(默认)或长连接(HTTP/1.1)长连接(持久性)长连接(持久性)数据格式任意格式(文本、二进制等)仅文本(UTF-8)文本和二进制延迟高(依赖轮询或长轮询)低(服务器主动推送)极低(双向即时通信)自动重连不支持支持(内置重连机制) ...继续阅读 (76)


    love 0
    MaskRay
    发表于
    2025-05-04 06:19:49

    Relocation generation in assemblers

    This post explores how GNU Assembler and LLVM integrated assemblergenerate relocations, an important step to generate a relocatable file.Relocations identify parts of instructions or data that cannot be fullydetermined during assembly because they depend on the final memorylayout, which is only established at link time or load time. These areessentially placeholders that will be filled in (typically with absoluteaddresses or PC-relative offsets) during the linking process.Relocation generation: thebasicsSymbol references are the primary candidates for relocations. Forinstance, in the x86-64 in ...继续阅读 (33)


    love 0
    Lenciel
    发表于
    2025-05-04 03:06:32

    抑郁症患者支持指南

    ...考虑到它其实是最常见的心理健康疾病之一,很可能我们大多数人都会在某个时刻,以患者或支持者的身份,与抑郁症产生联系。本指南主要基于这篇文章整理,希望更多的抑郁症患者被好好对待... ...继续阅读 (54)


    love 0
    Edwin Black
    发表于
    2025-05-04 00:24:16

    Kabel LAN: Solusi Cepat dan Andal untuk Internet Stabil

    Dalam era digital saat ini, koneksi internet yang cepat dan stabil menjadi kebutuhan utama bagi hampir setiap aktivitas, baik di rumah, kantor, maupun institusi pendidikan. Salah satu komponen penting yang sering kali menjadi penentu kualitas koneksi adalahkabel LAN. Meski teknologi nirkabel semakin populer, kabel LAN tetap menjadi tulang punggung jaringan karena keunggulannya dalam hal kecepatan dan keandalan.Pengertian Kabel LANKabel LAN (Local Area Network) adalah jenis kabel yang digunakan untuk menghubungkan perangkat dalam satu jaringan lokal. Kabel ini memungkinkan komputer, printer, ro ...继续阅读 (50)


    love 0
    ysicing (i@ysicing.me)
    发表于
    2025-05-03 23:32:25

    Debian 双栈网络时开启 IPv4 优先(音频版)

    PS: 用 AI 生成的图老是不合法微信封面的比例,放到文尾。本文也提供音频版, 欢迎订阅我的微信公众号。在如今的网络世界,IPv6 正在逐渐普及,但 IPv4 依然是许多场景的“老大哥”。如果你用的是 Debian 系统,并且身处 IPv4 和 IPv6 共存的双栈网络环境,可能会发现系统默认优先使用 IPv6——这在某些情况下并不理想,比如某些服务只支持 IPv4,或者 IPv6 连接不稳定。今天,我们就来聊聊如何在 Debian 上实现 IPv4 优先,甚至在需要时完全禁用 IPv6。跟着这篇教程,轻松搞定网络配置!为什么需要调整网络优先级?先来点背景知识:双栈网络指的是设备同时支持 IPv4 和 IPv6 协议栈。现代操作系统(如 Debian)和浏览器通常默认优先使用 IPv6,只有当 IPv6 连接失败时才会“退而求其次”用 IPv4。这听起来很智能,但在实际场景中可能会遇到问题:服务兼容性:某些老旧服务或内网应用只支持 IPv4,IPv6 优先可能导致连接失败网络性能:部分网络环境下,IPv6 的延迟或稳定性不如 IPv4特殊需求:比如开发测试时,你可能希望强制使用某一种协议所以学会调整 IPv4 和 IPv6 的优先级,或者在极端情况下禁用 IPv6,是每个 Debian 用户的“进阶技能”。下面,我们一步步教你搞定!让 IPv4 优先:修改 gai.conf 文件 ...继续阅读 (95)


    love 0
    二丫讲梵
    发表于
    2025-05-03 22:39:26

    学习周刊-总第209期-2025年第18周

    如要阅读全文,点击标题跳转。 学习周刊 - 总第 209 期 | luxirty-search | github-analyzer | mcphub | actionlint | jid | sup | FerretDB ...继续阅读 (79)


    love 0
    oscar999
    发表于
    2025-05-03 19:49:14

    纯Java实现STDIO通信的MCP Server与客户端验证

    在 MCP 协议中通过 STDIO(标准输入/输出)通信 是一种进程间通信(IPC)方式,服务器与客户端通过标准输入(stdin)和标准输出(stdout)交换数据。Spring Boot 实现MCP Server相对来说更为简单,本篇介绍在不使用Spring Boot的状况下,如何实现实现 STDIO 的MCP服务器以及调用验证。实例说明本篇和Spring Boot篇类似,实现一个简单加法的 Tool。简单起见,仅演示MCP的Tool的功能,为了更简单,该工具实现的功能只是一个简单的加法运算。 ...继续阅读 (86)


    love 0
    oscar999
    发表于
    2025-05-03 18:08:05

    基于Spring Boot实现STDIO通信的MCP Server与验证

    创建一个Spring Boot项目。可以通过Spring initializer 创建,也可以在目录中直接添加一个 pom.xml 文件。这里的项目名称是mcp-spring添加依赖项 ...继续阅读 (77)


    love 0
    惜分飞
    发表于
    2025-05-03 11:49:05

    CHECKDB 发现了 N 个分配错误和 M 个一致性错误

    联系:手机/微信(+86 17813235971) QQ(107644445)标题:CHECKDB 发现了 N 个分配错误和 M 个一致性错误作者:惜分飞©版权所有[未经本人同意,不得以任何形式转载,否则有进一步追究法律责任的权利.]接到一个朋友的数据库故障请求,dbcc checkdb报以下错误服务器: 消息 8905,级别 16,状态 1,行 1 扩展盘区 (1:5144)(属于数据库 ID 8)在 GAM 中标记为已分配,但没有 SGAM 或 IAM 分配过该盘区。 服务器: 消息 8929,级别 16,状态 1,行 1 对象 ID 2: 在文本 ID 800849920 中发现错误,该文本的所有者是由 RID = (1:143:7) id = 1218103380 and indid = 4 标识的数据记录。 服务器: 消息 8961,级别 16,状态 1,行 1 表错误: 对象 ID 2。text、ntext 或 image 节点(位于页 (1:3813),槽 0,文本 ID 800849920)与该节点位于页 (1:489),槽 4 处的引用不匹配。 'myhis' 的 DBCC 结果。 CHECKDB 发现了 1 个分配错误和 0 个一致性错误,这些错误并不与任何单个的对象相关联。 'sysobjects' 的 DBCC 结果。 对象 'sysobjects' 有 ...继续阅读 (69)


    love 0
    惜分飞
    发表于
    2025-05-03 11:49:05

    CHECKDB 发现了 N 个分配错误和 M 个一致性错误

    联系:手机/微信(+86 17813235971) QQ(107644445)标题:CHECKDB 发现了 N 个分配错误和 M 个一致性错误作者:惜分飞©版权所有[未经本人同意,不得以任何形式转载,否则有进一步追究法律责任的权利.]接到一个朋友的数据库故障请求,dbcc checkdb报以下错误服务器: 消息 8905,级别 16,状态 1,行 1 扩展盘区 (1:5144)(属于数据库 ID 8)在 GAM 中标记为已分配,但没有 SGAM 或 IAM 分配过该盘区。 服务器: 消息 8929,级别 16,状态 1,行 1 对象 ID 2: 在文本 ID 800849920 中发现错误,该文本的所有者是由 RID = (1:143:7) id = 1218103380 and indid = 4 标识的数据记录。 服务器: 消息 8961,级别 16,状态 1,行 1 表错误: 对象 ID 2。text、ntext 或 image 节点(位于页 (1:3813),槽 0,文本 ID 800849920)与该节点位于页 (1:489),槽 4 处的引用不匹配。 'myhis' 的 DBCC 结果。 CHECKDB 发现了 1 个分配错误和 0 个一致性错误,这些错误并不与任何单个的对象相关联。 'sysobjects' 的 DBCC 结果。 对象 'sysobjects' 有 ...继续阅读 (63)


    love 0
    joomaen
    发表于
    2025-05-03 10:54:31

    和 AI 交流算不算思考

    通过与AI对话,可以提高思考效率,帮助用户整理思绪并表达观点。这种方法并非思考上的懒惰,而是利用工具增强认知。AI不仅提供便利,还激发创新与灵感。关键在于如何有效使用资源,实现个人突破。 ...继续阅读 (83)


    love 0
    ysicing (i@ysicing.me)
    发表于
    2025-05-03 06:59:51

    Debian 12 解决 /etc/rc.local 开机启动问题

    在 Debian 12(以及 Debian 9 及以上版本)中,/etc/rc.local 是配置开机自启动脚本的传统方式,但默认未启用,导致自定义脚本无法自动运行。本文将详细指导你在 Debian 12 上启用和配置 /etc/rc.local,步骤同样适用于 Debian 9 Stretch、10 Buster 和 11 Bullseye问题背景:rc.local 为什么不生效?Debian 9 起采用 systemd 作为初始化系统,传统的/etc/rc.local默认不生效。尽管系统内置了rc-local,但默认处于禁用状态:root@debian:~$ systemctl status rc-local.service ○ rc-local.service - /etc/rc.local Compatibility Loaded: loaded (/lib/systemd/system/rc-local.service; static) Drop-In: /usr/lib/systemd/system/rc-local.service.d └─debian.conf Active: inactive (dead) Docs: man:systemd-rc-local-generator(8)以下是默认的 ...继续阅读 (102)


    love 0
    zwwooooo
    发表于
    2025-05-03 02:57:39

    Firefox 138.0.1 这个新标签组方式不错

    不清楚还有多少人还会用 Firefox,我!我平时会同时用 Firefox 和 Chrome,分别负责不同的内容。今天 Firefox 自动升级到 138.0.1 后,发现一个新的功能:就是直接在标签栏的标签组功能(大概就是这个意思吧)。直接看官方的视频演示:[if lt IE 9]>document.createElement('video'); ...继续阅读 (43)


    love 0
    bigwhite
    发表于
    2025-05-03 01:13:30

    Go新垃圾回收器登场:Green Tea GC如何通过内存感知显著降低CPU开销?

    本文永久链接– https://tonybai.com/2025/05/03/go-green-tea-garbage-collector大家好,我是Tony Bai。随着 CPU 核心数量的激增和内存访问速度日益成为瓶颈,现代计算系统对内存局部性(Spatial & Temporal Locality)和拓扑感知(Topology-awareness)提出了更高的要求。然而,传统的垃圾收集(GC)算法,包括 Go 当前使用的并行三色标记清除法,往往与这些趋势背道而驰。近期,Go 团队技术负责人Austin Clements公布了一项名为“Green Tea” (绿茶) ** 的实验性垃圾收集器设计(Issue #73581),旨在通过一种内存感知 (memory-aware)** 的新方法,显著改善 GC 过程中的内存访问模式,降低 CPU 开销,尤其是在多核和 NUMA 架构下。该特性计划作为 Go 1.25 的一个可选实验加入,开发者将有机会提前体验。在这篇文章中,我就来简要介绍一下这个新GC的设计、原型实现和当前状态。当前 GC 的挑战:内存墙与低效扫描Go 当前的 GC 算法本质上是一个图遍历过程,堆对象是节点,指针是边。这种“图泛洪”式的扫描在并发标记时,会频繁地在内存地址空间中跳跃,导致:空间局部性差:处理逻辑上相邻的对象时,物理内存访问可能跨越很大范围。 ...继续阅读 (84)

上一页 82/4361 下一页
沪ICP备19023445号-2号
友情链接