전체 글 (124) 썸네일형 리스트형 한밭 국산콩나물2소콩300 2국산 부침,찌개,찌개180 2개 발주 월화 월국부침 찌개 월화2박스기획 큰두부 2박스소부침 84-70소찌개 180네컵 소가순두부 2박스국산순두부 2박스800은 통상 60이나 최근홈마트로인해 90500 48국콩 48300콩 45500콩 60 생손 생칼도 월화엔 도착하게해서 가지고나가고 상황봄월 셈 화 문화홈 부산어묵국산콩나물 보통 36 요즘48300 3박스500 60 수국콩36소콩300 30소콩500 40소부침 36-48소찌개 72-84 20241106 로그인서버 1 보호되어 있는 글입니다. 락프리큐 초기 로깅 - LogAnalyzer 및 디버깅로그 설명 테스트 코드 LOOP : 인큐 및 디큐 횟수THREAD_NUM : 스레드 갯수ThreadProc : LOOP횟수만큼 인큐 -> 디큐 반복LogAnalyzer 프로젝트 코드1. 2번 CAS 실패시의 지역 tail의 meta값을 ENQ 혹은 DEQ하는 코드에서 건드리는 로그의 갯수를 전부 센다.2. 위에서 센 갯수만큼 메모리 로그 구조체를 동적할당한 배열을 만들고 값을 복사한다.3. 2번 CAS 실패시의 지역 metaTail 값을 DEQ에서 더미노드로서 FREE 한 인덱스를 찾는다. 로그 상황 1.LogAnalyzer에서 분석96447 인덱스에 2번 CAS 실패 로그 잇음.pTemp배열의 47번 인덱스의 로그에 FREE로그가 있음.1번 CAS에서 실제주소 2132c2f9310 지역 metaTail 20.. 락프리큐 초기 로깅 - 코드 및 클래스 설명 클래스 설명*meta가 붙은 변수들은 ABA문제를 막기위해 실제 변수에 상위 17비트값을 추가함nodePool_ : 락프리 스택으로 만들어진 오브젝트 풀metaTail_ : tail의 meta주소metaHead_ : head의 meta주소metaCnt_ : 상위 17비트에 들어갈 값을 인터락으로 만들때 사용함num_ : 큐가 보관중인 요소의 갯수 ENQ : 1번 CAS 성공후 2번 CAS 성공시 break;DEQ : 비어있다면 나가고 비어있지 않으면 진입.head의 next가 null이면 continuemetaHead_ == metaHead(지역변수) 이면 head의 next로 CAS성공시 더미노드를 Free한다. 미리 복사해두엇던 값을 반환한다. 왜 ret으로 미리 복사해두엇나?CAS 성공 후 ret에.. 20241025 채팅서버 정리2 보호되어 있는 글입니다. 20241023. 채팅서버 정리할만한거 정리 보호되어 있는 글입니다. 채팅서버 메모리 누수 시즌2 저번에 분명히 누수를 전부 다 잡앗다고 생각햇는데 하루정도 지나서 이번에는 저번처럼 급격하게 메모리가 올라가지는 않지만 45퍼센트에서 하루만에 60퍼센트로 1GB넘게 늘어난걸 확인했다.원인을 찾기 위해서 우선 TLS 풀의 버킷사이즈를 1로 만들엇다.누수가 난 갯수를 정확하게 확인하기 위함이다. 또한 매번 누수가 날때마다 디버깅용 함수를 썻다 지웟다 하기가 싫어서 이번기회에 함수를 매크로로 묶엇다.#ifdef DEBUG_LEAK enum LEAK_EVENT { ALLOC_CS_CHAT_REQ_MESSAGE, SEND_PACKET, SEND_ERROR, SEND_PENDING_DISCONNECTED, SMART_PACKET_DESTRUCTOR, RELEASE_SESSION, SEND_PROC, .. 이전 1 2 3 4 ··· 16 다음