首页 文章 精选 留言 我的

精选列表

搜索[编译],共10000篇文章
优秀的个人博客,低调大师

Docker 镜像动辄数百 MB,而一个完整游戏引擎编译成 WASM 后仅 35MB

Docker 镜像的体积问题长期困扰着开发者——一个精简版 Python 基础镜像就要 144MB,加上依赖轻松超过 280MB。但 WebAssembly 正在改变这一局面。开发者 Sergey Bogomolov 最近将一个完整的 3D 游戏引擎导出为 WASM,惊喜地发现整个二进制文件只有 35MB,可以在任何浏览器中直接运行,零安装。 这个数字意味着什么?Facebook 主页加载 44MB 的资源,而他的游戏引擎只有 35MB。Go 语言的 livekit 服务器(包含 WebRTC 功能)达到 75MB,已经接近这个游戏引擎的体积。更惊人的是,一个 Python 基础的 AI Agent 在他的工作中达到 1.45GB——是游戏引擎的 40 倍。Hugo 静态网站生成器需要 423MB,而生成的结果只是静态 HTML。 Item Size Google homepage (all resources, 43 requests) 10MB this game (Godot 4, full engine) 35MB Facebook homepage (all resources, 379 requests) 44MB livekit/livekit-server (Go, WebRTC) 75MB python:3.14-slim-trixie 144MB python:3.14-slim-trixie + minimal deps 282MB REST API from my job 300–400MB node:latest (19M pulls/week) 421MB ghcr.io/gohugoio/hugo 423MB Python-based AI agent from my job 1.45GB 对比表格揭示了一个尴尬的现实:主流 Docker 镜像的体积远超普通网页。即便是 Go 语言的二进制文件也开始接近这个量级——livekit 的 75MB 已经和游戏引擎相当。这意味着如果用 WASM 替代容器,不仅可以大幅减少传输体积,还可能获得更好的跨平台兼容性。 然而 WASM 的采用并未成为标准实践。WASI 的 socket 和线程支持仍在预览阶段,只有 Rust 和 C/C++ 是目前真正可行的选择。Cloudflare Workers 已经可以加载 WASM 模块,containerd 有 runwasi,Kubernetes 有 kwasm 实验,WASI 运行时也已存在。这些基础设施已经就位,但开发者仍未大规模转向 WASM。 这个困境类似于几年前 ARM 节点的处境:更便宜、密度更高、广泛可用——却仍然不是默认选择。技术上的可行性并不等于采用率,这背后可能有学习曲线、生态系统成熟度、还是现有工作流程惯性等因素。但毫无疑问,35MB 的游戏引擎已经证明了 WASM 在体积上的优势是真实的。 来源:Sergey Bogomolov (https://bogomolov.work/blog/posts/wasm-vs-docker/)

优秀的个人博客,低调大师

iOS:Xcode的beta下编译低版本项目时,出现的Link错误( "_fwrite$UNIX2003", referenced from...

开发的项目多了,对于一个i386的错误,处理起来应该是得心应手的,可是仔细看来,跟之前遇到i386的错误还不大一样,直接搜i386是搜不到该问题解决的方法,你要是搜“Undefined symbols for architecture i386”会搜出一些答案,但也不是很多,并且能不能解决当前遇到的问题,还得自己试过后才知道行还是不行。这里我就给大家说一下我当时搜到的一些解决方法: 1、缺少类库,自己项目缺不缺少类库自己还是知道的,看上面的错误也像是缺少类库,所以这个答案直接抛 弃掉 2、这个就需要自己动手操作一下,这里我就简单说下步骤,截图嘛,最后也没有帮我解决问题,所以复述下步骤,有空的时候可以试下:点击Xcode左栏项目工程:Target—>Build Settings—>Apple LLVM 6.0 - language - c++到此,修改c++ Standard Library 属性为 libstdc++(GNU C++ standard library) 以上两中方法都没能真正的解决问题,难道这个问题就没有解决办法了,别急,下面就是解决问题的方法了 出现的错误截图: 解决办法: 首先在AppDelegate.h文件中添加如下代码: #ifdef DEBUG FILE *fopen$UNIX2003(const char *filename, const char *mode); size_t fwrite$UNIX2003(const void *ptr, size_t size, size_t nitems, FILE *stream); #endif 再在AppDelegate.m文件中添加如下代码: #ifdef DEBUG FILE *fopen$UNIX2003(const char *filename, const char *mode) { return fopen(filename, mode); } size_t fwrite$UNIX2003(const void *ptr, size_t size, size_t nitems, FILE *stream) { return fwrite(ptr, size, nitems, stream); } #endif 或者: 首先在AppDelegate.h文件中添加如下代码: #if defined (__unix) || (CC_TARGET_PLATFORM == CC_PLATFORM_IOS) #ifndef __ENABLE_COMPATIBILITY_WITH_UNIX_2003__ #define __ENABLE_COMPATIBILITY_WITH_UNIX_2003__ FILE *fopen$UNIX2003(const char *filename, const char *mode); size_t fwrite$UNIX2003(const void *ptr, size_t size, size_t nitems, FILE *stream); #endif #endif 再在AppDelegate.m文件中添加如下代码: #if defined (__unix) || (CC_TARGET_PLATFORM == CC_PLATFORM_IOS) #ifndef __ENABLE_COMPATIBILITY_WITH_UNIX_2003__ #define __ENABLE_COMPATIBILITY_WITH_UNIX_2003__ FILE *fopen$UNIX2003(const char *filename, const char *mode) { return fopen(filename, mode); } size_t fwrite$UNIX2003(const void *ptr, size_t size, size_t nitems, FILE *stream) { return fwrite(ptr, size, nitems, stream); } #endif #endif 在指定的类中添加以上代码,问题就解决了。 这可能是Xcode的一个bug,升级到正式版,可能就不存在这个问题。 参考:http://blog.sina.com.cn/s/blog_b2b0ab4b0102v8k7.html 程序猿神奇的手,每时每刻,这双手都在改变着世界的交互方式! 本文转自当天真遇到现实博客园博客,原文链接:http://www.cnblogs.com/XYQ-208910/p/5613904.html ,如需转载请自行联系原作者

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册