Ticket #451 (closed enhancement: fixed)

Opened 17 months ago

Last modified 16 months ago

DB 디버깅 함수 추가

Reported by: coolengineer Owned by: coolengineer
Priority: major Milestone: 1.5
Component: API Version: 1.5
Keywords: 디버깅, debug Cc: dev@…
Release:

Description

DBQuery 의 mysql_query 를 확장하여 디버그 컴포넌트가 존재할 경우 하단에 쿼리 결과를 보여줍니다.

Change History

  Changed 17 months ago by coolengineer

  • status changed from new to assigned

[3682] 버그 수정

  Changed 17 months ago by graphittie

[3683] 쿼리 결과에 CSS 입힘.

  Changed 17 months ago by inureyes

  • [3691]
    • DB입출력 시간 출력시 자릿수가 혼동될 수 있는 문제 수정
    • 제가 혼동했기 때문이 맞습니다.

  Changed 17 months ago by coolengineer

  • [3692]
  • 크게 의미 없는 값이긴 하지만, 제가 테스트한 것으로는 일곱번의 퀘리에 가장 빠른것과 느린것을 제거한 나머지 다섯개의 값의 분포가 이렇습니다. (단위: 초)
0.0607
0.0632
0.0611
0.062
0.0564
총 156 퀘리

이랬던 상황이...

0.0538
0.056
0.0545
0.0514
0.0526
총 128 퀘리
  • 이렇게 바뀌었습니다. 총 퀘리수는 페이지를 렌더링하기 위한 개수입니다. 플러그인 개수나 On/Off에 따라 다를것이라 생각됩니다만, 캐시한번으로 28개가 줄었어요.

  Changed 17 months ago by coolengineer

  • [3694]
  • queryAllWithCache 함수를 도입하여 SQL 문이 같을 경우 result를 공유할 수 있도록 합니다.
  • 참고로 visibility를 구하는 부분을 위 함수를 사용하도록 고쳐보니 총 128 개의 퀘리가, 110 개로 줄었습니다.
  • 아싸, 오늘 밤에 156개에서 110개로..!
0.0514
0.0523
0.0515
0.0489
0.0543
총 110 퀘리
  • 퀘리라고 써봤는데, 발음이 쿼리에 익숙해져서 원....

  Changed 17 months ago by coolengineer

  • [3695]
  • queryCell 에 대해서 디폴트로 cache 하도록 수정하였습니다. 0.04 대로 진입하는 군요..!!
0.0491
0.0482
0.0556
0.0475
0.0466
총 106 퀘리
  • 만약, query 후 insert/update/delete 가 해당 레코드에 일어난다면 이후 queryCell에 대해 값을 보장하지 못합니다.

follow-up: ↓ 9   Changed 17 months ago by graphittie

  Changed 17 months ago by graphittie

  • [3725] : 오타로 포함된 작은 따옴표 삭제.

in reply to: ↑ 7   Changed 17 months ago by inureyes

Replying to graphittie:

* [3724] by gendoh

음 이 기능이 원래 쿼리 스트링 누르면 출력되던 부분과 어떤 점이 다른지요? ;;;

  Changed 17 months ago by inureyes

  • [3726]
    • rollback to [3723]
    • 중복된 기능입니다~ 메신저에 안 계셔서 일단 롤백 합니다.

  Changed 17 months ago by inureyes

  Changed 17 months ago by graphittie

  Changed 17 months ago by graphittie

follow-ups: ↓ 15 ↓ 17   Changed 17 months ago by graphittie

  • TODO : AJAX 반환 값에 디버그 테이블이 junk로 붙어 동작을 방해하는 문제가 있습니다...

in reply to: ↑ 14 ; follow-up: ↓ 16   Changed 17 months ago by graphittie

Replying to graphittie:

* TODO : AJAX 반환 값에 디버그 테이블이 junk로 붙어 동작을 방해하는 문제가 있습니다...

[457]의 원인 중 하나입니다.

in reply to: ↑ 15   Changed 17 months ago by graphittie

Replying to graphittie:

Replying to graphittie:

* TODO : AJAX 반환 값에 디버그 테이블이 junk로 붙어 동작을 방해하는 문제가 있습니다...

[457]의 원인 중 하나입니다.

#457입니다............;;

in reply to: ↑ 14 ; follow-up: ↓ 18   Changed 17 months ago by graphittie

Replying to graphittie:

* TODO : AJAX 반환 값에 디버그 테이블이 junk로 붙어 동작을 방해하는 문제가 있습니다...

language/messages.php에서도 동일한 문제가 발생합니다.

in reply to: ↑ 17 ; follow-up: ↓ 19   Changed 17 months ago by gendoh

Replying to graphittie:

Replying to graphittie:

* TODO : AJAX 반환 값에 디버그 테이블이 junk로 붙어 동작을 방해하는 문제가 있습니다...

language/messages.php에서도 동일한 문제가 발생합니다.

  • AJAX 리플라이 처리시 Success가 아닌 Error로 갑니다. XML 파싱 에러죠. 내부 로직은 일단 정상동작합니다.
  • 네트웍 캡쳐하면 AJAX콜도 추적이 가능하다는 장점이 있습니다만, XMLRequest에서 OnError로 가게되니 스크립트 디버깅이 안되는 건데,
    • 일단 기능 테스트할때는 해당 디버깅 기능을 끄길 권장할 수도 있고(내부 기능은 동작하니 큰 문제는 없어보이지만)(동시에 볼 상황은 거의 없는것 같습니다.)
    • 파라미터로 DEBUG 같은게 들어와야만 켜지게 할수도 있습니다.(다시 AJAX콜의 경우 디버깅 켜기 힘듬)
    • 아니면 티스토리처럼 다른곳(DB 같은 곳에)에 쏟을 수도 있습니다. DB가 풀나는것은 자기책임
  • Anyone who has idea?

in reply to: ↑ 18   Changed 17 months ago by inureyes

Replying to gendoh:

Replying to graphittie:

Replying to graphittie:

* TODO : AJAX 반환 값에 디버그 테이블이 junk로 붙어 동작을 방해하는 문제가 있습니다...

language/messages.php에서도 동일한 문제가 발생합니다.

* AJAX 리플라이 처리시 Success가 아닌 Error로 갑니다. XML 파싱 에러죠. 내부 로직은 일단 정상동작합니다. * 네트웍 캡쳐하면 AJAX콜도 추적이 가능하다는 장점이 있습니다만, XMLRequest에서 OnError로 가게되니 스크립트 디버깅이 안되는 건데, * 일단 기능 테스트할때는 해당 디버깅 기능을 끄길 권장할 수도 있고(내부 기능은 동작하니 큰 문제는 없어보이지만)(동시에 볼 상황은 거의 없는것 같습니다.) * 파라미터로 DEBUG 같은게 들어와야만 켜지게 할수도 있습니다.(다시 AJAX콜의 경우 디버깅 켜기 힘듬) * 아니면 티스토리처럼 다른곳(DB 같은 곳에)에 쏟을 수도 있습니다. DB가 풀나는것은 자기책임 * Anyone who has idea?

lib/view/pages.php 에서 사용하는 xml request에 대한 response function들이 호출될 때 flag 하나를 켜고, Needlworks.Function.Debug에서 해당 플래그가 참값이면 trace 결과를 내뱉지 않도록 하는게 가장 덜 귀찮은 방법이 아닐까 싶습니다.

  Changed 17 months ago by gendoh

  • AJAX 콜에 대해 트레이싱을 켤때는 어떻게 하죠?
    • AJAX 콜들이 DB Write Lock이라던가 Dirty를 유발해서 트레이싱 할 일이 가끔 있죠.

  Changed 16 months ago by coolengineer

  • Ajax에서 호출이 되지 않게 하는 방법은,
  • 1. register_shutdown_function 를 쓰지 않고 처음에 했던 방식대로 html 렌더링의 마지막 부분에서 호출하게하는 방법으로 하던지,
  • 2. php5에서 header_list 함수를 이용해서 content-type이 html이 아닌지를 확인하여 출력전에 빼는 방법
  • 3. header_content_type 함수를 만들어 header("Content-type....")을 다시써서 php4에서도 content-type을 알아내는 방법

등이 있겠습니다. 어떤게 좋을까요? 개인적으로는 1번입니다. ;)

follow-up: ↓ 26   Changed 16 months ago by gendoh

  • IIS에 PHP4를 설치한 경우만 누가 잡아줘 봐바요. 일단 2번 으로 커밋해 보았습니다. [3773]

  Changed 16 months ago by inureyes

[3788] by coolengineer

  • 변수 이름을 바꿈.
  • 파일 포맷을 DOS 포맷으로 바꿈 (CRLF 개행)
  • DB 질의 시간과 전체 흐른시간의 단위를 ms로 맞춤.
  • 하단에 전체 소요시간을 기술
  • 막대 그래프로 흐른 시간을 표시

  Changed 16 months ago by inureyes

[3789] by coolengineer

  • colspan 확장

  Changed 16 months ago by inureyes

[3790] by coolengineer

  • TCDEBUG을 정의하여 defined('TCDEBUG') 확인으로 DEBUG 상태인지 알 수 있습니다.

in reply to: ↑ 22   Changed 16 months ago by inureyes

  • status changed from assigned to closed
  • resolution set to fixed

Replying to gendoh:

* IIS에 PHP4를 설치한 경우만 누가 잡아줘 봐바요. 일단 2번 으로 커밋해 보았습니다. [3773]

자자 자신있는 분(..이라기보단 저 환경을 가지고 계신 분)은 티켓 다시 열고 잡아보시어요~

  Changed 16 months ago by graphittie

  • [3889] : var_dump()를 preformatting 출력해주는 dump()를 추가했습니다.

  Changed 16 months ago by graphittie

  • [3904] : 테이블에 기본 배경색을 지정.
Note: See TracTickets for help on using tickets.