问题标签 [object-pooling]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 从 Unity 的对象池中获取游戏对象时遇到问题
我在将对象池脚本从 UnityScript 转换为 C# 时遇到了麻烦,我在这里得到了很多很好的帮助。现在我在尝试从池中实际获取游戏对象时遇到问题。我有三个脚本都相互交互,所以我不太确定哪里出了问题。这是对象池的两个脚本,我相信它们都是平方的,它们没有给出任何错误:
和:
原始的 UnityScript 使用以下语句从池中检索对象:
这就是我在拍摄脚本中尝试从池中发射子弹预制件的方式:
我的拍摄脚本给了我两个错误:
1. 找不到类型或命名空间名称“poolName”。您是否缺少 using 指令或程序集引用?
对于线路:
2. 'PoolObject.Activate()' 由于其保护级别而无法访问
对于线路:
我是否误译了 UnityScript 或者我遗漏了其他内容?非常感谢任何输入
scala - 使用 Actor 提供程序的一次性对象池
我有一个初始化成本和内存占用很大的对象。初始化时间是人类可察觉的,但创建频率很低。
我的解决方案是创建一个 Provider actor,它会提前创建一个对象,并根据请求立即提供它。然后提供者将继续创建下一个对象。
还有一个消费者:
这是一种常见的模式吗?代码感觉很古怪,有没有明显更干净的方法?
java - 从池中消除突然关闭的套接字,Java
假设有对象池的 Java 实现,并且对象成功连接了 TCP 套接字。
我在池级别(ConnectionFactory)保留一个“清理”线程,每 N 分钟检查一次池是否空闲了 M 分钟(即:最后一次访问是在 M 分钟之前,这里是 M>N)。
如果是这样,则关闭所有额外的套接字,直到池中只剩下核心数量的套接字。
现在我还需要跟踪并消除突然关闭的套接字。这似乎很重要,因为我可能会关闭所有正在工作的那些,并最终得到一个带有突然关闭的套接字的池(在另一端关闭)。
毫无疑问,现在我应该研究 Socket 级别而不是连接工厂级别。
我已经对“在 Java 中跟踪突然关闭的套接字”、“清理连接池”进行了研究,除非我们发送了一些 ACK 或 KeepAliveChecks(每个套接字),否则 Java 套接字 API 中没有任何内容。这意味着我需要定期在每个套接字上执行此操作。
什么是最好的方法(即:有没有其他方法)所以我最终可以将好人(连接良好的套接字)留在我的池中?
如何清理池中突然关闭的套接字?
java - Java - 如何在 DAO 中处理 JDBC 连接
我有一个 DAO,我实现了一个连接池。我使用单例实例化连接池,使其只有一个实例。我调用 getConnection 函数来获取我的 DAO 内部的连接。我对 DAO 中的每个方法都这样做吗?这是处理与 DAO 的连接的好方法吗?有没有更有效的方法来设置我的池并让它与我的 DAO 一起使用?特别是 JDBC。
对象池
连接池
}
c# - 嵌套对象的 ObjectPooling - 最佳技术
我有一个带有许多嵌套层的嵌套对象。每个对象基本上都包含一些其他类型的列表。我需要在短时间内创建大量这些对象(几乎 100 K),然后丢弃它们,然后再次创建新对象。我想了解汇集此类对象的最佳方法是什么。我应该汇集整个对象(不同对象的列表成员计数可能不同,还是应该汇集最后一个对象 E,尽管它非常小)。欢迎任何建议。
java - static final String = "something" -- 静态有意义吗?
我想知道这样的声明在 Java 中是否具有某种真正的意义。我已经在代码中发现了数千次,但是学习和使用字符串我已经了解到,无论你声明一个对象多少次String
:如果你之前的某个类声明了这个字符串,它就会被池化并重用(我是谈论在没有显式构造函数调用的情况下创建的字符串)
事实上,这段代码在true
调用 compare 时会打印出来,因此 2 个变量引用的是同一个对象。说final
不能重新定义一个变量,这个static
词在这种情况下完全没用。我错过了重点吗?
还有几件事:
1 - 为什么显式调用String
构造函数不会导致字符串被池化?上面使用new String("hello")
print的相同代码false
。
2 - 池行为是否保留给字符串?还有一些其他不可变对象(如 BigInteger),但我认为这些对象没有被合并……为什么?
谢谢,卡罗
java - Java 资源池
我有一个以 XML 格式存储数据的应用程序。当用户请求数据时,XML 被解析为实体,然后通过类似 servlet 的东西显示给他。
我的问题是,每次刷新后,servlet 之类的东西都必须再次处理数据,并且解析 XML 的成本很高。还有太多的 XML 无法将所有数据存储在内存中。
我在考虑诸如资源池之类的东西,程序询问池,池中是否存在名称为foo的实体。如果存在,则从池中返回foo,如果没有,则从 XML 创建foo并保存到池中。
像这样的东西:
我已经阅读了有关apache 对象池的信息,但如果我理解正确,我不能用它存储 fe 5 个不同的实体,然后询问池中是否存在具有特定 id 的实体。
有没有可以帮助我解决问题的图书馆?非常感谢!
java - 设计模式:连接对象池
最近,我开始研究有关对象池设计模式的更多信息,但遇到了一些我无法找到答案的问题。
对象池模式的想法是通过重用资源来节省昂贵的资源。例如,与数据库的连接是一种非常昂贵的资源。因此我想将它添加到“池”中。
我一直被教导要尽可能少地保持连接打开。我可能会弄错这一切,但在我看来,创建一个新连接并使其长时间保持活动状态(在池中)只是浪费资源。连接可能不会多次创建,但它始终是打开的。
我很乐意得到解释。
c# - 对象池子弹生成
我为正在使用的枪准备了一个简单的对象池。然而,在一个对象被设置为非活动状态并且可以再次免费使用之后,当它被使用时,它会朝原来的方向射出。我不习惯将池用于此类任务,所以我不确定它究竟为什么会发生。
子弹生成物是一个附在枪上的空游戏对象。此外,通过预制件上的脚本将子弹设置为非活动状态,该脚本在 2 秒后将它们设置为非活动状态。
c# - 将对象返回池
我正在制作无限公路游戏。我正在将对象池用于道路和敌方对象。道路运行良好,但我遇到了敌人的问题,我可以从池中添加敌人,但我不能将敌人的物体返回到池中。
我的敌人池脚本