2012-11-30 3 views
1

일련 화 된 구조의 시퀀스를 포함하는 긴 이진 데이터 시퀀스를 구문 분석하려고합니다. 필자는 정수 목록으로 메모리의 데이터를 가져올 수 있습니다 (기본 목록이라고 부름).함수에 하위 목록을 전달하는 효율적인 방법

기본 목록에 포함 된 여러 필드를 구문 분석하기 위해 일부 기능을 생성했습니다. & 클래스입니다. 내 질문은 무엇 입니까이 함수에 메인 목록의 하위 범위 & 클래스를 전달하는 가장 효율적인 방법입니다.

저는 정말 잘못된 것을 말하면 용서해줍니다.

  • 내가 뭔가를하는 경우 : 나는 새로운 목록이 만들어 질 것이라고 생각합니다. 내가 틀리지 않다면이 방법은 매우 비효율적입니다. 그건 그렇고, 나는 언제든지 메인리스트를 수정하지 않을 것이다.
  • 필자는 반복기 (iterator.next())를 사용할 수 있다고 생각합니다. 그러나 문제는 임의로 요소에 액세스 할 수 없다는 것입니다.

의견 & 제안은 항상 환영합니다.

답변

0

기본 목록을 가져 와서 색인을 시작하고 종료하도록 기능을 설정할 수 있습니다.

+0

네에서 cProfile docs

python -m cProfile myscript.py 

에서,하지만 기능 및 클래스는 전체의 주요 목록을 참조하지 않는 것. 그들은 파싱 할 스트림을보아야합니다. 또한 여분의 작업을 의미합니다 : 오류가 발생하기 쉬운 주 목록의 모든 항목의 절대 위치를 계산합니다. – user1192525

0

효율성을 평가하려면 discProfile 모듈을 활용해야합니다.

dis docs

>>> dis.dis(myfunc) 
    2   0 LOAD_GLOBAL    0 (len) 
       3 LOAD_FAST    0 (alist) 
       6 CALL_FUNCTION   1 
       9 RETURN_VALUE 
+0

정보 주셔서 감사합니다, 지금은 다른 필드를 구문 분석하기위한 함수에 정보를 전달하는 적절한 방법이 필요합니다 :) – user1192525

+0

"적절한"귀하의 질문에 "효율"에 대한 평가되고 있다면, 둘 다 구현하고 영향을 메모 바이트 코드 및 핫 스폿이 프로파일 러에있는 위치. –

관련 문제