[讨论] 第一次用Claude Code就撞墙

楼主: erspicu (.)   2026-02-15 02:35:26
最近开始在摸索vibe coding工具
gemini cli 我是google gemini的pro订阅户
用google帐号登入方式认证 好像条件会比免付户好些
据说是cp值最高的 比启用api key的方式
使用起来 我切到3的模型 好像模型会动态换来换去
随着token用量 主机负担 或是问题性质
等等我不太清楚因素切换使用模组 所以品质好像也是跳来跳去
缺点是真的会写出bug 还信誓旦旦说修好了 结果还是坏掉
但优点是目前多数它最后都能搞定 有时候看不下去帮忙它debug一下
通常要帮忙开浏览器debug模式 抓一些讯息 或是靠自己的经验跟它说哪边有问题
给它提示 它修得比较快 但也遇过简单的html css排版问题搞到烂掉修不好
我对css之类没那么熟 最后就给它上移动 恢复
简单来说 我觉得cp值高 反正pro订阅户 好像很难超额
问题是好没我觉得干净俐落 甚至我自己还要帮忙它处理问题
还有vibe coding 好不好用真的跟专案性质很有关系 主要是训练样本
之前处理winui 3专案 常常跟wpf的xaml搞混
像是一般web相关技术 啥html css .net java php sql之类的技术
海量训练样本 效果就好很多 我猜手机app的开发也是很不错
Claude Code 今天开始用 也是付费pro用户 结果token一下就用完了
大概就是我想对以前的专案做效能优化测试
https://github.com/erspicu/LanczosWasmDemo
专案下载下来 结果我自己环境跟以前有差不能编译 先请它了解专案帮我修正
接着开始技术堆叠开aot simd 跟我说啥simd好棒棒
然后我请它帮我加上simd优化一下 结果慢到整个网页当掉 比原始版本还慢
又请它修正 原本它是把一个pixel (r,g,b,0) 封装到 vector
一堆 pack unpack动作 搞到根本不能用
它修正后 说 应该是一次处理4颗pixel才对 结果还是慢 算了好像无解
接着往Parallel.For 多核方式平行处理的方向优化 反正搞了半天也是gg
就是.net 8不支援
换成.net 9 支援了,但还是很多问题 有一些ai回复 复制贴上一些
分享一些过程 给想往这些方向钻的.NET人一些心理准备
觉得无聊 下面可以快速略过 看最后重点
其实原始的 Lanczos.cs 里就有被注解掉的 Parallel.For:
● Searched for 1 pattern (ctrl+o to expand)
● 原作者已经试过,只是注解掉了。
WASM 的限制
不过在 WASM 环境下,多执行绪有额外条件:
1. 需要 SharedArrayBuffer — 浏览器要求设定特定 HTTP headers:
Cross-Origin-Opener-Policy: same-origin
Cross-Origin-Embedder-Policy: require-corp
2. .NET 8 WASM threading 是实验性功能 — 需要在 csproj 加:
<WasmEnableThreads>true</WasmEnableThreads>
3. AOT + Threading + SIMD 三者同时启用在 .NET 8 可能有相容性问题
结论
算法本身是 embarrassingly parallel(完美平行),但要不要在这个专案启用取决
于你想处理 WASM threading 的额外复杂度。如果是跑在桌面 .NET 而非
WASM,直接把 Parallel.For 打开就能用了。
有一点要注意:WASM threading 需要浏览器支援 SharedArrayBuffer,你的 Web
Server 必须回传这两个 HTTP headers:
Cross-Origin-Opener-Policy: same-origin
Cross-Origin-Embedder-Policy: require-corp
如果没有这些 headers,Parallel.For 会退化成单执行绪(和 Original 一样的速度
),不会报错但也不会加速。
● 这是 .NET 8 WASM threading 的已知问题 — 启用 WasmEnableThreads 后,
runtime 需要 worker JS 档案,但非 Blazor 的专案架构没有自动处理这个。
最务实的做法:移除 WasmEnableThreads。Parallel.For 仍然可以编译和执行,只是
在 WASM 单执行绪环境下会退化成循序执行 —
这本身也是一个有意义的比较数据(可以看出 Parallel.For 的排程开销)。
● 最直接的路:升到 .NET 9,你已经有 SDK 9.0.310。.NET 9 对 WASM threading 的
支援比 8 成熟很多,那个 jsModuleWorker 的问题在 9 已经修正。
● 问题在第 67 行的 Greet 呼叫。启用 threading 后,所有 [JSExport] 同步方法都
不能从 JS 主执行绪呼叫 — await 没用,因为错误在 binding
层就丢出了,根本还没回传 Promise。
修法:C# 方法要回传 Task<T> 让它原生就是异步的。
● Read 1 file (ctrl+o to expand)
● 所有方法都要改成回传 Task<T>,用 Task.Run 包起来:
● Task<byte[]> 不被 JSExport 的 marshaler 支援。这是 .NET 9 WASM 的限制 —
Task<T> 只支援简单型别(string, int, double 等),不支援 byte[]。
这让 threading + JSExport + byte[] 三者无法同时达成。最务实的做法是移除
WasmEnableThreads,Parallel.For 仍然能编译和执行(在 WASM
单执行绪下退化成循序),这样三种算法的比较还是有意义的:
- Original: 基准(double, scalar)
- SIMD: SoA + Vector128 加速
- Parallel: 展示 Parallel.For 在 WASM 的排程开销
● 建置成功。总结一下现在的状态:
已还原的部分:
- C# 方法全部改回同步 byte[] 回传
- JS 呼叫改回同步(移除 async/await)
- 移除 WasmEnableThreads
保留的升级:
- .NET 9(两个 csproj)
- WasmEnableSIMD
- COOP/COEP headers(Program.cs)
为什么 WASM threading 行不通: [JSExport] 的 source generator 不支援
Task<byte[]> 的 marshaling,而启用 threading 后又禁止同步呼叫,形成死结。这是
.NET 9 WASM 的已知限制。
Parallel.For 在没有 threading 的 WASM 环境下会退化成单执行绪循序执行,所以
Parallel 按钮跑出来的时间会 等于或略慢于 Original(因为有 Parallel.For
的排程开销)。这本身也是一个有价值的比较结果。
ﴠ.net 10 有解决这问题吗?
● Web Search(".NET 10 WASM threading JSExport Task byte array SYSLIB1072
2026")
ﴠid 1 search in 25s
● Fetch(https://github.com/dotnet/runtime/issues/77157)
ﴠ衅eceived 331.5KB (200 OK)
● 没有解决。 这是 .NET runtime 的已知限制,官方标记为 Not Planned(不打算修)

问题根源
https://github.com/dotnet/runtime/issues/77157:Task<byte[]>、
Task<ArraySegment<byte>> 等复杂型别在 [JSExport] 的 source-generated
marshaller
中不被支援,官方关闭为 Not Planned。
.NET 10 的 WASM threading 现状
根据 https://github.com/dotnet/runtime/issues/68162 和
https://learn.microsoft.com/en-us/aspnet/core/client-side/dotnet-on-webworkers?view=aspnetcore-10.0

- [JSExport]/[JSImport] 的 interop 仍然限制在主执行绪
- WasmEnableThreads + WasmBuildNative 在 .NET 10 甚至还有
https://github.com/dotnet/runtime/issues/112926
- WASM 多执行绪仍标记为 experimental
如果真的想在 WASM 跑 Parallel
官方建议的 workaround 是分两次呼叫 — 先取得 Promise,再另外 marshal 资料。
但对我们这种回传大 byte array 的场景不实用。
结论:目前 .NET WASM 要同时做到 threading + JSExport + byte[] 是死路。现阶段
最有价值的比较还是 Original vs SIMD,这两个在单执行绪 WASM
下都能正常跑,而且 SIMD 的 SoA + Vector128 才是真正能带来加速的方向。
==========================================
使用gpu加速呢?
You've hit your limit · resets 5am (Asia/Taipei)
简单来说 一事无成 TOKEN直接被烧光光了....
然后它觉得好棒棒的SIMD法比原始方式慢了将近10倍
我不怪Claude Code
这种东西本来就跟训练样本有关 我只是没想到TOKEN烧这么快....
其实WASM加速的ISSUE跟GPU遇到的障碍有一部分很像
主要是 内存搬迁交换 PACK UNPACK的成本高
然后WASM 的 SIMD Parallel WebGpu 加速技术好像还充满很多不确定性
AOT目前 .NET 8后应该算成熟了 具体快多少 我是不太清楚
至少编译过没问题 跑没问题
然后SIMD优化问题 真的只能自己设计
想钻研的 可以参考 https://github.com/erspicu/LanczosWasmDemo
照这种烧token的速度 我可能宁可退回gemini cli
作者: Litfal (Litfal)   2026-02-15 03:22:00
WASM还是稍冷门,冷门的东西幻觉很多
作者: jhjhs33504 ( )   2026-02-15 04:17:00
也许是慢的那个做法反而thread safe.net可能还未支援比较泛用的实作方法最终目的还是要让浏览器正常解析
作者: lchcoding   2026-02-15 07:31:00
作者: gofigure (平行世界)   2026-02-15 10:21:00
LLM的先天限制 无法跳脱思考 因为跳脱思考往往低机率我觉得工程师以后就专注在写spec 让AI写代码99%的代码AI都可以写 剩下的人类再补完
作者: Obama19 (^_^)   2026-02-15 10:35:00
.NET的问题 基本就是个垃圾
作者: ma721 (UndeadJ)   2026-02-15 10:49:00
不会用就先用Cursor 最易用的
作者: nicetw20xx (哇爱台湾)   2026-02-15 12:14:00
补充,现在cursor不能用ms的套件
作者: chita0258 (大报社)   2026-02-15 13:04:00
刚入门一定撞墙 需要持续更新CLAUDE档, rules等档案
作者: stepnight (桃卡武康)   2026-02-15 13:34:00
vibe最常见就是问题不知道在哪陪着AI撞墙到token没有也一事无成Claude 的Code品质已经是最好的了但使用者的提示词也非常非常重要懂Code的人能精准列出AI该怎么做、做什么剩的由AI完成再小修修即可Antigravity+Claude 模型我觉得最赞惹Gemini 还是算了
作者: TonyQ (自立而后立人。)   2026-02-15 13:34:00
你这不是撞墙 纯粹就是 没 token XD
作者: stepnight (桃卡武康)   2026-02-15 13:35:00
另外Claude token是真的贵,但也值得
作者: TonyQ (自立而后立人。)   2026-02-15 13:35:00
AI 没有厉害到每一次都可以帮你一次搞定但你根本还没试到一次 XD 再累积点时间会比较知道别人在说什么 XD
作者: labbat (labbat)   2026-02-15 14:29:00
有时候做不出来就会烧金纸(X 烧token希望跑出个能动的
作者: viper9709 (阿达)   2026-02-15 15:30:00
推一楼
作者: cancelpc (阿吉)   2026-02-15 16:28:00
试过简单的程式,只能拿来交作业。随便知道的安全漏洞,就能举出4个有些语言的语病,造出的bug,也修不好提示太长,就会忘了之前的。类似脑容量问题,越接近50%,幻觉,乱掰就很严重用于图,影片可以人眼检查那边坏掉但若是拿来开车,生产运作(动态环境),出现AI没想到的,就好笑了
作者: guanting886 (Guanting)   2026-02-15 17:51:00
冷门领域的产出来的东西大概会是像Pseudo code只能看不能用不过大内的东西就是文件给希望 实作时让你认清事实看看未来在Nested Learning LLM的遗忘问题会不会获得明显改善
作者: DrTech (竹科管理处网军研发人员)   2026-02-15 18:58:00
跟我的经验差不多,c#, xaml, cs常常错误,连最基础都错。AI相关程式码,向量转换几乎都会错。CV或影像处理,,即使没错,基本上算法或向量处理都不是最佳做法。vibe coding,或AI好不好用,真的很吃领域。真的不是说你的领域很好用,就可以套在所有人工作。游戏,矩阵处理,模拟,科学运算,许多工业领域基本上AI写的程式码全挂。
作者: kaltu (ka)   2026-02-15 21:57:00
个人经验,除了训练样本数之外,business logic 跟code只有间接关联的领域AI全死,上面提到的整排都是,矩阵旋转为什么要这样转,跟你本来的矩阵长什么样子和后面要转成什么样子有直接的关联,但code内没办法直接看出来或资讯不足的AI只能瞎鸡巴乱转,再来跟你信心满满的说他看懂了没转错,各种科学计算都是这样反而在webui这种套件发展到有种code层面就能“所见即所得”的感觉的这种特别强结论就是但凡只要你会在白板上作推导然后再写code的领域AI都吃屎,他的训练资料只有code没有那块白板
作者: tung3567752 (渡鸦已连线)   2026-02-15 22:41:00
我敢说觉得ai 相关的code还觉得 claude 很难用,九成九是使用者的问题
作者: umum29 (....)   2026-02-16 00:51:00
之前改wpf接口改的乱七八糟 但纯html/js 表现超强
作者: mucoci (奇宝~)   2026-02-16 00:57:00
习惯就好,我作游戏,功能类可以,但架构和有关视觉的难领域还是有差
作者: viper9709 (阿达)   2026-02-16 01:50:00
kaltu讲的满好的
作者: jack529 (Jack)   2026-02-16 08:01:00
之前接过一个vibe 出来的专案,重构到快疯,几乎程式码都是workaround出来达成某个目地,这种反而比人写出来还难知道当初在干嘛==相信为了这种slop会越来越多
作者: dildoe (Dildo)   2026-02-16 08:53:00
资讯少的没辄 连参数都会下错 直接google能google到倒是方便不易出错
作者: zipigi (冬冬)   2026-02-16 18:10:00
现在用AI开发后端体感还不错 但开发App就真的烂到不行

Links booklink

Contact Us: admin [ a t ] ucptt.com