구조화된 동시성(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());