1

好吧,我想这不是一个正常的如何做这个或那个 stackoverflow 问题,但也许有人可以启发我解决这个问题的更好方法。

我创建了一个接口,它可以根据一个值继承不同的“引擎”,并为所有引擎返回相同的对象。这是一个短期公寓租赁应用程序,它与其他州的其他应用程序有一些集成,显然每个都有一个 API,所以我必须知道如何在我的应用程序中以不同的方式发送和接收每个应用程序才能拥有相同的所有 API 的对象。我所做的就是初始化这样的东西。

$flat = new API(array('engine' => 'some_api')); // the array has some more information inside but it is unimportant for the question

现在我有一个 ID 列表,每个 ID 用于不同的 API。就像是

$list = array(1 => 'api_1', 2 => 'api_2'); // and more ...

现在的问题!

在迭代$list您认为更好的方法,保留 API 对象内的所有可能引擎以及每个 ID 我已经在 API 对象内初始化了“引擎”(可能更好的速度/性能,因为所有内容都已分配)应该foreach ID 创建一个新的 API 对象,仅初始化正确的“引擎”。(速度/性能较低,但内存管理应该更好)。

API 对象在迭代范围之外没有任何意义,因此无需进一步保留它,但如果我只启动一个对象而不是说 2 或 4,那么总的垃圾收集开销可能会更少对于我拥有的 ID 数量。

有什么想法吗?

4

1 回答 1

4

创建/释放对象不会占用太多内存或时间。除非您拥有数千个 API,否则您不必担心它。

如果涉及到任何外部 IO,例如连接到服务器、初始化数据库连接、查询元信息或读取文件,那么尽可能少且仅在需要时这样做会更有效率,但对象的数量本身不会显着影响性能。

建议:以对您来说最易读和可维护的方式构建代码。如果你这样做,它可能足够有效。只有当你真的发现瓶颈时才开始重组。

于 2013-01-02T13:37:23.837 回答