From 255fdc321b1c5404c148beb253f35baedd2f9926 Mon Sep 17 00:00:00 2001 From: ovclas Date: Wed, 19 Oct 2011 08:11:36 +0000 Subject: [PATCH] issue 56 point cache improve performance by using memory git-svn-id: http://xe-core.googlecode.com/svn/branches/1.5.0@9680 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- modules/point/point.model.php | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/modules/point/point.model.php b/modules/point/point.model.php index fa7f82820..b6759fbea 100644 --- a/modules/point/point.model.php +++ b/modules/point/point.model.php @@ -6,6 +6,7 @@ **/ class pointModel extends point { + var $pointList = array(); /** * @brief Initialization @@ -18,6 +19,9 @@ **/ function isExistsPoint($member_srl) { $member_srl = abs($member_srl); + + if($this->pointList[$member_srl]) return true; + $args->member_srl = $member_srl; $output = executeQuery('point.getPoint', $args); if($output->data->member_srl == $member_srl) return true; @@ -29,16 +33,25 @@ **/ function getPoint($member_srl, $from_db = false) { $member_srl = abs($member_srl); + + // Get from instance memory + if(!$from_db && $this->pointList[$member_srl]) + return $this->pointList[$member_srl]; + + // Get from file cache $path = sprintf('./files/member_extra_info/point/%s',getNumberingPath($member_srl)); if(!is_dir($path)) FileHandler::makeDir($path); $cache_filename = sprintf('%s%d.cache.txt', $path, $member_srl); - if(!$from_db && file_exists($cache_filename)) return trim(FileHandler::readFile($cache_filename)); + if(!$from_db && file_exists($cache_filename)) + return $this->pointList[$member_srl] = trim(FileHandler::readFile($cache_filename)); + // Get from the DB $args->member_srl = $member_srl; $output = executeQuery('point.getPoint', $args); $point = (int)$output->data->point; + $this->pointList[$member_srl] = $point; FileHandler::writeFile($cache_filename, $point); return $point;