嗯,我想这不是一个正常的怎么做这个或那个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对象中初始化了“引擎”(可能更好的速度/性能,因为已经分配了所有内容)或应该预先标识ID创建一个新的API对象,只初始化了正确的“引擎”。 (较低的速度/性能,但在内存管理方面应该更好)。
API对象在迭代范围之外没有任何意义,因此不需要将其保留在线下,但如果我只是启动一个对象而不是说,那么总的来说可能会有更少的垃圾收集开销2或4表示我拥有的ID数量。
有什么想法吗?
答案 0 :(得分:4)
创建/释放对象不需要那么多内存或时间。除非您有数千个API,否则您不必担心它。
如果涉及任何外部IO,例如连接到服务器,初始化数据库连接,查询元信息或读取文件,那么尽可能少地执行此操作并且仅在需要时更有效,但数量更多对象本身不会对性能产生显着影响。
建议:以最易读和可维护的方式构建代码。如果你这样做,它可能足够有效。只有在你真正找到瓶颈时才开始重组。