! 제품 버전을 정확하게 입력해 주세요.
제품 버전이 정확하게 기재되어 있지 않은 경우,
최신 버전을 기준으로 안내 드리므로
더욱 빠르고 명확한 안내를 위해
제품 버전을 정확하게 입력해 주세요!

.NET 6 응용 프로그램에서 스프레드시트 API 성능 테스트 > 블로그 & Tips

본문 바로가기

.NET API

블로그 & Tips

.NET 6 응용 프로그램에서 스프레드시트 API 성능 테스트

페이지 정보

작성자 GrapeCity 작성일 2022-11-07 15:19 조회 1,126회 댓글 0건

본문

GrapeCity Documents for Excel(GcExcel)은 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 파일을 로드/저장 및 계산 작업에 사용했습니다.

  1. LargeValues.xlsx, 136MB, 상당한 양의 숫자 값 포함

  2. LargeFormulas.xlsx, 21.9MB, 대량의 수식 사용 포함

  3. 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은 복잡한 파일을 빠르게 로드하고 저장하며 수식을 신속하게 계산합니다. 아래 스크린샷에서 성능 비교를 확인합니다.


img

img

img


성능 샘플

샘플을 다운로드하여 GcExcel API를 직접 테스트해 보십시오!




지금 바로 GcExcel .NET Core를 다운로드하여 직접 테스트해보세요!

 
  • 페이스북으로 공유
  • 트위터로  공유
  • 링크 복사
  • 카카오톡으로 보내기

댓글목록

등록된 댓글이 없습니다.

메시어스 홈페이지를 통해 제품에 대해서 더 자세히 알아 보세요!
홈페이지 바로가기

태그1

인기글

더보기
  • 인기 게시물이 없습니다.
메시어스 홈페이지를 통해 제품에 대해서 더 자세히 알아 보세요!
홈페이지 바로가기
이메일 : sales-kor@mescius.com | 전화 : 1670-0583 | 경기도 과천시 과천대로 7길 33, 디테크타워 B동 1107호 메시어스(주) 대표자 : 허경명 | 사업자등록번호 : 123-84-00981 | 통신판매업신고번호 : 2013-경기안양-00331 ⓒ 2024 MESCIUS inc. All rights reserved.