已关闭,此问题为opinion-based。目前不接受答复。
**想改善这个问题吗?**更新问题,以便editing this post可以用事实和引用来回答。
昨天关门了。
Improve this question
具体来说,假设一个人在一台64位机器上工作,有一个类A,其sizeof
的输出是 N。
是否有关于 N 的值是什么的协议,当包含类A作为另一个类B的数据成员时,应该使用指针?
已关闭,此问题为opinion-based。目前不接受答复。
**想改善这个问题吗?**更新问题,以便editing this post可以用事实和引用来回答。
昨天关门了。
Improve this question
具体来说,假设一个人在一台64位机器上工作,有一个类A,其sizeof
的输出是 N。
是否有关于 N 的值是什么的协议,当包含类A作为另一个类B的数据成员时,应该使用指针?
1条答案
按热度按时间nwwlzxa71#
这完全是主观的,取决于所需的工作。一个字符串类应该少于4个指针,大约32个字节。一个大型的数据分析类可能有1000个字节,我不会眨眼。
一般来说,主观上,我关注的门槛是:
1.许多常见的cpu高速缓存行是64字节。一个比这个大的类会比一个比这个小的类慢。而且很多类都<=64字节。一般来说,如果一个类<=64字节,我可能甚至不会考虑它的大小,如果它>64字节,我会考虑一会儿。
1.许多常见的cpu页大小是4096字节。一个比这个更大的类在动态内存中挂起一段时间,它可能会把自己的一部分分页到磁盘上,这使得它非常慢,需要那么多空间,这是非常可疑的。通常情况下,我们会使用一个较小的类来管理动态内存中的大型 * 数组 *。