320x100

전체 글 435

기본 개념

IOCP는 IO operation 마다 버퍼 영역에 대한 page-lock/unlock이 필요하고, 이는 많은 CPU 연산을 필요로 한다. (하나의 IO operation 마다 시스템콜 호출, 유저-커널모드 switching 발생) Zero-recv같은 우회방법으로 page locking을 회피 했었다. 이런 문제점을 해결하기 위해 IO에 사용할 물리메모리를 고정시켜두고 사용하는 방법으로 RIO가 등장하며 매 IO마다 page-lock/unlock이 필요 없어졌다. 단점으로는 메모리를 미리 선점하는 형식이기 때문에 미사용 하는 메모리의 양이 존재한다. IOCP와의 차이점은 IOCP의 경우엔 그저 해당 핸들로 Post, Get 전부 Thread Safe하게 사용할 수 있었지만, RIO의 Request Qu..

서버/RIO 2021.09.23

21. Merge Two Sorted Lists

https://leetcode.com/problems/merge-two-sorted-lists/ Merge Two Sorted Lists - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 2개의 정수 목록이 주어졌을 때, 두 리스트를 오름차순대로 합친 목록을 만들어 반환하는 문제다. 별달리 고려할만한 case는 없었던 것 같다. /** * Definition for singly-linked list. * struct ListNode { * int val; * L..

std::accumulate

주어진 범위의 데이터를 인자로 넘겨진 계산식으로 계산해 반환한다. first 요소 범위의 시작 last 요소 범위의 끝 init 초기 값 op 적용될 한 쌍의 작업 함수 객체 (시그니처: Ret func(const Type1 &a, const Type2 &b); #include #include #include #include #include int main() { std::vector v{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; int sum = std::accumulate(v.begin(), v.end(), 0); int product = std::accumulate(v.begin(), v.end(), 1, std::multiplies()); auto dash_fold = [](std:..

320x100