Performance
-
[.NET] Benchmark - Count() vs Any().NET/개념 및 유용한 팁 2023. 1. 3. 23:11
요약특정 조건에 대한 값이 존재하는지 유무를 따질 땐, Count() 보단 Any()를 사용하는 것이 좋다.조건은 Where()로 처리하는게 더 유리하다.테스트코드using BenchmarkDotNet.Attributes;using BenchmarkDotNet.Jobs;using BenchmarkDotNet.Running;BenchmarkRunner.Run();[MemoryDiagnoser][SimpleJob(runtimeMoniker: RuntimeMoniker.Net60)][SimpleJob(runtimeMoniker: RuntimeMoniker.Net70)]public class CountVsAny{ public int[] items; public CountVsAny() { ..
-
[.NET] IEnumable에 대한 성능팁.NET/개념 및 유용한 팁 2021. 6. 5. 16:31
매일 수신받는 medium 에서 IEnumable에 대한 유용한 글을 수신받았다. 번역기가 있어 어느정도 이해할 순 있지만 내용이 좀 길어 짧게 정리할 겸 포스트를 쓴다. 1. Count() != 0 보단 Any()를 써라 종종 배열(IEnumable)에 요소가 있는지 여부를 사용할 때, Count() != 0 조건을 사용하는 경우가 많다. 그러나 Count()는 각 요소의 개수를 구하기 위해 아래와 같은 구현으로 동작한다. public static int Count(this IEnumerable enumerable) { var count = 0; using(var enumerator = enumerable.GetEnumerator()) { while (enumerator.MoveNext()) count..
-
[EntityFramework Core] 간단히 알아본 Insert & Update 퍼포먼스 성능비교.NET/개념 및 유용한 팁 2021. 5. 30. 21:48
EntityFramework Core는 Microsoft에서 관리하는 오픈소스 ORM 라이브러리이다. ORM이 없기 전, 과거(라곤 하지만 현재도 유지되고 있다.)에는 쿼리 문자열을 작성하여 조회한 뒤, DataTable로 결과를 받아 처리하는 방식을 사용했었다. 모든 결과를 DataTable로 받기 때문에, 로직이 조금만 복잡해져도, 해당 DataTable이 가리키는 테이블이 무엇이고 어떤 필드가 어떤 유형(type)인지 제대로 파악하기 어려웠었다. EntityFramework 는 시스템이 사용할 테이블을 클래스(Class) 모델로 생성하고, 모델 객체를 통해 데이터를 조작하기 때문에 소스로직이 복잡해지더라도 클래스유형을 통해 분석이 용이하다는 장점이 있다. 근데 써본사람들은 알겠지만, SQL쿼리보다 ..