자유롭게 질의 및 응답을 할 수 있는 게시판입니다. 개발자 여러분의 답변이 큰 도움이 됩니다.
- 제품설치/등록 오류 문의: 설치/등록 Q&A 이용 (제품 구매 고객 한정)
Firemonkey Firemonkey xe5 update 2 - C++ builder
2014.02.04 08:52
평가판을 테스트 중입니다.
기본 HD 앱을 IOS 에 올려서 돌려 보던 중 황당한 문제가 보입니다.
아래의 코드를 FMXmain 이든 ... 아무곳이나 넣고 돌려본 결과가 믿을 수 없습니다.
#if 1
char *mem, *mem1;
int size = 1280*800*4;
mem = (char*)malloc(size);
mem1 = (char*)malloc(size);
for(;;)
{
memcpy(mem, mem1, size);
//memset(mem1, 0, size);
usleep(1000000 / 60);
}
#endif
IPAD 에서 CPU 사용률이 무려 34 % 대를 계속 유지합니다.
혹시나 싶어서 XCODE/QT5.02 로 테스트를 했는데 둘 모두 0.2%를 넘지않더군요.
이건... 컴파일러 문제인지 알수가 없네요.
이런 상황이면 이미지 작업을 위해서는 도저히 사용할 수 없을것 같은데요.
간단한 테스트니 결과를 알려주시면 고맙겠습니다.
수고하세요.
Firemonkey Firemonkey xe5 update 2 - C++ builder
2014.02.04 08:52
평가판을 테스트 중입니다.
기본 HD 앱을 IOS 에 올려서 돌려 보던 중 황당한 문제가 보입니다.
아래의 코드를 FMXmain 이든 ... 아무곳이나 넣고 돌려본 결과가 믿을 수 없습니다.
#if 1
char *mem, *mem1;
int size = 1280*800*4;
mem = (char*)malloc(size);
mem1 = (char*)malloc(size);
for(;;)
{
memcpy(mem, mem1, size);
//memset(mem1, 0, size);
usleep(1000000 / 60);
}
#endif
IPAD 에서 CPU 사용률이 무려 34 % 대를 계속 유지합니다.
혹시나 싶어서 XCODE/QT5.02 로 테스트를 했는데 둘 모두 0.2%를 넘지않더군요.
이건... 컴파일러 문제인지 알수가 없네요.
이런 상황이면 이미지 작업을 위해서는 도저히 사용할 수 없을것 같은데요.
간단한 테스트니 결과를 알려주시면 고맙겠습니다.
수고하세요.
아...
컴파일러 최적화 문제인것 같네요.
for 문에서 변수 접근을 안하니 실제로 memcpy가 발생을 안합니다.
그래서 xocde/qt 에서는 CPU사용이 전무하고...
firemonkey(Release build)는 왠지 모르지만 최적화가 안되며 실제 memcpy 호출이 되는군요.
memcpy 이후에 해당 변수 값 확인하는 코드를 삽입하니...
모두가 34%대 나옵니다.
그나저나 PC하고 비교하니... 심하게 CPU소모가 많은데 골치 아프네요.