我开发了一个wordpress插件,可以读取大型自定义xml文件,并将信息作为自定义帖子类型和大量帖子元信息导入。所以我调用了很多数据库事务。插件在一个POST\'ed进程内运行几分钟,然后在内存不足(250 MB)的情况下中止。
将问题跟踪到最低限度我有一个显示问题的最低限度的示例。这个例子泄漏了大约18 kbyte的数据,这在插件运行时是一个很大的总结。查询检查是否存在具有给定标题的帖子($title
)
echo "<p>memory: " . memory_get_usage() . "</p>";
global $wpdb;
$poststable = $wpdb->prefix."posts";
$items = $wpdb->get_results("SELECT ID FROM $poststable WHERE post_title=\'$title\'");
unset($items);
$wpdb->flush();
echo "<p>memory: " . memory_get_usage() . "</p>";
输出为内存:80777008内存:80795376,因此差值约为18 KB。这些字节在哪里?虽然这是一个很小的内存量,但它的总容量为数百兆字节。
谢谢克里斯