我正在考虑一个新项目的组件,这让我想知道:
有人知道有一个财团在为组件库策划CDN吗?理想情况下,这种提供将改善缓存的加载时间,考虑到依赖注入的好处,并集中加密/安全行为,以便在量子计算给粉丝带来麻烦时,可以快速推出新算法。
如果没有,有谁知道如何游说才能开始呢?
我意识到许多库可以重新编译成组件下载,但这会增加应用程序的大小,并给每个商店带来额外的压力,以管理它们的库消耗。
管理CDN的其他(但不太重要)的好处包括支持数据仓库的库的共享性能提高、数据库访问的共享性能提高、编码时强制分离关注点、项目规模要小得多、通过nuget简化接口合同等等。
此外,如果组件容器获得足够的采用,这种共享库可以作为一种工具,在语言不可知论的明确目标下,允许更无缝地转换到/从不同的技术栈(例如,可能统一JAVA和.NET linq库)。组件意味着语言不可知论。看来,如果每个技术平台/商店都建立自己的冗余图书馆,那将是一件令人遗憾的事,这将比在开放源码审查下建立的图书馆更慢、更不可靠。
发布于 2020-05-15 15:56:10
在
的理想情况下,这样的服务可以提高缓存的加载时间。
在现代浏览器中,它不是那样工作的;出于安全考虑,它们结合了一种称为双键HTTP缓存的技术(不幸的是,我不知道有一个很好的解释器可以链接到它,但是这个应该很好:https://github.com/shivanigithub/http-cache-partitioning/)。
这意味着,来自CDN的任何资源都是在请求它们的原点下单独加载和存储的,而不是像过去那样在不同的网站之间共享。
因此,您最好实际为特定应用程序编译所需的本机库,这样您就可以从编译时优化中获益,并且不会为每个用户加载大型库或框架中任何未使用的部分。
但是,现在我们已经讨论了性能方面,确实有一些尝试为预编译的W幕模块提供服务,主要是针对代码大小不像标准框架中那样值得关注的小型库。
如果您正在寻找用于从JavaScript中使用的JavaScript库,那么npm与其他库一样被使用,并且是一个方便的平台,因为您可以将JavaScript包装器(例如Emscripten或wasm-bindgen生成的代码)与实际的本机代码一起发布。例如,快速搜索中的一个随机例子:https://www.npmjs.com/package/xsalsa20。
如果您想要发布使用WASI构建的Wasm应用程序,那么您可能会对https://wapm.io/感兴趣,因为它就是这样做的,并且附带了许多预编译的应用程序。
TL;DR:有一些包管理器和CDN允许提供WebAssembly库和应用程序,但这主要是为了方便,而不是为了性能;如果您关心性能和下载大小,那么您最好自己为特定的应用程序编译本地库。
https://stackoverflow.com/questions/61821267
复制相似问题