개소리. 크롬에서도 지원된다. IE는 아마 지원 예정 중인 걸로 알고. asm.js는 그 자체를 배우는 것도 의미가 있지만 그 최적화 테크닉을 공부하는 데에도 의미가 있음. 정수형 값 뽑아낼 때 parseInt(a) 안 쓰고 a|0 같이 쓰는 자잘한 자바스크립트 최적화 테크닉들이 집약되어 있음.
ㅅㅅㅅ(175.252)2015-09-30 21:23
호옹이
익명(117.111)2015-09-30 21:26
최적화 할라면 함수를 적게 써야한다. 함수가 은근히 속도 잡아먹는 괴물임. 간단한 수식을 일일이 함수 안쓰는게 좋음. 아니면 가독성 포기하고라도 일일이 다 쓰던가.
ㅇㅇㅇ(121.144)2015-09-30 21:28
C에서 #define으로 쓰는 매크로가 빠르다고들 하지? 그게 #define이 빠른게 아니라, 함수를 안써서 빠른거임. 함수를 써야할 자리에, 함수처럼 만든 일반 수식 매크로를 썼기 때문에 빨라지는거.
ㅇㅇㅇ(121.144)2015-09-30 21:30
방금 테스트해봤는데, 수식과 함수 속도 차이가 안나던데? 오히려 함수가 더 빠른경우도 많고,
익명(117.111)2015-09-30 21:58
ㄴ 발전된 하드웨어 성능과 컴파일러로 인해서 속도차가 무의미할 수준으로 좁혀질 수는 있어도, 함수가 더 빠르게 되는건 불가능하지. 함수는 어셈블리 구조상 기본적으로 "점프"했다가 "리턴"해서 돌아오는 과정을 거치게 되어있어. 수식은 jump없이 계산하는거고. 그런식으로 최소 2단계는 더 거치는데 더 빠를수가 없지. 정말로 더 빨랐다면 그건 수식이 동일하지 않은거야. 수식으로 쓴게 더 느린 수식이고, 함수가 진짜 함수가 아니라 매크로 함수가 더 나은 계산방식으로 header에 선언 되었을 가능성이 있지. 정말 동일한 연산과정을 거치는 거라면 함수가 백퍼 더 느려야한다.
ㅇㅇㅇ(121.144)2015-10-01 00:24
그런데 이렇게 함수가 더 느리네 어쩌네 하는건 사실 근래에는 큰 의미가 없기는 하다. 컴파일형 언어의 경우에는 컴파일러도 좋아지고, 하드웨서 성능 발전 덕분에 의미가 없어지기도 함. 하지만 인터프리터에 가깝거나 할 경우엔 차이가 날 가능성이 더 높아지지. 첫댓글에 언급한 parseInt가 더 느린 이유는 함수이기 때문.
ㅇㅇㅇ(121.144)2015-10-01 00:28
아냐 메소드를 쓰는 경우가 일반적인 연산자로 하는 것보다 빠를 때도 많음. 나같은 경우 자바스크립트로 1000자정도 되는 거를 하나하나 돌면서 비교하면서, 문자열을 분리하고 합치고 하니까 +연산자 쓸때는 메모리 사용량 폭주하고 응답없음까지 뜨는데 concat이라던가 리스트의 push를 써서 나중에 join하니까 훨씬 빠르더라
개소리. 크롬에서도 지원된다. IE는 아마 지원 예정 중인 걸로 알고. asm.js는 그 자체를 배우는 것도 의미가 있지만 그 최적화 테크닉을 공부하는 데에도 의미가 있음. 정수형 값 뽑아낼 때 parseInt(a) 안 쓰고 a|0 같이 쓰는 자잘한 자바스크립트 최적화 테크닉들이 집약되어 있음.
호옹이
최적화 할라면 함수를 적게 써야한다. 함수가 은근히 속도 잡아먹는 괴물임. 간단한 수식을 일일이 함수 안쓰는게 좋음. 아니면 가독성 포기하고라도 일일이 다 쓰던가.
C에서 #define으로 쓰는 매크로가 빠르다고들 하지? 그게 #define이 빠른게 아니라, 함수를 안써서 빠른거임. 함수를 써야할 자리에, 함수처럼 만든 일반 수식 매크로를 썼기 때문에 빨라지는거.
방금 테스트해봤는데, 수식과 함수 속도 차이가 안나던데? 오히려 함수가 더 빠른경우도 많고,
ㄴ 발전된 하드웨어 성능과 컴파일러로 인해서 속도차가 무의미할 수준으로 좁혀질 수는 있어도, 함수가 더 빠르게 되는건 불가능하지. 함수는 어셈블리 구조상 기본적으로 "점프"했다가 "리턴"해서 돌아오는 과정을 거치게 되어있어. 수식은 jump없이 계산하는거고. 그런식으로 최소 2단계는 더 거치는데 더 빠를수가 없지. 정말로 더 빨랐다면 그건 수식이 동일하지 않은거야. 수식으로 쓴게 더 느린 수식이고, 함수가 진짜 함수가 아니라 매크로 함수가 더 나은 계산방식으로 header에 선언 되었을 가능성이 있지. 정말 동일한 연산과정을 거치는 거라면 함수가 백퍼 더 느려야한다.
그런데 이렇게 함수가 더 느리네 어쩌네 하는건 사실 근래에는 큰 의미가 없기는 하다. 컴파일형 언어의 경우에는 컴파일러도 좋아지고, 하드웨서 성능 발전 덕분에 의미가 없어지기도 함. 하지만 인터프리터에 가깝거나 할 경우엔 차이가 날 가능성이 더 높아지지. 첫댓글에 언급한 parseInt가 더 느린 이유는 함수이기 때문.
아냐 메소드를 쓰는 경우가 일반적인 연산자로 하는 것보다 빠를 때도 많음. 나같은 경우 자바스크립트로 1000자정도 되는 거를 하나하나 돌면서 비교하면서, 문자열을 분리하고 합치고 하니까 +연산자 쓸때는 메모리 사용량 폭주하고 응답없음까지 뜨는데 concat이라던가 리스트의 push를 써서 나중에 join하니까 훨씬 빠르더라