Languages

Languages/Java

JMX로 JVM 모니터링하기 입문

JMX : Java Management Extentions JVM에서 구동중인 어플리케이션 상태, JVM 시스템 상태를 모니터링하는 Java API 프로메테우스, 마이크로매타 등 다른 메트릭 시스템과 연동해서 통일된 인터페이스로 모니터링 할 수 있음. (확장성) JMX 구조 Instrumentation Level : MBeans (쓰레드, 힙 등 어플리케이션 상태 정보를 수집) Agent Level : MBean Server Connector Level : 어댑터들로 프로토콜에 맞춰서 데이터 변경 Manager Level : 엠빈 서버에 데이터를 요청하는 외부 클라이언트 MBeans Standard MBean Dynamic MBean Model MBean Open MBean JMX 모니터링 방법 pid로..

Languages/Java

Java 입문

왜 자바인가? JVM이 고도화된 좋은 기술이다. JVM 덕에 매우 안정적인 언어라서 오랜 시간 많은 툴들이 Java 생태계 안에서 개발되었다. 자바 특징 1. 객체지향 프로그래밍 2. “Write Once, Run Anywhere” 3. 정적 타입 언어 한참 파이썬만 썼어서 정적 타입 언어에 다시 적응해야한다ㅜㅜ 자바의 실행 과정 컴파일 과정 .java -> (java compiler) -> .class (java bytecode) 런타임 과정 (with JIT 컴파일러) .class -> (JVM) -> run! 입문 용어 정리 Java 기본 라이브러리 "Collection" 타입 시스템 유연성을 제공하는 "제네릭스" "JVM JRE JDK" JVM : 자바 가상 머신. JIT 컴파일러 방식. 빠른 코..

Languages/Python

[pip freeze] pip freeze시에 버전 말고 @ 경로가 찍히는 이슈

pip freeze creates some weird path instead of the package version I am working on developing a python package. I use pip freeze > requirements.txt to add the required package into the requirement.txt file. However, I realized that some of the packages, instead... stackoverflow.com 기본 pip freeze 명령어 pip freeze > requirements.txt 이렇게 pip freeze를 했을때 버전이 안찍히고 이상한 경로가 찍히는 경우가 있습니다. direct reference ..

Languages/Python

[set] set에서 삽입시에 벌어지는 key 테이블 리사이징

파이썬 set object의 C 구현 코드 : https://github.com/python/cpython/blob/main/Objects/setobject.c 일단.. cpython 의 set object의 c코드만해도 2500줄이 넘어간다는 사실에 경악했습니다.. 이렇게 복잡한 자료구조를 나는 여태 이렇게 편하게 쓰고 있었구나...ㄷㄷ 아무튼, set에 들어가는 아이템이 너무 많아지면 set_table_resize 를 통해서 key 리스트를 더 많이 할당한 메모리로 싹 옮긴다고 합니다. 이 임계점에서 순간적으로 연산량이 많아지겠네요. 언제 사이즈가 바뀌는지 출력해봤습니다. 또 pop으로 아이템을 제거하면 다시 줄어드는지도 확인해봤습니다. A = set() now_size = A.__sizeof__()..

Languages/Python

[getsizeof] 객체가 차지하는 byte 출력하기?

(제목에 물음표를 달게 된 이유가 있답니다!) 자료구조의 뒷단에서 벌어지는 일들이 궁금할때는 len 말고 객체에 할당된 메모리를 확인해볼 필요가 있습니다. list와 set에서 remove를 수행할 때 전 당연히 "set이 훨씬 빠를거야. list는 제거 후에 바로 배열을 재설정해줘야하고, set은 hash를 쓰니까 재조정이 더 짧지 않겠어?" 라는 생각이었는데, 의외로 별 차이가 없더라구요. 그래서 각 객체에 할당되는 메모리를 트래킹해보기 위해서 찾아보니 sys에 getsizeof 라는 함수가 있었습니다. sys.getsizeof() import sys A = [] print(sys.getsizeof(A)) docs sys — System-specific parameters and functions T..

Languages/Python

[conda] 가상환경 만들기, 삭제하기, list 보기, 주피터 노트북 연결

새로운 환경 만들때마다 맨~날 만드는게 가상환경인데, 명령어 맨~날 까먹습니다..ㅋㅋㅋ 자주 사용하는 명령어들을 정리해봤습니다. 가상환경 종료, 실행하기 가상환경이 여러개 겹쳐져서 켜질 수가 있기 때문에 항상 deactivate 을 잘 해주도록 합시다. 특히 base 잘 끄기! conda deactivate conda activate 가상환경 만들기 conda create -n python= # ex) conda create -n myenv python=3.8 가상환경 리스트 보기 conda env list 가상환경 삭제하기 conda remove -n --all VS CODE에서 주피터노트북 가상환경 사용하기 conda activate pip install jupyter pip install ipyke..

jamong5
'Languages' 카테고리의 글 목록