Open csh1668 opened 5 months ago
좋습니다! Java와 C/C++이 섞인 코드라 쉽게 나오진 않았을텐데 수고했습니다.
plnkList는 2차원배열을, plnkCoordList가 이 2차원배열의 한 행씩을 나타내는 나타내는 것으로 보입니다. CPDF_Array * 는 이름부터 배열포인터와 관련있어 보이네요.
다른 사람들도, 안드로이드 소스 코드에서 중첩 for문 구조를 찾으면 여기 댓글이나 게시물로 공유해주기 바랍니다.
많이 다른 주제이긴 합니다만, 본 글에 있는 Matrix4f.java의 loadMultiply 메소드는 왜 SIMD 명령어를 사용하지 않고 nested for loop를 사용하는지 궁금했습니다. 성능이 떨어지니까요. Java가 native하게 컴파일되는 언어가 아니다 보니 SIMD 명령어를 지원하지 않나 싶어 조금 구글링해 봤습니다.
Java도 SIMD 명령어를 지원합니다. Intel의 x64 아키텍처의 SIMD 명령어인 SSE와 AVX, 대부분의 안드로이드 스마트폰 기기에서 사용되는 ARM의 aarch64 아키텍처의 SIMD 명령어인 SVE를 지원하고 있습니다. 다만, 저 둘밖에 지원하고 있지 않다는 것이 한계인 것 같습니다. 이와 같은 이유로 안드로이드는 반복문으로 직접 구현하고 있는 것이 아닌가 싶습니다.
수업 시간에 언급하셨던 android 소스코드 속 중첩 for문을 발견했습니다.
] 위치
위치
행렬 연산쪽에 있지 않을까 생각해서서 Matrix 위주로 찾아봤는데 역시나 있었네요.