## 词法分析器加速与Tar.gz的故事
我开发了一个ARM64汇编词法分析器(由解析器生成),最初性能比官方Dart扫描器快2.17倍。然而,在104,000个Dart文件上的基准测试显示,词法分析器不是瓶颈——I/O是。读取这些文件比词法分析花费的时间长5倍,并且SSD由于过多的系统调用开销(超过300,000次`open`/`read`/`close`调用)仅以其理论速度的1.5%运行。
尝试内存映射和直接系统调用带来的改进微乎其微。解决方案?模仿pub.dev和package文件,使用`tar.gz`归档。这减少了需要处理的文件数量,从104,000个降至1,351个,将1.13GB压缩至169MB。I/O时间下降了42.85倍,最终实现了2.27倍的整体加速,即使*包含*解压缩开销。
这表明,只有通过对较大文件的顺序访问才能实现现代SSD的速度。这个实验解释了为什么像pub.dev这样的包管理器使用归档:更少的系统调用、减少的带宽和更快的提取速度。虽然像`zstd`压缩和并行解压缩这样的进一步优化是可能的,但核心教训是,在处理大量小文件时,系统调用开销很容易掩盖存储速度。
谷歌正在推出一项新的“高摩擦”流程,用于在Android 8.0及更高版本上安装第三方应用,旨在提高用户对潜在风险的认知。 这并非对第三方安装的限制,而是增加了从Google Play商店以外来源安装应用时的额外步骤和警告。
用户仍然可以选择“无验证安装”,但会面临额外的提示,强调来自未经验证的开发者的危险。 谷歌坚持认为这是一个侧重于教育的“责任层”,而不是阻止安装。
目前,这些变化表现为Play商店内增加的警告信息。 关键问题在于谷歌是否会维持这种对用户教育的关注,或者微妙地使第三方安装变得更加困难,从而可能阻碍Android传统上的开放性和高级用户灵活性。 谷歌目前尚未表明需要PC连接或外部工具。
## Vortex:一种新型列式文件格式,集成DuckDB
Vortex是由SpiralDB开发,现由Linux基金会管理的全新开源列式文件格式,旨在解决Parquet等现有格式的局限性。与Parquet的块压缩不同,Vortex采用轻量级压缩和创新编码(如浮点数的ALP和字符串的FSST),从而能够在**压缩数据上直接执行计算函数**——这一功能称为“延迟物化”。 这最大限度地减少了解压缩,并提高性能,尤其是在处理向量、文本、图像和音频等多样化数据类型时,并优化CPU和GPU处理。
SpiralDB团队与DuckDB Labs合作,创建了一个核心DuckDB扩展,以实现无缝的Vortex集成。基准测试表明,在TPC-H基准测试中,Vortex的性能比Parquet v2快**18%**,比Parquet v1快**35%**,并且在多次运行中结果更一致。
Vortex在三个关键领域表现出色:传统的SQL分析、机器学习预处理和AI模型训练。它能够高效地将数据直接传输到GPU,使其成为现代数据工作负载的一个有前景的格式。它支持动态加载库,甚至嵌入WebAssembly以实现自定义计算内核。
美国TikTok已正式过渡到新的、由美国人控股的“TikTok USDS Joint Venture LLC”所有权,解决了对其中国背景的担忧。此前曾有一段不确定时期,为了继续运营,必须将其出售给美国利益相关者。
关键变化主要在幕后进行,侧重于数据安全和算法控制。美国用户数据将安全地存储在Oracle的美国云环境中,并受到严格的网络安全标准保护。重要的是,TikTok的推荐算法将使用美国用户数据进行重新训练,这可能会改变用户看到的内容。
新的所有权还将全面控制内容审核和信任与安全政策。虽然应用程序的可见变化可能很小,但目标是解决国家安全问题,并确保该平台超过2亿美国用户和750万企业的安全体验。内容质量的长期影响还有待观察。