2016-10-17 1 views
-1

나는 erlang 용어 저장소를 사용하는 작은 Elixir 응용 프로그램을 가지고 있는데,이를 찾아보고 저장된 내용을보고 싶습니다. Elixir 나 Erlang으로 그걸 할 수있는 방법이 있습니까?erlang term storage (ETS)를 검색 할 수있는 방법이 있습니까

나는 그것이 얼마나 큰 지, 무엇이 안에 있는지보고 싶습니다.

편집 : :observer.start으로 프로세스를 볼 수 있지만 처리 또는 응용 프로그램이 없습니다 (ets). Elixir.Hex.Registry.ETS이 있지만 상태 또는 기타 프로세스 정보가 옳은 것처럼 보이지 않습니다.

나는 또한 iex에 물건을 인쇄 할 수 있지만 이는 그리 좋은 경험이 아닙니다.

+1

http://erlang.org/doc/man/ets.html#all-0 – mudasobwa

+0

@mudasobwa 멋진 기능이지만 데이터를 탐색하거나 탐색하기에 좋지 않습니다. – CallMeNorm

답변

6

앞서 언급했듯이 Observer을 사용할 수 있습니다. ETS 테이블을 보려면 Table Viewer 탭을 클릭 한 다음 필요한 테이블을 선택하고 마우스 오른쪽 버튼을 클릭하면 Table Info 또는 Show Table Content 볼 수있는 옵션이 나타납니다.

관찰자를 시작하려면 실행

:observer.start 

스크린 샷 :

here's a screenshot

+0

모든 테이블이 포함되어 있지 않은 것 같습니다. 'iex'에서'ets.all'을 실행할 때 더 많은 테이블을 볼 수 있습니다. 나는 명백한 것을 놓치고 있는가? – Dogbert

+0

이것이 observer의 기본 동작입니다. from doc '기본적으로 ETS 테이블이 표시되는 반면 OTP 응용 프로그램에서 생성 된 읽을 수없는 개인 ETS 테이블과 테이블은 표시되지 않습니다. 메뉴보기를 사용하여 "시스템"ETS 테이블, 읽을 수없는 ETS 테이블 또는 Mnesia 테이블을 봅니다. " http://erlang.org/doc/apps/observer/observer_ug.html#id57236 –

+0

그 것이 효과가있었습니다. 감사! – Dogbert

0

Observer 응용 프로그램을 사용할 수 있습니다. ETS 테이블의 내용을 포함하여 여러 가지를 표시 할 수 있습니다. 엘릭서 쉘에서 입력하여 시작

:observer.start 

또는 얼랑 쉘이 들어

observer:start(). 

를 작동, 얼랑은 WX 라이브러리로 구축되어 있어야합니다.

Observer User's Guide에는 몇 가지 문서가 있습니다. 또한 this blog post은 프로덕션 시스템에서 권장되는 원격 Elixir 노드를 관찰하는 데 Observer를 사용하는 방법을 설명합니다.

+0

그래서 시작할 수 있습니다 : observer와 그것이 응용 프로그램과 프로세스를 나열하지만, ​​ETS는 적어도 거기에 나열되어 있지 않습니다. 질문을 명확하게 업데이트하겠습니다. – CallMeNorm

관련 문제