사실 최적화 생각하면 저런짓하면 안되긴하는데-_-; svg렌더러 중에 c++로 된 쓸만한 라이브러리가 없어서 결국 C#으로 만들어진걸 썼거든,근데 이게 파싱하고 렌더링하는 과정 다합치면 1.3초가 걸려버려서 반응성이 너무 떨어져; 참조한 방식은 그냥 프로젝트 공용속성에서 프레임워크 및 참조 부분에 프로젝트 넣어서 한건데, 혹시 설정이나 기타 다른방법으로 속도를 올릴수 있는 방법이 없을까?
좀 멍청한 방법인데. 지금 떠오른 방법으로는 c# dll을 관장하는 프로세스를 돌려. 그 프로세스랑 메시지를 왔다리갔다리하는게 좋지 않을까 하는 생각이 든다
ㄴ지금 동작이 파싱->렌더링->Cximage생성 플로우로 돌아가서 프로세스로 돌린다 한들 별반 효과보긴 힘들거같어
지금 시간을 잡아드시는게 파싱이 0.4초 렌더링이 0.2초 array<System::Byte>^ 에서 BYTE 배열로 복사하는게 0.5초먹음. 저 복사하는부분은 도저히 뭘 건드려서 줄일수 있을거 같지가 않앙 ㅠㅠ
아 실수 복사가 0.7초먹음 ㅠㅠ
같은 API를 C# 프로젝트 돌리면 속도가 괜찮나?
나도 C# 평소에 안만지다가 dll때문에 투닥거리는거라 그건 잘 모르겄음
그렇다면 일단 c#에서 돌려보고 그 정도 속도 나오면 그렇구나.. 하고 넘어가는게 수일것 같은데?
ㄴ형 일단 복사 병목걸린건 해결 했어, 나도 검색해보다 알았는데 System.IntPtr로 넘어온 포인터 가지고 memcpy쓸수 있더라고, 이렇게 하니까 0.7초 걸리던놈 거의 시간에 영향을 안줌 ㅠㅠ 일단 1.3->0.6까진 성공한듯.
ㅇㅇ//방금전에 테스트 해보니까 C#에서 돌리면 파싱이 0.2초 걸리더라. 0.2초 더붙는거 해결해야하는건가-_-;