2013-07-11 1 views
0

코드가 실행되는 위치를 확인할 방법이 있습니까? 내 캐시에서 실행하기 위해 코드를 최적화 할 수있는 많은 유틸리티가 있지만 그 수준까지 파고하는 것이 가능한지 확실하지 않습니다. 가능한 방법에 대한 아이디어가 있습니까? 가능한 경우 다른 언어에서도 허용 될 수있는 Python으로이 작업을하는 것을 좋아합니다.실행중인 코드가 DRAM 또는 SRAM에 있는지 확인하십시오.

+2

당신은 멜이 아닙니다. 아무도 멜이 아닙니다. –

+0

잠깐, 분명히 뭔가 빠졌어. –

+0

깊은 곳에서 파고 들지 않는 이유가 있다면 파이썬은 사용해야 할 언어가 아닙니다. – user2357112

답변

0

일반적 경험 법 현재 실행중인 코드가 캐시에 있습니다. 그렇지 않다면 지금입니다. 잠시 전에 실행 한 코드가 캐시에 저장되어있을 수도 있습니다. 캐시에 무엇이 있는지를 알려주는 방법이 없습니다. 당신이 할 수있는 유일한 언어는 어셈블리입니다. 캐싱을 최적화하려면 locality of reference을 최적화하십시오. 서로 가까운 메모리에있는 것들을 함께 읽고 더 많은 데이터로 이동하기 전에 최대한 많이 사용하십시오. 그러나 이 파이썬에서 걱정하지 않아야합니다.

+0

공정하게 말하자면, 지역성에 대해 항상 염려해야합니다. 매우 중요한 차이가 있기 때문입니다. 당신은 또한 이론적으로 당신의 cpu 복사본을 모의하고, 병렬로 캐시 또는 드럼에있는 것이 있는지 알려주지 만, 컴퓨터 사본을 만들지 않고이를 수행 할 수있는 방법이 있다고 상상해보십시오. –

+1

파이썬은 여러분의 지역 참고 표를 망칠 것입니다. 참조 횟수는 개체에 대한 참조를 만들거나 삭제할 때마다 개체에 쓰기를 요구합니다. JIT가 없으므로 모든 코드가 해석기를 통과합니다. 메소드는 매 호출마다 조회해야하며 일반적으로 여러 개의 dict 조회가 필요합니다. 특정 객체가 int와 같은 경우에도 서로 옆에 할당되도록 지정하는 방법은 없습니다. 최적화를 위해 열심히 노력한다면 * 어떤 코드가 캐시에 있는지를 프로그램 적으로 결정할 수 있습니다 *. 파이썬을 버리는 것이 가장 먼저해야 할 일입니다. – user2357112

관련 문제