【问题标题】:Whats the better way to consume less memory with classes in php?使用 php 中的类消耗更少内存的更好方法是什么?
【发布时间】:2022-12-12 20:56:42
【问题描述】:

我有一些关于在 PHP 中实例化一个类的问题,更好的是,创建一个具有所有默认属性的类并在其他类中抽象或创建单独的类。 我对母类的恐惧是关于内存的消耗,母类消耗更多的内存,或者我只会消耗我使用的属性的内存?

当我实例化它时,是否存在一种更好的方法来查看某些类中消耗的内存?

【问题讨论】:

  • 面向对象的设计更多地是关于设计而不是任何性能影响。拥有 2-3 个父类对代码效率的影响可以忽略不计或没有影响。
  • 在对象实例化前后使用memory_get_usage();,看看不同场景下的自己。顺便说一句,你的担忧没有理由存在,因为有一个基类和扩展它的类不会自动增加内存开销

标签: php laravel class oop php-8.1


【解决方案1】:

当您创建一个具有默认属性的类,然后在其他类中扩展它时,父类消耗的内存将取决于父类中定义的属性和方法。如果父类有很多属性和方法,它可能比为每个子类创建单独的类消耗更多的内存。

另一方面,如果父类只有几个属性和方法,那么它可能不会比为每个子类创建单独的类消耗更多的内存。

通常,尽量将父类中的属性和方法的数量保持在最低限度以减少内存使用量是个好主意。这有助于避免内存泄漏并提高 PHP 应用程序的性能。

要查看类在实例化时消耗了多少内存,可以使用 PHP 中的 memory_get_peak_usage 函数。此函数返回 PHP 脚本的峰值内存使用量(以字节为单位)。

下面是一个示例,说明如何使用此函数来测量类的内存使用情况:

$startMemory = memory_get_peak_usage();

$myClass = new MyClass();

$endMemory = memory_get_peak_usage();

$memoryUsed = $endMemory - $startMemory;

 echo "Memory used by MyClass: $memoryUsed bytes";

这只是衡量 PHP 中某个类的内存使用情况的一种方法。根据您的特定需求,您可能需要使用不同的方法来测量类的内存使用情况

【讨论】:

    猜你喜欢
    • 2017-12-07
    • 2011-02-13
    • 1970-01-01
    • 1970-01-01
    • 2017-03-17
    • 1970-01-01
    • 2011-10-30
    • 1970-01-01
    • 2014-05-03
    相关资源
    最近更新 更多