메모리 사용량 추적
로그메시지에 아래 내용 사용하면 그 시점의 Uipath로봇이 점유 중인 메모리 용량이 나온다고 합니다.
System.Diagnostics.Process.GetCurrentProcess.PrivateMemorySize64
그냥 찍으면 바이트로 나오니 적절하게 나눠서 MB또는 GB 단위로 군데군데 로그 남겨보면 참고가 될 수 있습니다.
가비지콜렉션 수동 실행으로 메모리 확보
invoke code나 invoke method로 아래 내용 실행하면 즉시 가비지콜렉션이 실행되어 수동으로 메모리 정리가 가능합니다.
GC.Collect
GC.WaitForPendingFinalizers
GC.Collect
DT.select보단 Linq Where문 사용
제가 봤던 사례에서는 For each안에서 dt.select가 열 몇 번 반복하는 형태였습니다.
그 때 해당 부분을 linq로 변경하고 그 밖의 로직도 좀 더 간결화 하고 나서 개선됐었던 것으로 기억합니다. dt.select가 메모리 사용량을 좀 더 늘리는거 같은데… 의미있는 수준인지는 모르겠습니다.