Swift Foundation 预览版发布
几个月前,Swift 社区宣布将以纯 Swift 形式重写 Foundation 框架,以改善 Swift 的跨平台开发。近日,基于 Swift 重写的 Foundation 发布了首个 Preview 预览版。
Foundation 框架是苹果 macOS 和 iOS 的基础组件支持核心,几乎所有的 Swift 项目都使用 Foundation 框架,其主要包含了大量常用的 API,为许多基本功能提供了一个基础层,也为编写优秀的 Swift 代码奠定了基础。
发布公告写道,此预览版提供了更快、更安全的 Foundation 实现,并且设立了一个新的 Foundation 工作组来协调 Swift 社区的需求和苹果工程的需要。
新 Foundation 构建了许多类型的 Swift 实现,包括 JSONEncoder、Calendar、TimeZone 和 Locale 等,还有一个名为 FoundationICU 的单独软件包,用于在非 Darwin 平台上提供国际化支持。
此外,这个采用 Swift 编写的新实现在 JSON 解码和日期格式化等多方面比之前的 C 和 Objective-C 版本显著提高了性能。
Swift Foundation 为JSONDecoder
和JSONEncoder
提供了全新的 Swift 实现,消除了往返于 Objective-C 集合类型的昂贵往返开销。在 Swift 中紧密集成解析 JSON 以初始化Codable
类型也提高了性能。在解析测试数据的基准测试中,解码时间从 200% 提高到近 500%。
开发团队表示质量和性能是他们对该项目最重要的两个目标。因此,2023 年上半年的计划是继续完善核心 API,增加单元和性能测试套件,并尽可能扩展到其他平台,使用 swift-corelibs-foundation 中最相关的代码。
作为次要目标,该项目要求社区提议添加具有重点范围的新 API,以完善 Foundation 中的现有 API 功能。
今年晚些时候,将继续移植其他 Foundation API 的高质量 Swift 实现,例如 URL
、 Bundle
、 FileManager
、 FileHandle
、 Process
、 SortDescriptor
、 SortComparator
等。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Chrome 113 发布,默认启用 WebGPU
经过四周时间开发,Chrome 113 稳定版正式推出,新版本包括用于视频电话会议的 AV1 视频编码、WebGPU,以及其他增强功能。 默认启用 WebGPU WebGPU 是用于 Web 的新 API,它使用了现代的硬件功能,允许在 GPU 上进行渲染和计算操作。 与 WebGL 系列的 API 不同,WebGPU 提供了对更高级的 GPU 功能的访问,并为 GPU 上的一般计算提供了一级的支持。许多广泛使用的 WebGL 库已经在努力实现对 WebGPU 的支持,这意味着使用 WebGPU 可能只需要做一个单行代码的修改。 Babylon.js: 已经有完整的 WebGPU 支持 PlayCanvas: 已经宣布初步支持 WebGPU TensorFlow.js: 支持 WebGPU 优化版本 Three.js: WebGPU 支持正在开发中 Devtools 覆盖网络响应标头 在 DevTools 中,开发者现在可以覆盖网络(Network)面板中的响应标头(Response Headers)。 以前,你需要访问网络服务器来试验 HTTP 响应标头。有了响应标头的覆盖,你可以对...
- 下一篇
Apache Ignite 2.15.0 版本发布,快照、CDC大幅改进
Apache Ignite 版本发布说明 Apache Ignite 分布式内存数据库 2.15.0 (!) 警告: 删除了Ignite节点的Daemon模式; 删除了废弃了的ignitevisorcmd工具; 删除了遗留的JMX Beans(ThreadPoolMXBean、CacheGroupMetricsMXBean、CacheMetricsMXBean、PersistenceMetricsMXBean、DataStorageMetricsMXBean、DataRegionMetricsMXBean); 删除了多余的ignite-spring模块的ignite-indexing模块依赖,如果需要在Ignite中执行SQL,并且使用了Maven,需要明确指定使用哪个SQL引擎:ignite-indexing或者ignite-calcite; 将ignite-ssh模块迁移到扩展库; 废弃了SqlFieldsQuery的lazy标志,该标志的默认值改为true; 事务内操作院子缓存默认会被禁止,如果要允许这样的操作,需要将系统属性IGNITE_ALLOW_ATOMIC_OPS_IN_...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- MySQL8.0.19开启GTID主从同步CentOS8
- Mario游戏-低调大师作品
- Linux系统CentOS6、CentOS7手动修改IP地址
- Docker安装Oracle12C,快速搭建Oracle学习环境
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS7安装Docker,走上虚拟化容器引擎之路
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题