.NET 6 응용 프로그램에서 스프레드시트 API 성능 테스트
페이지 정보
작성자 GrapeCity 작성일 2022-11-07 15:19 조회 1,162회 댓글 0건본문
관련링크
은 Excel에 의존하지 않는 신속한 고성능 스프레드시트 API입니다. 완벽한 .NET 6 지원을 바탕으로 .NET 6, .NET Framework, .NET Core, Mono, Xamarin 및 교차 플랫폼 응용 프로그램에서 스프레드시트를 생성, 로드, 수정 및 변환할 수 있습니다.
실시간 Excel 파일에는 보통 엄청난 양의 시트, 대규모 데이터, 복잡한 수식, 표 등이 포함되어 있습니다. .NET 응용 프로그램을 사용하는 개발자는 이러한 파일을 로드하고, 수식을 계산하고, 파일을 저장하며, 실시간 데이터로 작업해야 합니다. Excel API를 사용하는 경우 계산, 정보 이동, 정보 보안을 더 확실히 제어할 수 있게 됩니다.
GrapeCity는 GcExcel의 성능을 지속적으로 모니터링하면서 새로 릴리스할 때마다 성능을 향상시켜 왔습니다. Windows, Mac, Linux 등 세 가지 운영 체제에서 로드, 저장 및 계산 작업에 소요되는 수행 시간과 메모리 사용량을 기준으로 GcExcel과 몇 가지 경쟁 제품을 비교하여 결과를 기록했습니다.
세부 정보는 아래에서 확인하십시오.
.NET 6에 사용할 수 있는 가장 빠른 스프레드시트 API로 전체 Excel 문서 컨트롤을 수행하십시오.
테스트 시스템 구성
Windows
OS - Microsoft Windows 10 Pro
버전 - 21H2(OS 빌드 19044.1645)
시스템 유형 - x64
프로세서 - Intel(R) Core(TM) i7-10850H CPU @ 2.70GHz 2.71GHz, 6개의 코어, 12개의 논리 프로세서
설치된 물리적 메모리(RAM) - 16.00GB
Mac
OS - macOS Monterey
버전 - 12.4
아키텍처 - x86_64
프로세서 - Apple M1, 8개의 코어
설치된 물리적 메모리(RAM) - 8GB
Linux
OS - Ubuntu
버전 - 20.04 LTS
아키텍처 - x86_64
커널: Linux 5.8.0-53-generic
프로세서 - Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz
설치된 물리적 메모리(RAM) - 4.00GB
테스트 응용 프로그램 유형
.NET 6 응용 프로그램
제품 버전
GcExcel(v5.2.1)
경쟁 제품(현재 최신)
테스트 데이터
다음 세 가지 유형의 Excel 파일을 로드/저장 및 계산 작업에 사용했습니다.
LargeValues.xlsx, 136MB, 상당한 양의 숫자 값 포함
LargeFormulas.xlsx, 21.9MB, 대량의 수식 사용 포함
ComplexFormulas.xlsx, 2.01MB, 매우 복잡한 일부 수식 포함
성능 측정
위의 테스트 데이터에 대한 로드, 저장 및 계산 작업에 소요된 시간과 메모리 사용량을 기록했습니다.
사용한 코드는 다음과 같습니다.
var fileName = Path.GetFileName(inputFile); Console.WriteLine("Benchmark for GcExcel"); Console.WriteLine(); Console.WriteLine("FileName: \"" + fileName + "\""); Console.WriteLine(); //Capture Load time Workbook workbook = new Workbook(); Stopwatch stopwatch = new Stopwatch(); stopwatch.Start(); workbook.Open(inputFile); stopwatch.Stop(); openTime = stopwatch.ElapsedMilliseconds / 1000d; Console.WriteLine("Open time:" + openTime.ToString("0.###") + "s"); //Capture Memory footprint long memorySize = GC.GetTotalMemory(true); memSizeAfterOpen = (memorySize / 1024d / 1024d); Console.WriteLine("Used Memory:" + memSizeAfterOpen.ToString("##.###") + "M"); Console.WriteLine(); stopwatch.Restart(); workbook.Dirty(); workbook.Calculate(); stopwatch.Stop(); calcTime = (stopwatch.ElapsedMilliseconds / 1000d); Console.WriteLine("Calclate time" + calcTime.ToString("0.###") + "s"); memorySize = GC.GetTotalMemory(true); memSizeAfterCalc = (memorySize / 1024d / 1024d); Console.WriteLine("Used Memory:" + memSizeAfterCalc.ToString("##.###") + "M"); Console.WriteLine(); if (!Directory.Exists(OutFilePath)) { Directory.CreateDirectory(OutFilePath); } // Capture Save time stopwatch.Restart(); workbook.Save(Path.Combine(OutFilePath, fileName), new XlsxSaveOptions() { IsCompactMode = true }); stopwatch.Stop(); saveTime = (stopwatch.ElapsedMilliseconds / 1000d); Console.WriteLine("Save time" + saveTime.ToString("0.###") + "s"); // Capture Save Memory memorySize = GC.GetTotalMemory(true); var memSizeAfterSave = (memorySize / 1024d / 1024d); Console.WriteLine("Used Memory: " + memSizeAfterSave.ToString("##.###") + "M"); Console.WriteLine(); // Prevent the GC collect the workbook before we show the memory size. workbook.Worksheets[0].Cells[0, 0].Value = 1;
성능 결과
가벼운 API 아키텍처로 메모리와 시간 절약. GcExcel은 복잡한 파일을 빠르게 로드하고 저장하며 수식을 신속하게 계산합니다. 아래 스크린샷에서 성능 비교를 확인합니다.
성능 샘플
을 다운로드하여 GcExcel API를 직접 테스트해 보십시오!
지금 바로 GcExcel .NET Core를 다운로드하여 직접 테스트해보세요!
댓글목록
등록된 댓글이 없습니다.