함수형 프로그래밍 고증
전부터 프로그래밍은 트레이드 오프가 많았쩌.
fun ByteArray.toShortBigEndian(a: Int, b: Int): Int {
return (this[a].toUByte().toInt().shl(8) or
this[b].toUByte().toInt())
}
fun ByteBuffer.toShortBigEndian(offset: Int): Int {
return (this[offset].toUByte().toInt().shl(8) or
this[offset+1].toUByte().toInt())
}위에 두 함수에서 위에 거는 래핑한 거에 불과하고 밑에 거는 완전한 함수로 일반적으로 아래 거로 하는 거여요.
+1 계산이 껴있다고 둘에 성능 차이는 없는 거여도 이거 조금 누적되면 발열이 날거여요.
그리고 ALU는 일반적으로 비트 계산보다 무거워요. 회로 로직이 더나가는 거여서 하는 수 없겟쩌.
아이 .. 이런데 cpu에서는 실행 계획에 차이로 밑에 거도 빨라지는 여지가 많아요.
사실 cpu 게이트에서 스펙터 멜트다운 문제가 있어서 메모리 인접 블록을 한번에 읽으면 안된다고 해요. 인텔은 인접한 블록을 한번에 읽어서 치면 성능이 빠르다는 거를 정확하게 알았고 .. 아마 손해도 이미 알았을 거여요.
가끔 cpu 설계에 전에 없었던 처리 방식을 치는 거는 안되나 생각해 바바요.
