테스트 사이트 - 개발 중인 베타 버전입니다

메인페이지 로딩 지연현상 채택완료

서포터즈 4년 전 조회 4,847

 

메인페이지가 로딩이 너무느려서 네트워크를 확인해보니

 

도메인주소가 22초걸리고 다른것은 제대로 정상작동잘되었습니다.

 

도메인 주소가 22초나 걸릴이유가 무엇이있을까요 ?

 

이미지도 별로없고 잘나오던것이 갑자기 느려졌습니다

 

 

오늘 방문자도 많지않습니다.

 

https://gtmetrix.com/ 에서 검색시 이렇게 나옵니다.

 

 

댓글을 작성하려면 로그인이 필요합니다.

답변 6개

채택된 답변
+20 포인트
s
sinbi Expert
4년 전

다른 컴으로도 접속해 해당 텀 문제인지 서버 문제인지 체크해 보세요.

서버 문제이면 주소 공개 후 도움을 구하셔야 체크가 가능할 듯 합니다.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 5개

서포터즈
4년 전
폰으로도 문제고 다른 컴퓨터로도 문제입니다.
주소는 http://taesungjm.edenstore.co.kr/ 입니다.
s
sinbi
4년 전
루트에 있는 파비콘 제거 (또는 교체)해보세요.
그게 제일 오래 걸리네요.

ps.
아래 사이트에서 이미지 용량도 줄여 올려보시구요.
https://tinypng.com/

서버 사양이 그리 안 좋을 땐, 메인 이미지 노출은 최소화하는게 좋아요.
제 서버도 구려서, 이미지는 로고 빼고 사용 않습니다. ㅋ
서포터즈
4년 전
혹시 파비콘이 문제인지 알아낸방법이 무엇인지 알수있을까요? 알아둬야 다음번에 이런질문안하고 안헤맬수있을거같습니다. 네트워크로 확인해도 파비콘에 관한건 뜨지않습니다.


그리고 index haed sub tail 전부 컨트롤 f로 favicon 을 찾아보는데 favicon은 하나도 찾을수 없었습니다. 로그된 페이지에서도 response로 favicon 검색해도 나오지가않습니다.
s
sinbi
4년 전
크롬 > F12키 > NETWORK 탭에서 요소별 로드 속도 확인 가능합니다.
아마도 파비콘 관련 코드가 상단에 위치하는데,
없는 걸 찾느라,,,,오래 걸리는 듯 합니다.
서포터즈
4년 전
heAD 부분에 INCLUDE 중
LATEST.LIB.PHP를 제거하면 렉이사라집니다.

그래서
include_once(G5_LIB_PATH.'/latest.lib.php');

여기로 들어가서 컨트롤f로 favi를 쳐보았지만 나오지않습니다. 최신글에 파비콘이 있을수가있나요?

댓글을 작성하려면 로그인이 필요합니다.

메인에서 삭제한 함수를 사용하고 계신가요?

해당함수는 모든 게시판의 최신글을 출력하는함수인데

 

현재 메인에서 불필요한 기능인거같네요

로그인 후 평가할 수 있습니다

답변에 대한 댓글 2개

서포터즈
4년 전
현재 뭐가문제인지 추적하고 추적하다보니

function html_purifier($html)
{
$f = file(G5_PLUGIN_PATH.'/htmlpurifier/safeiframe.txt');
$domains = array();
foreach($f as $domain){
// 첫행이 # 이면 주석 처리
if (!preg_match("/^#/", $domain)) {
$domain = trim($domain);
if ($domain)
array_push($domains, $domain);
}
}
// 내 도메인도 추가
array_push($domains, $_SERVER['HTTP_HOST'].'/');
$safeiframe = implode('|', $domains);

include_once(G5_PLUGIN_PATH.'/htmlpurifier/HTMLPurifier.standalone.php');
include_once(G5_PLUGIN_PATH.'/htmlpurifier/extend.video.php');
$config = HTMLPurifier_Config::createDefault();
// data/cache 디렉토리에 CSS, HTML, URI 디렉토리 등을 만든다.
$config->set('Cache.SerializerPath', G5_DATA_PATH.'/cache');
$config->set('HTML.SafeEmbed', false);
$config->set('HTML.SafeObject', false);
$config->set('Output.FlashCompat', false);
$config->set('HTML.SafeIframe', true);
if( (function_exists('check_html_link_nofollow') && check_html_link_nofollow('html_purifier')) ){
$config->set('HTML.Nofollow', true); // rel=nofollow 으로 스팸유입을 줄임
}
$config->set('URI.SafeIframeRegexp','%^(https?:)?//('.$safeiframe.')%');
$config->set('Attr.AllowedFrameTargets', array('_blank'));
//유튜브, 비메오 전체화면 가능하게 하기
$config->set('Filter.Custom', array(new HTMLPurifier_Filter_Iframevideo()));
$purifier = new HTMLPurifier($config);
return $purifier->purify($html);
}


여기서
$purifier = new HTMLPurifier($config);

를 제거하면 문제가 되지않습니다

근데 HTMLPurifier를 검색하면 아무것도 나오지않습니다 이것은 무엇인가요 ?

자체적으로 리로드함수라기에는 P가 대문자로 되어있습니다.
서포터즈
4년 전
저 한줄 삭제하면... 메인페이지 배너랑 전부 꺠지고 제대로안나오네요 ...

댓글을 작성하려면 로그인이 필요합니다.

4년 전

이미지나 js, css 등의 리소스 파일이 아닌 자체 페이지가 오래 걸린다는 것은,

 

최종 HTML 출력 전의 PHP-DB 처리단의 시간이 많이 걸린다는 것을 의미합니다.

 

해당 홈페이지의 게시판이 없는 페이지는 (회사소개 페이지) 로딩속도가 빠른 것으로 보아,

 

DB 쿼리 시간이 오래 걸리는 것으로 추측됩니다.

 

메인페이지에서 <제품소개> 슬라이드, 공지사항 최신글등을 빼고 테스트해보면서 문제지점을 찾아나갈 수 있습니다. 가령 <제품소개> 슬라이드 부분이 문제인 경우 해당 SQL문을 개선하거나 관련 DB 처리를 검토해 볼 수 있습니다.

 

<제품소개> 를 여러 게시판 테이블에서 union all 등의 쿼리로 불러온다면.. 과부하가 생길 수 있습니다.

where 조건에 날짜 조건(가령 최근 5일 이내) 등을 추가하면 개선될 가능성이 있습니다.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 2개

서포터즈
4년 전
DB문제인게확실한거같습니다.

function latest_all3($skin_dir="", $bo_table, $rows=10, $subject_len=40, $contents_len=200, $category="", $orderby="", $gall_order="") {
global $config;
global $g5;

$list = array();
$limitrows = $rows;

$sqlgroup = " select bo_table, bo_subject from $g5[board_table] where bo_table LIKE '".$bo_table."%' ".$gall_order." ";
$rsgroup = sql_query($sqlgroup);

if (!$skin_dir) $skin_dir = 'basic';

if(G5_IS_MOBILE) {
$latest_skin_path = G5_MOBILE_PATH.'/'.G5_SKIN_DIR.'/latest/'.$skin_dir;
$latest_skin_url = G5_MOBILE_URL.'/'.G5_SKIN_DIR.'/latest/'.$skin_dir;
} else {
$latest_skin_path = G5_SKIN_PATH.'/latest/'.$skin_dir;
$latest_skin_url = G5_SKIN_URL.'/latest/'.$skin_dir;
}

for ($j=0, $k=0; $rowgroup=sql_fetch_array($rsgroup); $j++) {
$bo_table = $rowgroup[bo_table];

// 테이블 이름구함
$sql = " select * from {$g5[board_table]} where bo_table = '$bo_table' ";
$board = sql_fetch($sql);

$tmp_write_table = $g5[write_prefix] . $bo_table; // 게시판 테이블 실제이름

// 옵션에 따라 정렬
$sql = "select * from $tmp_write_table where wr_is_comment = 0 ";
/*
$sql .= (!$category) ? "" : " and ca_name = '$category' ";
$sql .= (!$orderby) ? " order by wr_id desc " : " order by $orderby desc, wr_id desc ";
*/
$sql .= " order by ".$orderby;
$sql .= " limit $limitrows";
//echo $sql;
$result = sql_query($sql);

for ($i=0; $row = sql_fetch_array($result); $i++, $k++) {

if(!$orderby) $op_list[$k] = $row[wr_datetime];
else {
$op_list[$k] = is_string($row[$orderby]) ? sprintf("%-256s", $row[$orderby]) : sprintf("%016d", $row[$orderby]);
$op_list[$k] .= $row[wr_datetime];
$op_list[$k] .= $row[wr_name];
$op_list[$k] .= $row[wr_10];
}

$list[$k] = get_list($row, $board, $latest_skin_path, $subject_len, $wr_name, $wr_10);

$list[$k][bo_table] = $board[bo_table];
$list[$k][bo_subject] = $board[bo_subject];
$list[$k][wr_name] = $board[wr_name];
$list[$k][wr_10] = $board[wr_10];

$list[$k][bo_wr_subject] = cut_str($board[bo_subject] . $list[$k][wr_subject], $subject_len, $wr_name, $wr_10);
}
}

if($k>0) array_multisort($op_list, SORT_DESC, shuffle($list));
if($k>$rows) array_splice($list, $rows);

ob_start();
include $latest_skin_path.'/latest.skin.php';
$content = ob_get_contents();
ob_end_clean();
return $content;


}


이부분을 제거하면 렉이안걸립니다.

이부분에서 문제될만한게 있을까요 ?
마르스컴퍼니
4년 전
* 불러오려는 게시판이 10개인 경우, 10개의 게시판을 각각 불러온 뒤, 종합해서 최신글을 추출하는 방식이기 때문에.. 볼러오는 게시판 숫자가 많아질수록 느려질 수 밖에 없는 구조입니다.
=> 뷰 사용을 검토해 볼 수 있습니다.

* $sql .= " order by ".$orderby;
전에
$orderby = "wr_id desc";
를 추가해주는 것이 좋아 보입니다.

* /lib/latest.lib.php latest() 함수를 참고하여,
캐시를 사용하는 방식으로 적용하는 것이 좋을 것 같습니다.
(캐시 갱신 주기를 1시간 적용인 경우, 1시간에 1번만 sql 실행하고, 그 외는 저장된 캐시파일 내용 그대로 출력)

댓글을 작성하려면 로그인이 필요합니다.

파비콘빼고도 문제가 있는거보면 메인호출할때 머가 돌긴도나본데요

저는 메인만 느리고 서브페이지들은 무난하게 들어가지네요

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

서포터즈
4년 전
말씀해주신걸 토대로 확인해보니
include_once(G5_LIB_PATH.'/latest.lib.php'); 이걸 지우면 느려지지 않는데 여기엔 파비콘이 존재하지않습니다.

댓글을 작성하려면 로그인이 필요합니다.

4년 전

파비콘 문제보단... db.optimize 문제같은데요. 페이지 이동할때마다 속도가 오래걸리네요.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

서포터즈
4년 전
그건 어느 php파일을 확인해야할까요 ?

댓글을 작성하려면 로그인이 필요합니다.

파비콘이 페이지로 불려오는데

이미지로 제대로 올라갔는지 확인해보세요

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

서포터즈
4년 전
혹시 파비콘이 문제인지 알아낸방법이 무엇인지 알수있을까요? 알아둬야 다음번에 이런질문안하고 안헤맬수있을거같습니다. 네트워크로 확인해도 파비콘에 관한건 뜨지않습니다.

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인