WSL2 메모리 사용량 조절

WSL 메모리 사용량 wsl2을 사용하다가 메모리 사용량을 체크 해보면 Vmmem 이라는 놈이 메모리를 엄청 잡아먹고 있는걸 볼 수있다. 마소 공식 document에 따르면 총 메모리의 50퍼센트 혹은 특정 빌드 전 단계에서는 총 메모리의 무려 80퍼센트를 사용한다고 한다. 50% of total memory on Windows or 8GB, whichever is less; on builds before 20175: 80% of your total memory on Windows config 파일 작성 다행히도 .wslconfig라는 파일을 사용해서 WSL 설정을 바꿀 수 있다. 아래는 설정 파일의 예시이다....

February 21, 2021 · 1 min · 120 words · ralpioxxcs

push_back vs. emplace_back

push_back 과 emplace_back 둘 다 실질적으로 수행하는 일은 “컨테이너의 끝에 요소를 추가하는것” 로 동일하다. 하지만 두 함수를 memory allocation 관점에서 보면 emplace_back 이 훨씬 효율적으로 작동한다. push_back 이 호출될 때 객체 관점에서 순서는 다음과 같다. Stack 영역에 생성자를 호출 하면서 임시객체(temporary object)가 할당 된다. 복사 생성자(copy constructor) 혹은 이동 생성자 통해 함수 안에서 또 하나의 temporay object를 생성한다. 생성된 temporary object를 벡터 컨테이너의 끝에 추가한다. 1번의 임시객체가 소멸된다. 이렇게, push_back 함수는 “객체” 자체를 집어넣는 방식으로, R-value의 임시객체가 필요하다....

December 20, 2020 · 3 min · 493 words · ralpioxxcs

Vim 사용하기 #3 - C/C++ 개발환경 세팅

이번에는 neovim에서 coc.nvim를 이용하여 C/C++ 개발환경을 세팅하는 방법에 대해서 알아보겠다. coc.nvim은 Language Server Protocol인 LSP를 지원하는 코드 auto-completion 패키지인데 이전에는 ycm을 사용하다가 너무 무겁기도 하고 개인적으로 환경설정 부분에 불편함 점이 있어 coc.nvim을 사용하게 되었다. coc.nvim 설치 vim-plug 설정부분에 아래를 추가해준뒤, :PlugInstall을 해준다. Plug 'neoclide/coc.nvim', {'tag': '*', 'do': './install.sh'} 참고로, node.js 10.12 버전 이상이 설치되어있어야 한다. node.js가 설치되어있지 않다면 여기를 참고하여 다운로드 및 설치를 진행해주자. cpp language server 설치 이곳을 보면 C/C++ language server에 맞는 configuration example을 제공한다....

December 11, 2020 · 2 min · 366 words · ralpioxxcs

multitail을 이용한 로그 모니터링

보통 로그파일 실시간으로 보고싶을때 tail 명령어를 사용한다. 하지만 여러 로그를 보고싶을때는 tmux등 화면 분할을 해서 봐야하는데 이 방법은 귀찮다. 이럴때 multitail을 사용하면 간단하게 여러 로그를 모니터링할수 있다. 설치 apt install multitail을 입력하여 간단하게 설치한다. 맥 유저라면 brew install multitai을 쓴다. 사용법 1개의 파일 모니터링 multitail [filename] 2개의 파일 모니터링 (가로로 분할) multitail [filename] [filename] 2개의 파일 모니터링 (세로로 분할) multitail -s 2 [filename] [filename] colorscheme 설정 multitail은 자체 config파일을 통해 로그파일 highlighting을 지원한다....

October 9, 2020 · 2 min · 233 words · ralpioxxcs

백준 1026 보물

문제 링크 문제 해결 단순 정렬 문제, 각 배열 원소들의 곱 S가 최솟값이 나와야하므로, 큰 수와 작은 수 끼리 곱해주면 된다. A는 오름차순 정렬, B는 내림차순 정렬을 한 뒤, 반복문을 이용하여 해결 Code a = [] b = [] n = int(input()) a = list(map(int, input().split())) b = list(map(int, input().split())) a = sorted(a, reverse=True) b = sorted(b) sum = 0 for i in range(n): sum += a[i] * b[i] print(sum)

October 4, 2020 · 1 min · 70 words · ralpioxxcs