【发布时间】:2022-01-02 06:03:41
【问题描述】:
我的应用程序涉及对数兆字节的字符串数组进行重复的相等比较。当我添加一个包含每个字符串计数的影子数组时,我(天真地?)惊讶地发现,这种比较变得非常快。如果计数不相等,则字符串不能相等。
我原以为 Swift 编译器可以轻松有效地在内部表示中维护字符串的计数,并在计数不同时短路字符串相等比较。每个字符串的初始创建将提供初始化计数的机会,然后每个操作将知道每个参与者的计数。但似乎并非如此。如果只有一些应用程序会从存储的计数中受益,那么打开它的编译器开关可以帮助他们。
这是一个合理的标准库改进吗?
【问题讨论】:
-
这其实和编译器没什么关系。
-
编译器可以提供字符串字面量的计数。
-
也可以交叉链接相关论坛帖子:forums.swift.org/t/…
标签: swift string count compiler-optimization