반응형 Programming/Server2 캐시에 의한 효율성 캐시에 의한 효율성 서버 프로그램을 하면서 가장 고려를 해야 하는 부분은 메모리에 의한 병목현상(bottleneck)입니다. 이러한 병목현상을 줄이기 위해서 최소한의 메모리 복사가 이루어져야 하는 것은 당연하겠지만, 자료구조를 비롯해서 캐시를 잘 활용해야 합니다. 서버로 사용하는 CPU는 캐시 메모리가 큰 것을 일반적으로 사용합니다. 그만큼 캐시에 대한 이해도가 높아야 하겠죠. 캐시는 CPU와 메모리 사이에 위치하면서, 느린 메모리 속도를 보완해주는 역할을 합니다. 최근의 CPU 캐시는 일반적으로 L1, L2, L3 로 나누어집니다. L1 캐시가 CPU와 가장 근접해 있는 것이라고 생각하시면 됩니다. L2는 L1을 보완해주는 역할을 주로 합니다. L3 캐시는 L1, L2와 달리 코어간 공유 캐시로 사용됩.. 2012. 1. 25. 문자열 복사에 따른 성능 비교 2011.06.30. 목 얼마 전에 알고 지내던 사람의 도움 요청이 있어서, 해당 회사의 서버 프로그램을 볼 기회가 있었습니다. 프로그램의 내용을 보고서, 이렇게 프로그램을 하면 안 되지 않을까, 자꾸 서버가 문제를 일으키는 원인이 있었네하는 생각을 가졌습니다. 모든 소스를 살펴보는 것은 시간적인 문제도 있었지만, 서비스하는 다른 회사의 소스를 마음대로 보는 것도 문제가 있겠지요. 그래서 문제가 일어난 소스만 살펴보았는데요, 그 중 하나 눈에 띈 것이 바로 strcpy 함수를 쓴 내용이었습니다. 길드 이름을 매번 사용자 프로필 구조체에 있는 친구 리스트에 strcpy 함수로 복사해서 넣는 것을 보고서, 나라면, 길드 프로필 구조체를 만들고 길드 데이터베이스에서 길드 프로필을 미리 복사를 하고, 플레이어 .. 2011. 9. 19. 이전 1 다음 728x90 반응형