void test1()
{
result1 += (int)kukyakya_memcpy( dst + 3, src + 1, test_size );
}
void test2()
{
result2 += (int)kukyakya_memcpy_unaligned( dst + 3, src + 1, test_size );
}
void test3()
{
result3 += (int)memcpy( dst + 3, src + 1, test_size );
}
어제 내가 한 말들 하나 하나 곱씹어봐라. ㅉㅉ
memcpy 알못, 최적화 알못아.
양자맨 의문의 1승
글씨가 넘나작은것
kukyakya unaligned가 이겻네 하하
vc_memcpy 는 1메가 미만에서 좀 더 속도를 받거든.
저렇게 src, dst 둘 다 정렬되지 않은 조건에선 크기에 큰 상관없이 aligned 가 젤 느림 32비트든 64비트든 debug 모드든 release 모드든.
위에 찍은건 다 release 모드임. 최적화 조금이라도 해 본 애면 꼴랑 1MB 복사하는데 1메가 클럭 넘는 코드 짜놓고 정상이라고 생각하진 않는다.
ㄴ코세횽 패배인정하시는거죠?
최적화라는게 뭔지 친절히 설명좀해주실분 ㅠㅠ
ㄴ 넌 약먹고 왔냐? 뭔소리하냐?
kukyakya가 unaligned 가 aligned 보다 빠를 수 없다고 개소리하다 스스로 털린것 뿐.
최적화라는게 뭔지 친절히 설명좀 코세님 ㅠㅠ
몇 번이나 말하지만 첨부터 난 unaligned access 보호를 지원하는 환경에서 unaligned 는 선택의 문제라고 했음. : ) 더 빠른 경우도 왕왕 있다고~
코세님 돌아왔네요! 반갑습니다. ㅎㅎ 자주 놀러오세요!
최적화는 같은 일을 하되, 리소스( 자원 ) 사용량을 줄이는걸 의미한다.
그럼 그걸 어떻게하는건지좀 알려주세요 ㅠㅜ
잘
여기서 자원이란, CPU 계산량( 처리 속도 ), Memory 사용량, 컴파일 시간, 유지보수에 드는 노력 등등이 있을 수 있는데, 성능 최적화 라고 할땐 대부분 실행시간을 이야기 한다. 왜냐하면 CPU 처리 능력은 높일 방법이 많은게 아니거든.
그걸 잘 하는 방법은, 일단 computer architecture 랑 operating system을 공부하고, 언어를 한 두가지는 바닥까지 봐야지.
네
아..
그리고 최적화 하려고 하는 대상 아키텍쳐 ( intel x86 이든, arm 이든 ) 의 구체적인 최소 단위 명령어 ( instruction ) 를 공부하고, 각각의 플랫폼에 맞춰 최선의 선택을 택해야 한다. 물론 어떤 데이타가 주기억장치에서 돌아갈지, 보조기억장치에서 돌아갈지, 보조기억장치라 하더라도, HDD, ODD, SDD 등에 따라 타이밍이 달라지니, 버퍼든 캐시든 경우에 맞게 잘 적용시켜야지.
하지만 다른 아이들이 자주 이야기 하는 것 처럼, 지나친 최적화는 독이다. 정말 자주 사용되는 성능에 민감한 부분만 깊이 최적화 하는게 생산성에 좋다.
그렇군요 감사합니다 ㅠ
와 프로그램 갤러리~