전체 글 37

멀티스레드 환경에서의 메모리풀 성능 측정

멀티스레드 환경에서 할당한 메모리를 다른스레드에서 해제하게 되는 경우가 많다.특히나 서버환경에서 shared_ptr을 사용하고 나서부터는 작업단위를 task로 다른 스레드에서 넘겨서 작업하는 경우가 많은데 람다캡쳐로 할당한 메모리블록과 shared_ptr 자체의 controlblock 등 여러 메모리 블럭을 메모리 풀에서 할당 / 해제 하려면 메모리풀에 Lock이 들어가야 하고 이 Lock 의 과정이 new, delete를 그냥 사용하는 것(or shared_ptr을 사용하는것)과 성능 차이가 어떨까 궁금해졌다. new / delete 역시 os에서 내부적으로 lock을 사용하는것(or atomic)을 사용하겠지만 이것 무시하고 내 예상은 Lock의 비용이 더 커서 멀티스레드환경에에서는 그냥 new / ..

Programing 2025.10.08

Unreal 5.6 Swarm 초기화실패

언리얼 5.6 라이트 빌드시에 Swarm 초기화 실패가 난다. 이유는 5.6 풀 소스 버젼에는 있지만 배포버젼에는 Swarm 실행파일이 없어서다. 곧 패치되겠지만 당장 급한 해결책을 필요할때는 아래와 같이 사용한다. 기존 5.5.4버젼의 엔진의(없으면 다운) Engine/Binaries/DotNET 폴더를 카피하여 현재 5.6버젼의 엔진의 Engine/Binaries/DotNET에 키피하는데 중복된것 어떻게 하냐고 물으면 스킵한다. Swarm 실행파일의 경우 엔진이 업데이트되도 기능 자체가 3년전에서 바뀌지 않음을 Git저장소 변경일시에서 확인가능하다. 그래서 특별히 5.4.4에서 카피해서 가져와도 문제되지 않는다.

문제해결 2025.07.26

Elasticsearch + Fluent Bit + Kibana

이전글에 Fluent Bit + ES + Grafana 관련내용으로 글을 썻는데 Grafana는 사용성이 시계열 데이터를 그래픽적으로 보여주는데 주요 기능이 있었다. Grafana로는 GPT가 제시한 방법으로는 로그의 세부적인 Search가 불가능하여 결론적으로 게임서버에서 쓸만하지 못하여Elasticsearch + Fluent Bit + Kibana 조합으로 변경했다. 1. Fluent Bit 설정[SERVICE] # Flush # ===== # set an interval of seconds before to flush records to a destination flush 1 # Daemon # ====== # instruct Fluent Bit t..

Development 2025.04.28

Fluent Bit + ES + Grafana

로그 관리를 위해서 ELK 를 쓰려다 서비스수준에 비해 과한것 같아 Graylog 를 와 비교하던중ChatGPT에 물어보니 내 시스템에는 Fluent Bit + ES + Grafana라는것을 추천해줬다. 1. Fluent Bit 설치 - https://docs.fluentbit.io/manual/installation/windows#installing-from-exe-installer Windows | Fluent Bit: Official ManualOpen the Start menu on Windows and type command Prompt for VS. From the result list, select the one that corresponds to your target system ( x86..

Development 2025.04.11

Java 17 end of life in Jenkins

윈도우즈 젠킨스에서You are running Jenkins on Java 17, support for which will end on or after 2026. 3. 31.. Refer to the documentation for more details.이렇게 노란색의 경고가 떳다. 1. Java 21 다운로드https://www.oracle.com/kr/java/technologies/downloads/#jdk21-windows Download the Latest Java LTS FreeSubscribe to Java SE and get the most comprehensive Java support available, with 24/7 global access to the experts.www.or..

문제해결 2025.04.08

언리얼 프로젝트 "디버깅을 시작할 수 없습니다."

Visual Studio 디버깅실행을 했을때 위와 같이 "디버깅을 시작할 수 없습니다. 프로젝트 속성을 열고 '구성 속성--> 디버깅'으로 이동하여 디버거 설정을 확인하십시오. 라고 팝업이 떴다. 이럴때는 꼭 UE5가 시작프로젝트로 설정되어있는 경우가 많으니 솔루션 탐색기에서 현재의 프로젝트가 시작 프로젝트가 되어있는지 확인하자.

문제해결 2025.02.26

Windows OpenSSH 서버 Git저장소 Clone하기

1. 사전 점검- 윈도우에 SSH-Server 기능을 설치한다. - ssh 로 해당서버에 접속까지는 되어야 한다. 2. Git을 서버가 되는 윈도우에 설치한다. - 깃 리모트 저장소를 -bare옵션으로 생성한다.=> 다른 블로그 참고 - Clone해본다. - 예) G:\Repo\SampleProj\.git 위치의 저장소를 Clone 하려 아래 명령을 실행하면 git clone ssh://유저명@127.0.0.1:22/G/Repo/SampleProjfatal: Could not read from remote repository.Please make sure you have the correct access rightsand the repository exists.에러가 뜬다. 해결책은 아래와 같다. 3. ..

Development 2024.05.05

ASanitizer 게임 서버 성능 테스트

디버그 GameServer - 200클라이언트 5초에 한번씩 월드이동 테스트( 룸 7개정도, 룸당 Npc30마리 정도) 적용전 적용 후 적용 전과 비교해서 메모리 600M증가 CPU사용 6% 증가 - 추가로 어떤이유인지 알 수 없으나 Address Sanitizer 적용후 메모리가 계속 증가되는 Leak발생 - 적용 후 Visual Studio 진단 도구의 메모리 스냅샷이 고장 발생함. 스탭샷 비교에 실제로 메모라가 증가했는데 변경이 없는것으로 나오고 스택등이 나오지 않음. 결론 - 사용하지 않기로...함..

Programing 2024.04.23

[Jenkins] 젠킨스 설치 방법 (Windows)

젠킨스 설치전에 Java Development Kit 11 Or 17이 설치되어있는지 확인하고 설치 안되어있으면 설치 https://www.oracle.com/java/technologies/downloads/#java17 젠킨스 다운로드 Jenkins Home : https://www.jenkins.io/ 젠킨스 설치파일 실행 설치 완료 후 비밀번호 입력 아래 주소를 입력합니다. (포트를 수정했다면 포트 수정된 주소입력) http://localhost:8080/ 파일탐색기 위치에서 초기 진입 비밀번호를 입력칸에 넣어줍니다. 플러그인 설치 Install suggested plugins 를 선택 하여 기본적인 플러그인들의 설치를 진행합니다. 관리자 계정 설정 설치 완료 후 관리자 계정정보를 입력합니다. 설..

Development 2024.03.28