使用虚函数节省内存
来源:互联网 发布:不是网络常用诈骗手段 编辑:程序博客网 时间:2024/05/02 01:19
在一个类层次中,如果最顶层基类需要定义某个属性,最一般的方法就是在顶层的类中定义
一个数据成员来存储该属性的值,然后在顶层基类中定义一个非虚方法访问该属性的值。
但是如果对象的数量非常多时,这种方式会造成一定的内存开销。
有一种特殊的情况:一个对象的某个属性的值完全由其所属的类决定。在这种情况下,可以
在顶层基类定义一个虚方法,然后在某些子类中覆盖该方法。在这些虚方法中都根据所在
的类返回相应的常值。
例如在WebKit的DOM类层次中,有Node,ContainerNode,Element,Document等各种类,Node类有一个属性,
即该Node对象是否是Element。这时可以在Node中定义一个返回false的virtual method,
然后在Element中override该方法,并返回true。
这种方法的缺点是访问速度慢,无法内联。不过如果这个属性的访问次数很少,该方法还是很有价值的。
- 使用虚函数节省内存
- 使用String的intern方法节省内存
- 使用String的intern方法节省内存
- 多使用矢量图节省内存消耗,多使用位图节省cpu消耗。
- 使用字符树(Trie)方法节省内存
- 使用BINFS实现multi-bin来节省系统内存
- Android 使用Timer代替Handler 做循环任务 节省内存
- IOS使用scrollview显示大量图片,实现缓存,节省内存
- 使用pandas优化Spark内存消耗(节省90%)
- python使用pandas处理大数据节省内存技巧
- 用union节省内存
- 节省你的内存
- Redis内存节省策略
- java内存优化(1):使用String.intern()节省java堆内存
- 怎么节省系统内存资源?
- 节省内存的String.intern()
- __slots__为什么能节省内存?
- 使用Pandas处理大型数据—节省90%内存的建议
- 在PL/SQL 开发中调试存储过程和函数的一般性方法
- oracle 打点报告
- 爽歪歪
- jquery 对checkbox的操作
- Ural Tree
- 使用虚函数节省内存
- 2406 Power Strings //暴力或者KMP
- POJ to The Max
- WebView::initWithFrame调用栈
- 哈哈 我的博客开通了
- AES加密解密及证书密钥的获取
- DocumentLoader::finishedLoading调用栈
- 有感!!!
- 哈哈 我的 来老偶