Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Design patterns flyweight设计模式如何最小化内存_Design Patterns_Flyweight Pattern - Fatal编程技术网

Design patterns flyweight设计模式如何最小化内存

Design patterns flyweight设计模式如何最小化内存,design-patterns,flyweight-pattern,Design Patterns,Flyweight Pattern,Flyweight设计图案如何最大限度地减少内存使用?对我来说,它看起来不是创建对象,而是将对象所持有的数据外部化,这意味着使用的内存是相同的 我遗漏了什么吗?flyweight模式背后的想法是,您有一个指向共享数据的小对象 也就是说,对象的多个实例共享数据 如果每个数据只有一个对象,它确实不会占用更少的内存,而是会占用更多的内存,因为您现在有了数据和指向所述数据的指针。飞锤模式背后的想法是,您有一个指向共享数据的小对象 也就是说,对象的多个实例共享数据 如果每个数据只有一个对象,它实际上不会占

Flyweight设计图案如何最大限度地减少内存使用?对我来说,它看起来不是创建对象,而是将对象所持有的数据外部化,这意味着使用的内存是相同的


我遗漏了什么吗?

flyweight模式背后的想法是,您有一个指向共享数据的小对象

也就是说,对象的多个实例共享数据


如果每个数据只有一个对象,它确实不会占用更少的内存,而是会占用更多的内存,因为您现在有了数据和指向所述数据的指针。

飞锤模式背后的想法是,您有一个指向共享数据的小对象

也就是说,对象的多个实例共享数据


如果每个数据只有一个对象,它实际上不会占用更少的内存,而是会占用更多的内存,因为您现在拥有数据和指向所述数据的指针。

对齐和隐藏状态。大多数OO语言中的对象必须至少对齐8字节边界。32位处理器只能有效地访问4字节边界的数据。除了对象自身的数据外,额外的空间用于存储每个对象的隐藏类指针(4字节)。表示位的两个对象至少占用16个字节。在64位处理器上,通常是16字节对齐


在某些OO语言中,值对象用于处理常见情况,如小整数。Smalltalk实现有31位小整数,并使用额外的位表示情况就是这样。

对齐和隐藏状态。大多数OO语言中的对象必须至少对齐8字节边界。32位处理器只能有效地访问4字节边界的数据。除了对象自身的数据外,额外的空间用于存储每个对象的隐藏类指针(4字节)。表示位的两个对象至少占用16个字节。在64位处理器上,通常是16字节对齐

在某些OO语言中,值对象用于处理常见情况,如小整数。Smalltalk实现有31位小整数,并使用额外的位表示情况就是这样。

引用

此模式的目的是使用共享来支持大量数据 具有部分内部状态的对象的 州的其他部分可能会有所不同

Flyweight是一种软件设计模式。飞锤是指 通过与其他用户共享尽可能多的数据,最大限度地减少内存使用 相似物体;这是一种在发生错误时大量使用对象的方法 简单的重复表示将使用不可接受的数量 记忆

引用

此模式的目的是使用共享来支持大量数据 具有部分内部状态的对象的 州的其他部分可能会有所不同

Flyweight是一种软件设计模式。飞锤是指 通过与其他用户共享尽可能多的数据,最大限度地减少内存使用 相似物体;这是一种在发生错误时大量使用对象的方法 简单的重复表示将使用不可接受的数量 记忆