포럼
Core1.7.3 속도 개선관련 게시글에 대하여
2013.03.20 01:08
속도개선에 대해서 미솔님이 뭔가 원인을 찾아낸 것 같은데요..
이것이 Core1.7.3에서 반영되었는지 궁금하네요.
사용자포럼의 http://www.xpressengine.com/userForum/20712872 에서
미솔님이 찾아낸 속도 개선 방법에 대해서
---------
미솔님의 개선방법 댓글 내용.
DB.class.php 에 resetCountCache 라는 함수가 있긴 있어요.
만들어 보려고 하신거 같은데, 그냥 return false 하게 되어 있네요..
---------
KTK님의 반응댓글 내용.
2013.03.15 05:32
이거 속도 엄청나게 빨라지내요... 장난아니네요...
KTK님의 반응댓글 내용.
2013.03.15 20:41
캐쉬를 설정해서 인지... 첨로딩후 미틴듯한 속도...
게시글의 댓글 반응들을 보면 뭔가 개선이 되는것 같은데..당체..정확하게 파악이 안되어서..
댓글 내용 일부를 여기에 퍼왔습니다..Core1.7.3에 반영이 된 내용인지..아시는분 댓글좀 부탁합니다.
댓글 13
-
Canto
2013.03.20 15:40
-
Canto
2013.03.20 15:53
그나저나.. 적용시켜봤는데 확실히 게시판에서의 게시글 탐색속도가 빨라졌네요..
-
KTK
2013.03.20 17:46
이게 innodb의 경우는 어떻게 적용을 해야하는지.. 참애매합니다.. 방법을 알수 있을까요.. ㅠㅠ
-
Canto
2013.03.21 14:35
innodb 에서도 관계 없을텐데요??
innodb 클래스를 보면 mysql 클래스를 extend 하고 있어서 그냥 작업해주시면 될 듯합니다..
제가 확인은 못해보겠네요.;;
제가 가지고 있는 서버에서는 innodb 를 스킵해놓고 있어서 이노디비 사용이 불가능하거든요..
-
또별
2013.03.20 21:58
테스트 와 소스 감사합니다..저도 얼릉 적용해 봐야 겠습니다.
-
고독의요새
2013.03.22 09:31
좋은 정보 감사합니다..근데~
1.7.3의 DB.class.php 741번째줄과 760번째 줄 쯤에 저 소스가 없던데요~
-
Canto
2013.03.22 17:48
DB.class.php 가 아니라 DBMysql.class.php 입니다.
-
고독의요새
2013.03.26 16:35
^^ 감사합니다
-
불타는_방열판
2013.06.11 14:34
이 팁을 적용했을때 files/cache/queries 에 total_count로 시작되는 캐시파일이 생기기 시작하는데,
처음에 두개가 생기더니 아주 늦게 한개씩 늘어나고 있습니다.
이 팁을 적용하신분 total_count 캐시 파일이 얼마나 되는지 알려주시기 바랍니다.
생각보다 빨라지지 않았기에 제대로 적용되었는지 알 수 없어 글을 남깁니다.
-
Canto
2013.06.12 07:39
신규 게시글이 빠르게 업데이트 되는 사이트가 아니라면 천천히 늘어나는게 정상입니다.
-
불타는_방열판
2013.06.12 10:50
답글주셔서 감사합니다.
그러면 늘어나는 기준이 게시판별이 아니고 게시판의 게시물이 늘어날때마다이므로
게시물이 늘어나는 정도에 비례한다는것으로 이해됩니다.
만약 신규 게시물의 등록이 빈번한데도 캐시파일이 늘지 않는것은
제가 위 팁을 잘못 적용한탓으로 제대로 동작하고 있지 않다. 라고 이해해도 되겠습니까?
-
misol
2013.06.16 00:35
게시물이 늘어나도 같은 쿼리로 불러온다면, 같은 파일 내용이 업데이트 됩니다.
그리고 저 팁을 쓰신다면, 하드디스크 용량에 여유가 있어야 합니다. 가끔 캐시파일 재생성도 해주시는게 좋습니다.(파일이 너무 많아진다는 생각이 드실때)
게시판 새 글 수가 정상적으로 증가한다면(약간 시차를 두고 늘어납니다) 문제 없는 상황입니다. -
불타는_방열판
2013.06.17 12:44
제가 잘못 이해한것같아 한번 더 여쭤보겠습니다.
같은 쿼리에서는 같은 파일에서 쿼리가 업데이트 된다고 말씀하셨으니
요청하는 다른 쿼리 수만큼 캐시파일이 늘어난다고 이해해도 되겠습니까?
기존 게시물 수도 많고 신규 게시 및 수정, 삭제, 각종 정렬요청 등이 매우 빈번한곳인데도 불구하고
캐시파일 수가 10~20분에 한개정도 늘어나는 느낌이고 하루 종일 운용해도 10개를 넘지 않은 상황입니다.
일단 파일이 생기긴 생기니 동작은 하는것같긴한데, 제대로 동작하지는않는것같아 계속 여쭤봅니다.
방금 살펴봤는데 딱히 달라진점은 보이지 않는 것 같습니다.
1.7.3 버젼대라면..
741번째줄에
아래에
if($count_cache)
{
if(strlen($count_cache) < 2024)
{
$count_cache = unserialize(str_replace(array('<?php /**','**/ ?>'),array('',''),$count_cache));
if($count_cache[md5($count_query)])
{
// cache count for 30 seconds.
if(time() - $count_cache[md5($count_query)]['mtime'] < 30)
{
$count_output = unserialize($count_cache[md5($count_query)]['data']);
}
else
{
unset($count_cache[md5($count_query)]);
}
}
}
else
{
// remove too much big cache file.
$count_cache = FileHandler::removeFile('./files/cache/queries/total_count_'.md5($queryObject->getFromString($with_values)).'.php');
}
}
넣어주시고 그아래 760번째 줄 쯤... 에 있는
$result_count = $this->_query($count_query, $connection);
$count_output = $this->_fetch($result_count);
이 것을
if(!isset($count_output))
{
$result_count = $this->_query($count_query, $connection);
$count_output = $this->_fetch($result_count);
$count_cache1[md5($count_query)]['data'] = serialize($count_output);
$count_cache1[md5($count_query)]['mtime'] = time();
$count_cache1[md5($count_query)]['count_query'] = $count_query;
FileHandler::writeFile('./files/cache/queries/total_count_'.md5($queryObject->getFromString($with_values)).'.php','<?php /**'.serialize($count_cache1).'**/ ?>');
}
이렇게 바꿔주시면 캐싱파일 생성되네요..
그냥 줄 위치만 바뀌었네요..