自由学习记录(199)

成立於2013年,總部位於美國加州,是一家徹底改變美國散戶金融市場的網路券商。它以推出**零手續費(Commission-Free)**的股票交易而聞名 。

比重數據通常會依據**「散戶託管資產總額(Retail AUM)」** 或**「活躍交易帳戶數」**來劃分。

最快的回应链路应该是:

插件一次性输出当前任务判断所需的上下文 -> Codex 读 latest.json -> 必要时补一次源码/反射检索 -> 回答

现在慢的地方不是 latest.json 文件读写,而是 AI 还要自己推断:

  • 当前是哪个 editor
  • 哪些资产打开
  • 当前面板是不是目标面板
  • 当前可见操作是什么
  • 当前选择是什么
  • 目标功能是不是在当前面板里
  • 如果不在,可能去哪

所以 latest.json 最好直接输出这些"判断字段":

{ "current_location": { "active_editor_kind": "SkeletalMeshEditor", "active_asset": "...", "opened_assets": [...] }, "current_selection": { "selected_actors": [], "selected_objects": [], "asset_editor_selection": [] }, "visible_workspace": { "visible_panels": ["Skeleton Tree", "Asset Details", "Material Slots"], "visible_actions": ["Preview Animation", "Create Asset", "Reimport Mesh"], "visible_properties": ["Material Slots", "Element 0", "Element 1"] }, "context_hints": { "not_currently_visible": ["IK Retargeter Op Stack"], "likely_relevant_open_assets": ["RTG_Aglina"], "missing_collectors": ["IKRetargeterOpStackCollector"] } }

这样问"隐藏 IK Goal 图标怎么做"时,AI 可以立刻判断:

  • 你当前窗口是 Skeletal Mesh,不是 Retargeter op 设置;
  • RTG_Aglina 已打开,是相关资产;
  • 当前 visible properties 是 Material Slots,不是 Debug draw goals;
  • 需要切到 Retargeter / Op Stack;
  • 具体属性名如果 JSON 里有就直接答,没有再查源码。

所以最优不是"大 JSON",而是一份小而语义化的 JSON

Vertex Group 存在于 Mesh 对象上。

Bone 存在于 Armature 对象里。

Armature Modifier 把二者按名字配对。

给某一根 bone 增加 Vertex Group,本质是:在 Mesh 上创建一个和 bone 完全同名的 Vertex Group,然后把一批顶点 Assign 到这个 group 里。

Scalar Parameter:按住 S + 鼠标左键点击空白处

常用于 Roughness、Opacity、Metallic 这类单个数值。

Vector Parameter:按住 V + 鼠标左键点击空白处

常用于 Base Color、Emissive Color、Tint 颜色。UE 5.7 里 Vector Parameter 已经有 Vector4 / RGBA 输出。Epic Games Developers

Texture Sample Parameter 2D:按住 T + 鼠标左键点击空白处

常用于把贴图暴露给 Material Instance 替换。

因为它们解决的不是同一层问题。

Slab / BSDF 节点 回答的是:

"这个像素上的物质本身是什么?光进入表面后,如何反射、散射、透射、吸收?"

也就是材料的物理组成层 。在 Substrate 里,一个 Slab 被定义成一块 matter:有 interface,也有 medium。interface 管 F0、F90、Roughness、Normal、Anisotropy 这类表面反射;medium 管 MFP、SSS、吸收、透射这类体内行为。官方文档也明确说 Substrate Slab 是构建 Substrate Material 的 elementary building block,而且是 non-Substrate 旧 Material Root Node 的模块化替代物。Epic Games Developers

Shading Model 节点 回答的是:

"这个材质在 UE 的旧渲染语义里,应该走哪种引擎级光照/分类路径?"

比如 Default Lit、Clear Coat、Cloth、Hair、Subsurface Profile、Single Layer Water、Unlit 等。旧系统里 Shading Model 是一个很大的分类开关:你选了 Cloth,UE 就暴露 Cloth 相关输入;你选了 Hair,就进入 Hair 的专用光照逻辑。官方对 Shading Model 的定义就是:决定 Material 如何和 incoming light 交互,并且 UE 有很多为特定表面类型设计的 Shading Models。Epic Games Developers

所以用户需求不是"为什么要重复两个东西",而是:

Substrate 想要更物理、更可组合;但 UE 又不能立刻抛弃旧的 Shading Model 生态。

Slab BSDF 负责"这层材料本身怎么反光、漫反射、粗糙、法线、SSS"。

主 Material 节点 / Blend Mode 负责"这整个材质如何和背景混合、是否透明"。

所以不是你接错了,而是控制权分层变了。

当前 Blend Mode / Substrate 透明模式 没有启用 root node 的 Opacity 输入

Material → Blend Mode = TranslucentGreyTransmittance

这属于 Substrate 的 Transmittance 透明模式。它的目标不是"Alpha 把物体整体淡出",而是模拟光穿过材质后的透射、散射、折射。所以它主要看:

SSS MFP

SSS MFP Scale

Surface Thickness

Refraction

Roughness

官方 Substrate 文档里,粗糙折射半透明材质就是设置 TranslucentColoredTransmittance / TranslucentGreyTransmittance / ColoredTransmittanceOnly,然后把值传到 RefractionRoughnessSSS MFP 等输入,而不是接普通 Opacity。Epic Games Developers

官方逻辑是:Substrate 用 "slab of matter" 表达材料,透明/透射不是单独一个旧式 Opacity 输入,而是由 Slab 的透射、吸收、厚度这些物理参数决定;官方也明确说 Transmittance/MFP 越大,光越能穿过 slab,背景越可见。Epic Games Developers+1

公式粗略算一下,如果 T = 0.98,Thickness = 0.1:

复制代码
复制代码
MFP ≈ -0.1 / ln(0.98)
MFP ≈ 4.95

所以它输出的 MFP 会是一个比较大的数。大,表示光可以在材料里走很远才被明显吸收,所以看起来很透明。

Constant3Vector / Vector Parameter 本质上都可以当 Vector3 用。

官方对 Constant3Vector 的定义是:输出一个三通道 vector,也就是三个常数;RGB 颜色可以被看成一个 Constant3Vector,每个通道对应红、绿、蓝。Epic Games Developers

也就是说:

Constant3Vector = float3 / RGB

Vector Parameter = 可参数化的 float4,UI 常按颜色参数显示

所以它既可以是"颜色",也可以被你拿来当三维数据,只是材质编辑器默认把它包装成颜色选择器。

如果你真的想要"裸 Vector3 数字",不要按 V。

在 Material Graph 里:

3 + 左键 :创建 Constant3Vector 。官方教程里也明确用 3 + Left Mouse Button 放置 Constant3Vector。Epic Games Developers

V + 左键 :创建 Vector Parameter,适合以后在 Material Instance 里调颜色/向量参数。

Git 的 partial clone / 按对象过滤获取下载

通过 Git 的 partial clone / 按对象过滤获取下载的,不是从 GitHub 网页下载目录树文件。

核心流程是:

git init git remote add origin https://github.com/EpicGames/UnrealEngine.git git fetch --filter=blob:none --depth=1 origin ` refs/heads/5.8:refs/remotes/origin/5.8 ` refs/heads/dev-5.8:refs/remotes/origin/dev-5.8

参数含义:

  • --filter=blob:none:不下载源码文件内容,只获取 Commit 和 Tree 对象。
  • --depth=1:仅获取分支最新提交,不获取完整历史。
  • Git 使用你本机账号凭据访问 Epic 私有仓库。

然后从 Tree 对象生成路径文本:

git ls-tree -r --name-only refs/remotes/origin/5.8 git ls-tree -r --name-only refs/remotes/origin/dev-5.8 git diff --name-status refs/remotes/origin/5.8 refs/remotes/origin/dev-5.8

Git 仓库本身就将每次提交表示为:

Commit -> Tree -> 子 Tree / Blob

因此可以只下载 Tree 获取全部目录和文件路径,而不下载 Blob 源码内容。本次 Tree 元数据约 8.51 MiB,生成了约 22 万条文件路径。

表示 dev-5.8 里的 UBA 可执行/库相关导出产物更新了。你不能从这里直接读出"功能改了什么",只能知道二进制产物变了。想知道原因,要去看对应源码路径,比如:

复制代码
复制代码
Engine/Source/Programs/UnrealBuildAccelerator/...

GitDependencies 配置:

复制代码
复制代码
Engine/Build/Commit.gitdeps.xml

这个比较重要。Commit.gitdeps.xml 通常记录这次引擎提交需要的外部依赖包、预编译依赖、工具包、二进制依赖等。它变了,意味着 dev-5.8 对某些第三方/预编译依赖的版本、哈希、路径或包清单做了调整。

UE 识别插件的边界,不是靠"文件名里有 MCP",也不是靠"我觉得这些文件相关",而是靠插件描述文件 .uplugin。Epic 官方文档明确把 .uplugin 称为 plugin descriptor,并说明带 C++ 代码的插件通常包含 Source 文件夹和模块 .Build.cs;项目下的 Plugins 文件夹会在启动或项目生成时被发现。Epic Games Developers+1

所以当你确认存在:

复制代码
复制代码
Engine/Plugins/Experimental/ModelContextProtocol/ModelContextProtocol.uplugin

并且 .uplugin 里写着:

复制代码

JSON

复制代码
"FriendlyName": "Unreal MCP",
"Description": "Anthropic MCP (Model Context Protocol) server implementation for Unreal Engine."

这就说明:UE 5.8 仓库中确实有一个名为 ModelContextProtocol 的插件,它的插件根目录就是 Engine/Plugins/Experimental/ModelContextProtocol/

因此,用 sparse checkout 只取:

复制代码
复制代码
Engine/Plugins/Experimental/ModelContextProtocol

这个行为可以说是准确的,因为它按 UE 插件描述文件确定了完整目录边界,而不是靠关键词散抓文件。

但它只准确到这一层:

复制代码
复制代码
准确下载了 ModelContextProtocol 这个插件目录。

.upluginUE 识别插件身份和插件边界的权威入口 。UE 会通过它知道"这是一个插件""插件叫什么""有哪些模块""什么时候加载""依赖哪些插件""是否默认启用"等。Epic 文档明确说插件有自己的 .uplugin 文件;带代码的插件如果有 Source 文件夹和 .Build.cs,插件代码会被加入生成的 C++ 项目文件,并在项目编译时作为依赖一起编译。Epic Games Developers

.uplugin 只回答第一层问题:

复制代码
复制代码
这个目录是不是一个 UE 插件?
这个插件声明了哪些模块?
这些模块大概什么时候加载?
这个插件显式依赖哪些其他插件?

不是功能实现文件 ,它只是 ModelContextProtocolEditorTests 这个模块的"入口登记文件"。

#include "Modules/ModuleManager.h"

class FModelContextProtocolEditorTestsModule : public IModuleInterface

{

};

IMPLEMENT_MODULE(FModelContextProtocolEditorTestsModule, ModelContextProtocolEditorTests)

除了这些纯 Proof-of-Work(工作量证明)的测试网,比特币现在还有一个叫 Signet(签名网) 的测试环境(你页面上也能看到)。Signet 不再允许任何人随意挖矿,而是由指定的权威节点来签名生成区块,从而彻底根治了被恶意矿工"玩坏"的风险,也是现在非常流行的开发选择。

  • 链上交易(On-chain):比特币的主链(Mainnet)通过 Proof-of-Work 机制打包区块,平均每 10 分钟产生一个区块。这种机制是为"去中心化与安全性"设计的,不是为了即时支付。就像"邮寄信件",虽然稳妥但速度慢。

  • 闪电网络(Lightning Network) :它在主链之上构建了一个"链下(Off-chain)"支付通道网络。交易在用户之间直接通过点对点(P2P)进行,几乎是瞬间完成的。这种速度感类比"闪电"劈下的一瞬间,强调交易确认的瞬时性。

sat/vB 是比特币网络中衡量交易手续费(Transaction Fee)的单位,也就是你支付给矿工的"快递费"。

拆解来看:

  • sat :是 Satoshi(聪) 的缩写,它是比特币的最小单位。1 \\text{ BTC} = 100,000,000 \\text{ sat}

  • vB :是 Virtual Byte(虚拟字节) 的缩写。这是比特币在 SegWit(隔离见证)升级后引入的一种计算交易大小的计量方式。

如果你在 mempool.space 上看到当前的高优先级费用是 5 sat/vB

  1. 如果你的交易大小(vSize)是 200 vB

  2. 你需要支付的总手续费就是:5 \\times 200 = 1,000 \\text{ sat}(即 0.00001 BTC)。

不要把你的私钥输入到这些网站里,只用你的公钥或交易 ID 进行查询

为什么叫它"浏览器"?

你没说错,这就是个网页,是用 JavaScript 和 HTML 写的。

  • 准确定义 :我们叫它 "区块浏览器"(Block Explorer)

  • 逻辑:因为它本身不产生数据,它只是一个"翻译官"。比特币网络(节点)里的数据是加密的原始二进制代码,普通人看不懂。这个网站通过 API 连接到比特币节点,把那些原始数据渲染成了你看到的表格和方块,让你能用"浏览器"的方式去"阅读"区块链账本。

  • 它不是基地 :它完全不是比特币的基地,它只是一个查询窗口。就像你用 Google 搜索新闻,Google 不是新闻的制造者,它只是把你导向新闻源头。

如何验证(Be your own explorer)

  • 如果你有能力 :你可以下载 Bitcoin Core 软件,在你的电脑上运行一个全节点(Full Node)。这意味着你下载了完整的比特币账本,你可以直接查询本地数据库,根本不需要看任何网页。

  • 如果你依赖网页 :你就只能去交叉比对 。你可以在 mempool.space 上查一笔交易,同时去 Blockchain.comBlockchair 上查同一笔交易的哈希值(TXID)。如果所有浏览器显示的结果一致,说明数据大概率是准的。

在引入 SegWit 之前,区块大小限制是 1MB。引入后,通过 vSize 的计算方式,允许一个区块里塞入更多交易(理论上限提高到了 4M weight)。

gemini拍马屁是一流,难怪ai越来越难用

为什么 REST 这么流行?

因为它解决了"跨语言"和"跨平台"的沟通成本:

  • 你不需要知道对面服务器是怎么写的mempool.space 可能后台用的是 Rust 或 Node.js,但你写代码时,只要会发 HTTP 请求,不管是 Python、Java、Go 还是 JavaScript,都能直接读懂它返回的 JSON 数据。

  • 像点餐一样标准化

    • GET /blocks ------ 就是点一个"给我看最近区块"的套餐。

    • GET /tx/:txid ------ 就是点一个"给我查这笔交易详情"的单点。

    • 无论后端怎么变,只要菜单格式不变,你的代码就不需要改。

  • 飞进来 :代表全球各地有人发起了一笔交易(比如 A 给 B 转账)。这笔交易通过网络节点广播到 mempool.space 的节点,所以它"飞进来"了。

  • 飞出去(到右边):这意味着它被矿工"选中"并打包了。矿工也是生意人,他们必须在 10 分钟内填满一个区块,他们会优先选择那些"给小费(手续费)多"的交易。

为什么有的方块大,有的方块小?

这不仅是视觉效果,这代表了数据量的大小

  • 大方块:这笔交易包含了非常多的输入(Inputs)或输出(Outputs),或者它是一笔极其复杂的"多重签名"交易,它占用的空间(vB)大,矿工打包它需要消耗更多的"区块空间资源"。

  • 小方块:普通的转账,数据很紧凑。

  • 矿工的逻辑:矿工盯着这些方块,就像是在玩俄罗斯方块------他们必须在有限的 1MB-4MB 空间内,塞入尽可能多且手续费高的方块。

  • 深浅差异 :并不是交易随机染色,而是 mempool.space 为了让你一眼看出"谁给钱多"。

  • 高优先级(比如亮绿色或金色):通常是手续费高的交易,矿工最爱抢;

  • 低优先级(暗色):手续费低或甚至没给手续费的交易,它们往往被排在区块的最底部,或者被推迟到下一个区块。

区块是"一人独自设置数据块分配"还是"多个不相关的人同时构建一个区块"?

这确实是个误区:区块是由一个矿工(或一个矿池)打包并计算出来的,而不是大家平摊着做的。

  • 抢答机制:你可以把挖矿想象成全球矿工在抢一道"数学难题"的答案。每 10 分钟,只有一个人能抢到。

  • 权力:谁抢到了这 10 分钟的"记账权",这 10 分钟内区块里装什么,就是谁说了算。其他矿工抢不到,就只能看着他把交易打包,然后赶紧去准备下一轮的抢答。

  • 矿工不仅是"体力劳动者",还是"精算师" : 矿工不是瞎塞的。他们后台运行的软件(如 Bitcoin Core)有非常先进的算法(例如 Knapsack Problem 背包问题算法)。矿工的目标是收益最大化

  • 最优解:他们会从 Mempool 里挑选几千笔交易,像拼图一样,把 1MB-4MB 的空间填得满满当当,让手续费的总和最高。

  • 如果填不满怎么办? :矿工完全可以允许区块留白(比如只填了 3.99MB)。比特币协议规定区块大小的上限 是 400万重量单位(Weight),但并没有规定下限。如果实在没交易了,他就出一个"缺斤少两"的区块,没有任何惩罚。

"卡死"在区块链世界里叫 "拥堵"

  • 当交易太多,所有矿工都填得满满当当,还是处理不完时,交易就会在 Mempool 里排队(也就是你看到的颜色越来越暗,优先级越来越低)。

  • 这时候,市场机制 就生效了:如果你的交易急着用,你只能提高 sat/vB 手续费,用金钱优势让矿工优先把你那个"方块"塞进下一个区块。

  • 每一个运行比特币节点的人(矿工、交易所、开发者),都可以通过代码里的设置(mempoolsize)来决定自己的电脑愿意缓存多少交易。

  • 没有硬性强制:比特币协议本身没有写死"内存池只能存 1000 笔交易"。只要你的电脑内存条(RAM)够大,你愿意设置缓存 100 万笔交易,那你的节点就能存下 100 万笔。

比特币全节点软件(Bitcoin Core)的源代码。开发者写了这一套逻辑:当内存池(Mempool)快满时,必须触发"清理程序"。

不是某个"大佬"在后台点按钮,而是你运行的每一个全节点程序里都自带这个逻辑。

一旦你的交易被某个节点"丢弃"了:你没听错,它真的会消失

  • 它在全网"消失":这意味着没有任何矿工会看到这笔交易,也不会打包它。

  • 你的客户端会看到:你的钱包可能会显示交易"未确认"或"找不到该交易"。

  • 解决办法 :你必须重新发起(广播)这笔交易,并且这次调高手续费,这样矿工才会看它一眼,它才能在内存池里"站稳脚跟",不被丢掉。

Bitcoin Core 是中本聪(Satoshi Nakamoto)在 2009 年发布的第一版比特币软件(当时叫 Bitcoin-Qt 或直接叫 Bitcoin)的直接演进版本

中本聪在 2011 年左右隐退时,把代码仓库的控制权交给了加文·安德烈森(Gavin Andresen)和其他核心开发者。

  • 名称变更 :随着时间的推移,为了体现该软件不再是由单一创始人的个人项目,而是由全球开发者维护的开源项目,它改名为 Bitcoin Core

  • 意义:Bitcoin Core 依然是目前全球最主流、最权威的比特币节点软件。它的代码库里依然保留着中本聪写的很多原始逻辑,但也为了应对扩容、安全和功能扩展(如你刚才看到的 SegWit/隔离见证、Taproot 等升级),加入了大量现代化的功能。

中本聪在最初的代码里也设计了类似的"丢弃机制"限制,防止垃圾交易堵死网络。

  • 演进逻辑 :但随着网络流量增加,现在的 Bitcoin Core 开发者们不断地优化这些算法,使其更精细(比如现在的策略不仅看费率,还看交易的各种权重),但这套逻辑的内核------即"作为节点我有权利丢弃你不想要的交易"------完全符合中本聪最初设计的去中心化原则

Bitcoin Halving

"具体数量取决于某个 xxxx",在比特币世界里有一个大名鼎鼎的机制,叫"比特币减半(Bitcoin Halving)"。

中本聪在写 Bitcoin Core 的初始代码时,没有让系统无限印钞,而是写死了一个极其冷酷的数学规则:每产出 210,000 个区块(大约需要 4 年时间),系统给赢家矿工的固定奖励就会直接砍半。

这就形成了一个倒计时纪元:

  • 2009 年(创世) :每个区块奖励 50 BTC。(那时候电脑随便跑跑 hash 就能挖到,一天能挖几百个)

  • 2012 年(第一次减半) :降到 25 BTC

  • 2016 年(第二次减半) :降到 12.5 BTC

  • 2020 年(第三次减半) :降到 6.25 BTC

  • 2024 年 4 月(第四次减半,也就是目前所处的阶段) :降到了 3.125 BTC

当一个矿工拼命算 Hash,终于"算对"了,赢得了记账权时,系统不是从天上掉钱给他。 Bitcoin Core 允许这个赢家在自己打包的这个区块的最顶端 ,凭空伪造一笔没有任何发送人的特殊交易(这叫 Coinbase Transaction)。

在这笔交易里,矿工会写上: "向我自己的钱包地址支付 3.125 个新鲜出炉的 BTC,外加这个区块里所有人交的手续费。"

只要他的 Hash 算对了,全网其他节点就会捏着鼻子承认这笔"无中生有"的钱是合法的。这就是比特币系统中唯一凭空产生新币的方式。

终局是什么?

顺着这个"四年砍半"的 xxxx 机制往下算,大约到 2140 年 左右,这个区块奖励会经过 32 次减半,最终变成 0。 到时候,所有的比特币都被挖光了,总量被永远锁死在 2,100 万枚

到那一天,矿工算对 Hash 后,系统不再发放任何新的 BTC。矿工唯一的收入来源,就只剩下 Mempool 里那些排队用户支付的 "交易手续费(sat/vB)"

对比界面的存在,就是为了体现比特币社区的透明与监督(Don't trust, verify)

它在明晃晃地告诉你:"你看,按照规则矿池本来应该这么打包(左图),但他实际是那么打包的(右图)。" 通过下面那个百分比偏差(-4.37\\%+2.56\\%),你就能直观地看到这个矿池有多"守规矩",或者他接了多少"走后门"的私活。

btc节点有默认最优算法

正常的比特币全节点(比如 Bitcoin Core 软件)在组装区块模板(Block Template)时,有一个默认的算法:严格读取交易自带的链上手续费(sat/vB),按照从高到低自动排序打包。 mempool.space 网站就是严格按照这个开源算法,算出了左边的预期区块。

2. 矿池的绝对控制权

矿池本质上是中心化的商业公司。 虽然比特币网络是去中心化的,但算力高度集中在几个大矿池(比如图里的 SpiderPool、Foundry USA、AntPool)手里。 矿池的服务器是他们自己所有的,这意味着他们有最高权限修改自己节点上的打包排序算法代码。 比特币协议只要求矿工计算出正确的 Hash,根本不管矿工在区块里塞了什么交易(只要交易本身合法)。

3. "私底下"的具体操作流程(如何产生蓝色方块)

当一笔交易链上手续费给得太低,长期卡在 Mempool 里不确认时,就会触发这种链外操作:

  • 第一步:提交 TXID 用户离开比特币网络,直接用普通的网页浏览器登录矿池的官方网站(例如 ViaBTC 或 Binance Pool 都有公开的加速器页面),输入自己卡住的交易哈希值(TXID)。

  • 第二步:链外付款(Out-of-Band) 矿池系统会给用户报个价。用户通过信用卡(美元)、微信支付宝、或者其他加密货币(如以太坊、USDT) ,直接把钱打进矿池公司的银行账户或企业钱包。这笔钱没有走比特币主链。

  • 第三步:调用 RPC 接口强行改权 矿池收到你的场外汇款后,他们的后台系统会立刻调用自己运行的 Bitcoin Core 节点上的一个高级 RPC 命令,通常是 prioritisetransaction。 这个命令的作用是:在矿池本地的内存池中,强行给这笔交易加上一个"虚拟的费率权重"。

  • 第四步:违背常理的打包 当矿池的机器开始打包下一个区块时,代码读取到了这个被强行改过权重的交易,就会无视它原本极低的链上费率,直接把它塞进区块里。

「second-tier」 是指「第二梯隊」 「二線」 「次要角色」的意思 00:10 Opens in a new window

影片開頭提到,雖然台灣在邏輯晶片(如台積電主導的領域)上實力非常強大,但在半導體的另一個大領域------記憶體(特別是 DRAM)中,台灣的技術、市佔率和影響力只能算是「二線(second-tier)」,並不是市場上的主要核心玩家 00:10 Opens in a new window

在 DRAM 的世界裡,真正的「第一梯隊(first-tier)」是掌握絕大多數市佔率與最先進技術的三大巨頭 37:23 Opens in a new window

  1. 南韓的三星(Samsung) 20:36 Opens in a new window

  2. 南韓的SK海力士(SK Hynix) 20:36 Opens in a new window

  3. 美國的美光(Micron) 36:01 Opens in a new window

而台灣少數存活下來的 DRAM 廠商(例如南亞科技),在規模與技術領先度上都落後於上述三大巨頭,因此被歸類為「第二梯隊」的供應商 36:51 Opens in a new window

相关推荐
拾光向日葵2 小时前
江西物理类本科线上30—50分,能报南昌科技职业大学本科专业吗?
学习·其他
AI_零食2 小时前
健身室器材管理系统鸿蒙PC Electron框架编写深度解析
前端·javascript·学习·华为·electron·前端框架·鸿蒙
ZC跨境爬虫3 小时前
跟着 MDN 学 JavaScript day_2:JavaScript 初体验
开发语言·前端·javascript·学习·ecmascript
爱喝水的鱼丶3 小时前
SAP-ABAP:SAP基础数据校验工具开发系列博客(共5篇)第五篇:性能优化与上线运维:保障高并发场景下的工具稳定运行
运维·学习·性能优化·sap·abap·erp·经验交流
nashane3 小时前
HarmonyOS 6学习:NFC服务中IsoDep连接失败的排查与解决——从参数匹配到多SDK协同的完整指南
学习·华为·harmonyos
悠哉悠哉愿意3 小时前
【单片机复习笔记】十五届国赛复盘
笔记·单片机·嵌入式硬件·学习
秋漓4 小时前
Nginx学习与应用
运维·学习·nginx
一楼的猫5 小时前
AI辅助长篇小说创作的“记忆崩坏“问题与结构管理策略
人工智能·学习·机器学习·chatgpt·ai作画·ai写作
We Just Keep growing5 小时前
【MySQL运维篇】——日志、主从复制、分库分表、读写分离
java·运维·数据库·windows·学习·mysql