본문 바로가기

최적화2

MP3 총 재생 시간 계산하기 MP3 파일의 총 재생 시간을 구하는 방법은 다음과 같다. 총 재생시간(초) 계산식 1 = ( 파일 크기 - ID3를 제외한 첫 MP3 프레임 시작 offset) * 8 / 비트레이트 파일크기 : 파일 전체 크기 ID3를 제외한 첫 MP3 프레임 시작 offset : 첫 번째 MP3 Sync word 가 시작하는 파일 오프셋 비트레이트 : 음원의 비트레이트 (192kbps 등) 예를 들어 파일 크기가 6013734byte 이고, 비트레이드가 192 kbps일때, 시작 offset이 138 이면 ( 6013734 - 138 ) * ( 8 / 192000 ) = 250.56 이 나온다. 분 단위로 변경 하면 250 / 60 = 4분, 250 % 60 = 10초 즉, 4분 10초 짜리 음원이 된다. 단 C언어.. 2022. 1. 24.
무거운 프로그램에 대한 최적화 #sleep과 #select 리눅스에서 c프로그램을 만들다 보면 실행하고 동작을 보고 테스트를 해보 끝을 내는 경우가 많다. 스펙대로 동작한다 단위 테스트를 해도 문제없었다 하면서 프로그램을 개발, 테스트를 하고 결국 문제가 없다 하면 배포가 되곤 한다. 하지만 “동작”이 잘되는 프로그램을 살펴보면 cpu사용량이 90%를 넘는 경우가 상당수이다. 외부장치의 키보드에서 키 입력을 기다리거나 특정 조건이 되면 처리를 하는 반복문 등에서 cpu를 쉬지 않고 계속 해당 루프를 돌게 해서 발생하는 문제다. 개발자 눈에는 소소의 각 함수가 천천히 돈다고 생각하지만 사실 임베디드 장치의 cpu라 해도 1초에 몇백만 번의 클럭이 발생하고 있고 함수는 몇만 번이 실행되고 있다. 그리고 cpu는 비명을 지르면서 개발자의 소스를 돌린다. 개발 초기라면.. 2021. 11. 28.