在 Swift 中显式地将整数写为位是否值得?
Is it worthwhile to explicitly write Integers as bits in Swift?
我最近了解了二进制编号系统的工作原理(如何用位来写整数),并且想知道将其包含在我的软件中是否值得。性能对我来说很重要,而且我知道用位编写整数比不写整数要快。但我只是想知道有多快。我不是在要求某个比例的数字,我只是想知道这是否会有细微的差别,比如计算速度快 0.1 秒,或者它是否会更明显,比如快 1 秒。
考虑到代码的可读性和安全性以及明确编写的以位为单位的整数听起来像是一团糟等待发生,但我只想知道这种权衡对我来说是否值得。
我知道这是一个有点松散的问题,所以让我在这里尝试改进它:
如果我明确地使用位存储整数,我的性能会有明显的变化吗? (我认为 "noticeable change" 快了 0.5 秒以上)
整数已经 "written in bits" 在几乎所有计算机语言的幕后。除了简单地使用语言提供的整数类型之外,您很少需要做更多的事情。
在非常高级的情况下,您可能必须执行一些按位运算,但在您完成更多编程之前我不会担心。
不,无论您以二进制、十进制或十六进制格式编写数字,编译器都会生成完全相同的代码。
当 "performance" 等同于 "paging"、"core memory"、"megahertz" 等时,我还以为你来自 70 年代(像我一样) .但是后来你用 "I recently learned..." 作为开头。以下是应该对您重要的事情:
- 您将哪个 iOS/macOS 版本作为基准?
- 您的应用程序图形密集吗?如果是这样,您 "handed off" 可以向 GPU 做什么?
- 您是否有效地使用线程和异步调用?具体来说,您是否正在访问 "cloud" and/or 您可能正在正确使用的任何数据库?
在如何"write integers to bits"之前,您还应该考虑更多问题,但如果您明白我的意思,您就不必担心这样的事情。 (当然,使用 GPU 而不是 CPU "kinda sorta" 的图形可以满足您的要求。
最后一个问题,也许是最重要的一个问题:您是否真的在实际设备上尝试过一些事情 - 任何与您关心的事情相关并且与您正在开发的应用程序相关的事情? (无论是 iPhone 5 还是 MacBook Air。)我敢打赌,您不会担心整数在位级别的存储方式之间的性能。
我最近了解了二进制编号系统的工作原理(如何用位来写整数),并且想知道将其包含在我的软件中是否值得。性能对我来说很重要,而且我知道用位编写整数比不写整数要快。但我只是想知道有多快。我不是在要求某个比例的数字,我只是想知道这是否会有细微的差别,比如计算速度快 0.1 秒,或者它是否会更明显,比如快 1 秒。
考虑到代码的可读性和安全性以及明确编写的以位为单位的整数听起来像是一团糟等待发生,但我只想知道这种权衡对我来说是否值得。
我知道这是一个有点松散的问题,所以让我在这里尝试改进它:
如果我明确地使用位存储整数,我的性能会有明显的变化吗? (我认为 "noticeable change" 快了 0.5 秒以上)
整数已经 "written in bits" 在几乎所有计算机语言的幕后。除了简单地使用语言提供的整数类型之外,您很少需要做更多的事情。
在非常高级的情况下,您可能必须执行一些按位运算,但在您完成更多编程之前我不会担心。
不,无论您以二进制、十进制或十六进制格式编写数字,编译器都会生成完全相同的代码。
当 "performance" 等同于 "paging"、"core memory"、"megahertz" 等时,我还以为你来自 70 年代(像我一样) .但是后来你用 "I recently learned..." 作为开头。以下是应该对您重要的事情:
- 您将哪个 iOS/macOS 版本作为基准?
- 您的应用程序图形密集吗?如果是这样,您 "handed off" 可以向 GPU 做什么?
- 您是否有效地使用线程和异步调用?具体来说,您是否正在访问 "cloud" and/or 您可能正在正确使用的任何数据库?
在如何"write integers to bits"之前,您还应该考虑更多问题,但如果您明白我的意思,您就不必担心这样的事情。 (当然,使用 GPU 而不是 CPU "kinda sorta" 的图形可以满足您的要求。
最后一个问题,也许是最重要的一个问题:您是否真的在实际设备上尝试过一些事情 - 任何与您关心的事情相关并且与您正在开发的应用程序相关的事情? (无论是 iPhone 5 还是 MacBook Air。)我敢打赌,您不会担心整数在位级别的存储方式之间的性能。