Skip to content
Snippets Groups Projects
Commit 80aacdb0 authored by Dries Buytaert's avatar Dries Buytaert
Browse files

- Patch #1064212 by catch: page caching performance has regressed by 30-40%.

parent b3094a0b
No related branches found
No related tags found
No related merge requests found
...@@ -325,10 +325,15 @@ function getMultiple(&$cids) { ...@@ -325,10 +325,15 @@ function getMultiple(&$cids) {
try { try {
// Garbage collection necessary when enforcing a minimum cache lifetime. // Garbage collection necessary when enforcing a minimum cache lifetime.
$this->garbageCollection($this->bin); $this->garbageCollection($this->bin);
$query = db_select($this->bin);
$query->fields($this->bin, array('cid', 'data', 'created', 'expire', 'serialized')); // When serving cached pages, the overhead of using db_select() was found
$query->condition($this->bin . '.cid', $cids, 'IN'); // to add around 30% overhead to the request. Since $this->bin is a
$result = $query->execute(); // variable, this means the call to db_query() here uses a concatenated
// string. This is highly discouraged under any other circumstances, and
// is used here only due to the performance overhead we would incur
// otherwise. When serving an uncached page, the overhead of using
// db_select() is a much smaller proportion of the request.
$result = db_query('SELECT cid, data, created, expire, serialized FROM {' . db_escape_table($this->bin) . '} WHERE cid IN (:cids)', array(':cids' => $cids));
$cache = array(); $cache = array();
foreach ($result as $item) { foreach ($result as $item) {
$item = $this->prepareItem($item); $item = $this->prepareItem($item);
......
...@@ -127,6 +127,9 @@ function system_list($type) { ...@@ -127,6 +127,9 @@ function system_list($type) {
// if not fetch only the required information to fire bootstrap hooks // if not fetch only the required information to fire bootstrap hooks
// in case we are going to serve the page from cache. // in case we are going to serve the page from cache.
if ($type == 'bootstrap') { if ($type == 'bootstrap') {
if (isset($lists['bootstrap'])) {
return $lists['bootstrap'];
}
if ($cached = cache_get('bootstrap_modules', 'cache_bootstrap')) { if ($cached = cache_get('bootstrap_modules', 'cache_bootstrap')) {
$bootstrap_list = $cached->data; $bootstrap_list = $cached->data;
} }
......
...@@ -2552,7 +2552,7 @@ function hook_file_load($files) { ...@@ -2552,7 +2552,7 @@ function hook_file_load($files) {
* *
* @see file_validate() * @see file_validate()
*/ */
function hook_file_validate(&$file) { function hook_file_validate($file) {
$errors = array(); $errors = array();
if (empty($file->filename)) { if (empty($file->filename)) {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment