gpt4 book ai didi

python - 什么是面向对象编程的计算开销成本?

转载 作者:行者123 更新时间:2023-11-28 19:52:12 25 4
gpt4 key购买 nike

我有大量数据(一个 250,000 X 1,000 双倍数据立方体,大约 4 gig 文件),我想使用我之前用 Python 编写的一组 OOP 类来操作它。目前数据集已经很大,要读入我的机器内存我必须至少将它分成两半,所以计算开销是一个问题。我的 OOP 类创建新对象(在本例中我将需要 250,000 个新对象,每个对象是一个包含 1,000 个 double 的数组)来处理数据。为通用 OOP 语言创建对象所需的内存和计算开销是多少?在 python ?在 C++ 中呢?

是的,我知道我可以创建一个数组类的新类。但是 1) 我已经完成了这些类,并且 2) 我将我创建的每个对象放回数组中以供以后访问。这个问题是教学性的

*更新:我想高效地利用时间,我的时间和电脑。如果不需要,我不想重写我已经拥有的程序,花时间优化代码会浪费我的时间,如果我浪费计算机时间,我不在乎那个。我实际上有一台带有 4Gig ram 的 64 位机器。数据是一张图像,我需要对每个像素进行多个过滤。*

最佳答案

参见 http://code.activestate.com/recipes/546530/

这是 Python 对象的近似大小。

OO 大小“惩罚”通常被以下能力所抵消:(a) 简化处理和 (b) 首先在内存中保留更少的内容。

没有 OO 性能开销。零。在 C++ 中,类定义被优化得不复存在,剩下的就是 C。在 Python 中——就像所有动态语言一样——动态编程环境添加了一些运行时查找。大多数情况下,这些是直接散列到字典中。它比编译器为您完成所有解析的代码慢。然而,它仍然非常快,开销相对较低。

C 中的错误算法很容易比 Python 中的正确算法慢。

关于python - 什么是面向对象编程的计算开销成本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/372511/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com