캐시 친화적인 코드는 생각보다 훨씬 빠르다

2025-05-07

프로그래머는 종종 알고리즘의 복잡성에 집중하면서 현대 하드웨어의 메모리 계층 구조가 성능에 미치는 영향을 간과하는 경우가 많습니다. 이 기사에서는 순차적 접근, 간접 접근, 임의 접근의 세 가지 메모리 접근 방식의 성능 차이를 실험적으로 비교합니다. 결과는 순차적 접근이 가장 빠르고, 임의 접근은 훨씬 느리다는 것을 보여줍니다. 메모리 접근 패턴의 최적화는 성능에 매우 중요하며, 단순한 작업이라도 메모리 레이아웃을 최적화하면 상당한 성능 향상을 얻을 수 있습니다. 이 기사에서는 데이터 구조와 알고리즘을 설계할 때 메모리 접근 패턴을 고려하고, 예를 들어 자주 사용하는 데이터를 메모리에 인접하게 배치하여 CPU 캐시를 활용하고 캐시 미스를 방지할 것을 권장합니다.

더 보기

Haskell의 동시성: 쓰레드 지옥에서 탈출

2025-04-17

이 글은 저자가 C/C++/Rust로 임베디드 시스템 개발을 하다가 Haskell로 전향한 경험을 이야기하며, Haskell의 동시성 프로그래밍 장점을 강조합니다. Haskell은 그린 쓰레드와 이벤트 기반 I/O를 사용하여 기존 쓰레드 모델의 복잡성을 피합니다. `async` 패키지와 STM(소프트웨어 트랜잭션 메모리)을 통해 Haskell은 동시 작업에 대해 더욱 깔끔하고 안전한 접근 방식을 제공합니다. `concurrently`, `race`, `mapConcurrently`와 같은 함수와 `TVar`, `TBQueue`와 같은 데이터 구조는 동시 작업을 간소화하고 데드락이나 경쟁 상태와 같은 일반적인 동시성 문제를 방지합니다.

더 보기
개발