我正在构建一个查询MySQL数据库的网页,并且(当前)生成一个纯文本列表的结果.完成单个记录的查询类似于:
出于好奇,我已经使用memory_get_peak_usage()和memory_get_usage():
start 110,440 bytes peak 656,056 bytes end 637,976 bytes time 0.008 seconds
以上是没有找到记录!
有40条记录我达到了大约2MB,虽然时间保持不变.
我知道过早的优化是邪恶的,但我必须要问:
我需要做一些改造吗?这个内存使用是否正常?什么被认为过度?
我试图了解SPL迭代器,我想出了两种方法来处理它.我看到第一个版本不那么复杂,但第二个版本有它的构图感觉(我认为).
我没看到的是哪一个优于另一个?或者我只是让这复杂化?
这是我的想法:
该对象实现了一个迭代器:
class BoxOfChocolates implements Iterator {
private $id
private $name; // e.g. Valentine's Heart Box
private $maker; // e.g. Hersheys
private $items; // array
public function getChocolates() {
$query = ...
foreach($rows as $row) {
$this->_items[] = new Chocolate() ...
}
}
// ... necessary iterator implementation stuff
}
Run Code Online (Sandbox Code Playgroud)
该对象包含一个可迭代的对象:
class BoxOfChocolates {
private $id;
private $name;
private $maker;
private $items; // chocolates object
public function getChocolates() {
$this->items = new Chocolates();
$this->items->getChocolates();
}
}
class Chocolates …Run Code Online (Sandbox Code Playgroud)