2024년 개발 관련 결산

VoiceChat 기능 추가 개인맵이 아닌 공용 월드맵에 대한 복셀 데이터 저장(이전에는 개인맵만 저장하고 공용맵은 서버 리부팅시 초기화) DynamicVoxelObject 기능 추가-여러개의 복셀 오브젝트들을 잡아서 DynamicVoxelObject로 변환.-DynamicVoxelObject의 원본 데이터에 해당하는 brush데이터를 서버의 scene들 사이에서 공유.-scene에 입장, 입장후 DynamicVoxleObject 업데이트에 대한 패킷처리-DynamicVoxelObject에 대한 편집기능구현-.dvo파일 포맷 추가.-클라이언트/서버에서 .dvo파일 로드/세이브 기능 추가.-네트워크를 이용한 .dvo파일 업로드 기능 추가. D3D12 RayTracing 렌더러 … More 2024년 개발 관련 결산

DLL에서 static CRT를 사용하면 각각의 DLL은 다른 heap을 사용하는가? #2

앞서 static CRT마다 각각의 heap을 가지는지 여부는 MSVCRT와 UCRT의 차이로 결정된다고 포스팅 했었다. 결론부터 얘기하자면 앞선 포스팅의 결과는 틀렸다.조금 더 테스트를 해보니 static CRT를 사용하는 DLL을 로드 할 때 heap이 증가되는가의 여부. 즉 CRT가 초기화될 때 마다 개별적인 heap을 가지는지의 여부는 UCRT와 MSVCRT의 차이는 아니다. 이미 MSVCRT 시절에 어느 시점부터 정책이 변경됐다. 아래는 테스트 결과 … More DLL에서 static CRT를 사용하면 각각의 DLL은 다른 heap을 사용하는가? #2

DLL에서 static CRT를 사용하면 각각의 DLL은 다른 heap을 사용하는가?

‘DLL프로젝트에서 static CRT를 사용할 경우 각각의 static CRT는 각각의 heap을 사용한다.따라서 static CRT를 사용하는 DLL을 2개 사용할 경우 프로세스에는exe(1) + dll(1) + dll(1) = 3 해서 최소한 3개의 heap이 존재한다.’ 라고 기억하고 있다. 근데 최근에 발표자료 만들면서 테스트 해보니 DLL을 여러 개 로드해도 heap 개수가 증가되지 않는 것으로 확인되었다. Windows 10이전에는 CRT가 msvcrtxxx.dll에 구현되어 있었고 … More DLL에서 static CRT를 사용하면 각각의 DLL은 다른 heap을 사용하는가?

windbg에서 실행할 때 HeapAlloc()이 다르게 동작하는 이유

디버거에서 exe를 launch한 경우 LFH를 사용하지 않는다는 글을 어디선가 본것 같다.일단 Visual Studio Debugger에 대해서는 해당되지 않는 얘기다.Windows 10/11 모두 exe를 직접 실행하거나 Visual Studio에서 launch한 경우 LFH를 사용하는 것을 확인했다. 이 와중에 조금 이상한 점을 발견했는데 windbg에서 launch하는 경우 동일 사이즈 메모리 할당에 대해서 HeapAlloc()에서 돌려주는 메모리의 실제 사이즈(heap entry의 사이즈)가 다르다는 것이다.debug/release 또는 … More windbg에서 실행할 때 HeapAlloc()이 다르게 동작하는 이유

CPU벤치마크 2024년 – Qualcomm Elite X , Apple M1, i7 13700K, i7 13700H, AMD Ryzen Z1 Extreme …

2019년에 포스팅 했던 Surface Pro X의 리뷰에서 진행했던 벤치마크의 추가 버전이다.Apple m1, Snapdragon SQ3, AMD Ryzen Z1 Extreme, i7 13700K, i7 13620H에 이어 i7 13700H와 Qualcomm Elite X가 추가됐다.테스트 별로 어떤 의미를 가지는지는 이전 포스팅을 참고바람. 우선 4칙연산 테스트 수학함수 테스트 메모리 카피 테스트 [결론]이전 칩보다는 빨라졌고 전력당 성능은 뛰어나지만 깡성능이 x86보다 뛰어난 것은 결코 … More CPU벤치마크 2024년 – Qualcomm Elite X , Apple M1, i7 13700K, i7 13700H, AMD Ryzen Z1 Extreme …