Microsoft MVP성태의 닷넷 이야기
vs2022 preview net7 AOT 콘솔 실행 성능 [링크 복사], [링크+제목 복사],
조회: 12277
글쓴 사람
차가워 (like0430 at nate.com)
홈페이지
첨부 파일
 

안녕하세요.

11월 초에 발표된 preview NET7.0 AOT 콘솔을 사용해 봤는데요.
그들 말로는 NATIVE코드를 생성해서 성능 향상이 크다고 하는데요.
같은 코드를 윈11에서
닷넷프레임워크4.8콘솔과
NET7.0 콘솔 ILCompiler에서 돌려보니 둘의 성능 차이가 없는거 같네요.
제가 뭘 잘못 만진건지 모르겠네요.

선생님께서는 vs2022 preview net7 AOT 해보셨는지 궁금합니다.









[최초 등록일: ]
[최종 수정일: 11/8/2022]


비밀번호

댓글 작성자
 



2022-11-08 02시02분
문서에 따르면,

ReadyToRun Compilation
; https://learn.microsoft.com/en-us/dotnet/core/deploying/ready-to-run

r2r로 인해 실행 파일의 크기가 2~3배 증가할 수 있다고 합니다. 결국 초기 로딩 속도가 디스크 읽기 작업으로 느려지고, working set도 증가하는 부작용으로 인해 이것은 다시 로딩 속도에 영향을 미칩니다.

사실 R2R(Ready-to-Run)을 설정하는 가장 큰 이유가 초기 로딩 속도를 줄여보려는 것이므로, 가능한 자신의 애플리케이션 상황에 맞게 적절한 테스트를 해보시는 것도 좋겠습니다.

-----------------

그리고 r2r은 순수하게 JIT 컴파일을 생략하는 것으로 주로 로딩 속도에만 영향을 미칩니다. 따라서, 일단 JIT 컴파일 된 코드나, r2r된 코드나 그 이후의 성능은 동일합니다.

정성태
2022-11-08 04시37분
[차가워] 기존에 있던 r2r이랑은 다른 이번에 새로 적용된
native aot 라고 jit를 사용하지 않는 네이티브코드라고 하더라구요.
https://www.youtube.com/watch?v=sa3XsvSiMtk
[guest]
2022-11-08 04시46분
[guest]
2022-11-08 11시14분
r2r도 jit하지 않는 것은 마찬가지입니다. 단지 .NET 7에 포함된 native aot가 좀 더 확실히 native 코드를 생성하는 정도일 텐데요, 그렇다 해도 제가 위에서 언급한 조건은 동일하게 적용됩니다.
정성태
2022-11-10 11시19분
제가 해보니까,

.NET 7 - AOT(ahead-of-time) 컴파일
; https://www.sysnet.pe.kr/2/0/13162

PublishAot 옵션을 주고 배포한 경우 빨라졌는데요. 혹시 어떤 식으로 테스트하신 건가요? 테스트하신 예제 프로젝트를 올려주실 수 있나요?
정성태
2022-11-22 08시29분
[차가워] 윗글 링크에 나온 글 보고 따라해봤는데요.

사용환경은
윈11
Microsoft Visual Studio Enterprise 2022 (64-bit) - Preview
버전 17.5.0 Preview 1.0

1. net7으로 콘솔프로젝트 하나 만들어서
2. csproj파일에 다음과 같이 <PublishAot>true</PublishAot> 추가

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <_LastSelectedProfileId>C:\Users\lines...\PublishProfiles\FolderProfile.pubxml</_LastSelectedProfileId>
    <PublishAot>true</PublishAot>
  </PropertyGroup>
</Project>


3.게시버튼을 누르면 다음과 같은 에러가 나오네요.
오류 NETSDK1191    'PublishAot' 속성의 런타임 식별자를 유추할 수 없습니다. RID를 명시적으로 지정하세요.

제가 뭔가를 잘못한거 같은데 뭐가 잘못 된 건지 모르겠습니다.
[guest]
2022-11-22 11시33분
이상하군요, 해당 링크를 따라했으면,

https://www.sysnet.pe.kr/2/0/13162#publish_aot

csproj 파일의 내용이 "<Project Sdk="Microsoft.NET.Sdk">"로 시작했을 텐데요? 확실히 .NET 7 콘솔 프로젝트가 맞나요?

만약 다른 식으로 생성한 것이라면, 런타임 식별자를 알 수 없다는 것이니 억지로 "<RuntimeIdentifier>win-x64</RuntimeIdentifier>"를 넣는 것은 고려해 볼 수 있습니다.
정성태

... 46  47  48  49  50  51  52  53  [54]  55  56  57  58  59  60  ...
NoWriterDateCnt.TitleFile(s)
1336이소정10/27/201416568filestream seek에 대해 질문있습니다. [1]
1337이소정10/28/201416870    답변글 [답변]: filestream seek에 대해 질문있습니다.파일 다운로드1
1339이소정10/28/201419818        답변글 [답변]: [답변]: filestream seek에 대해 질문있습니다. [2]파일 다운로드2
1335황지혜10/24/201420596psexec 관련 질문드립니다. [1]
1334dell10/24/201416625여기가 있는줄 모르고 방명록에 남겼네요 ㅠㅠ 방명록 한번만 봐주시면 안될지요? [1]
1333왕초보10/24/201416967Bitmap 질문 [5]
1332김동진10/16/201423715clickonce 와 smartscreen filter 기능에 대해서 [2]
1331궁굼합니다10/8/201417153loopback adapter 자동 설치가 가능 한가요? [2]
1330이현중10/8/201419807파일 다운로드 방법 문의 [2]파일 다운로드1
1329popo10/2/201417174싱글톤과 싱글톤 소멸자에 대해 궁금점이 있습니다. [1]
1328달쏭9/25/201418222WCF Service측에서 parameter 값이 null이 오는 이유를 알고 싶어요. [2]
1326궁굼합니다9/19/201417413VB의 Shell 기능과 완벽히 똑같은 기능의 함수 [4]
1325지현태9/18/201417140WPF 의존속성과 바인딩에 대한 질문입니다.. [1]파일 다운로드1
1324popo9/17/201416325wcf 질문 드립니다. [1]
1323Anon...9/17/201418708인스턴스와 객체의 차이 [1]
1322김영대9/16/201418660죄송하지만 .NET 관련 질문게시판이지만 혹시 ASP.NET MVC에 대해서 질문 드려도 됩니까 (__);; [2]
1321부탁드립...9/15/201420549윈도우 어플리케이션 개발 방법(?) 에대해(직접적인 코드라기보단 프로젝트 방향??) [14]
1320소켓서버...9/13/201420978서로다른 포트번호로 로컬 Socket 서버를 개설시 Close 문제 입니다. [2]
1319ㅇㅇ9/12/201421741134쪽 예제 오타 [3]
1318블루투쓰9/12/201417289page 184 질문드립니다. [1]
1316서동원8/21/201423372ActiveX 개체가 이 속성 또는 메서드를 지원하지 않습니다. [1]
1313양해진8/20/201415731메시지창에 대해서요 [1]
1312김영대8/18/201417956안녕하십니까 정성태님 죄송하지만 C#.NET의 FileInfo 클래스의 CopyTo 메서드 질문드립니다. [3]
1311김솔8/18/201418753nsis파일 수정중에요! [2]
1310조정용8/17/201420001WCF 프로그램에서 Task를 이용한 백그라운드 작업 시 클라이언트에 대한 병목현상. [4]파일 다운로드1
1309서동원8/12/201418075안녕하세요. embeded dll과 관련하여 질문드립니다. [4]
... 46  47  48  49  50  51  52  53  [54]  55  56  57  58  59  60  ...