MemoizR - .NET용 선언적인 구조화된 동시성 라이브러리

구조화된 동시성(Structured concurrency)을 선언적으로 사용할 수 있으며 다음의 주요한 특징이 있습니다.

  • 동적 Lazy 메모이제이션(Dynamic Lazy Memoization): 계산되지 않은 값을 필요할 시점에 계산
  • 선언적인 구조화된 동시성: 동시성 시나리오를 선언적으로 표현할 수 있으며 가독성이 뛰어나다는 강점
  • 종속성 그래프: 계산이 필요할 때만 계산되도록 하는 데이터 종속성 그래프
  • 자동 동기화
  • 성능 최적화: 쓰기보다 읽기가 많을 경우, 또는 읽기보다 쓰기가 많을 경우에 대한 성능 최적화

메모이제이션은 앞전에 꽤 탐구했던 Stl.Fusion의 중요 특징이며 애플리케이션을 최적화 할 때 사용할 수 있는 기술입니다.

https://d2.naver.com/helloworld/9223303

MemoizR은 선언적으로 계산되어야 할 종속성을 표현할 수 있으며 별도의 구독에 신경 쓸 필요가 없고 종속성을 별도로 표현할 필요가 없는 특징이 있습니다.

var f = new MemoFactory();
var v1 = f.CreateSignal(1);
var m1 = f.CreateMemoizR(async() => await v1.Get());
var m2 = f.CreateMemoizR(async() => await v1.Get() * 2);
var m3 = f.CreateMemoizR(async() => await m1.Get() + await m2.Get());

5개의 좋아요