프로그래밍 QnA

krondor의 이미지

Java에서의 TreeMap/HashMap

프로그램 실행속도 개선때문에 고민하다가 질문을 드립니다.

현재는 프로그램 시작 시, 모든 데이터를 배열이나 Vector에 몽땅 집어넣은 후,
프로그램 실행도중 필요한 자료는 for문으로 배열/Vector 전체를 검색하여 찾아내는 식입니다.

그런데 데이터가 워낙 많아지니까 배열/Vector전체를 for문으로 돌리는 시간이 너무 커지네요.

때문에 데이터 전체를 for문으로 뒤질 필요없이,
검색 키 값만으로 바로 접근할 수 있도록 바꾸려고 합니다.
이런 목적으로 TreeMap을 사용하는 것이 맞는지요?

인터넷에 올라온 글들을 보면 TreeMap은 HashMap에 비해 정렬을 지원한다는 말들만 있을 뿐,
이게 key값 검색시 Tree 검색이 이루어진다는 의미인지를 알 수 없어서 질문 드립니다.
즉 HashMap은 key값 검색시 모든 key값을 순차적으로 다 찾아나가고
TreeMap은 key값을 Tree검색을 한다는 의미인건지...

tttsasa의 이미지

자동실행 프로그램

부팅시 자동실행되는 프로그램을 만드는중입니다.
부팅시 자동실행시키는 예제 코드라도 구할수있을까요 ?

tttsasa의 이미지

qt 에서 mainwindow 생성자 질문입니다

처음 실행시에 hide로 보이지않고 트레이아이콘으로 만들어지는 프로그램을 만들고있습니다.
그런데 mainwindow 생성자에서 hide()를 하면 먹히지 않더군요
슬롯에서 hide를 할시에는 잘 작동하는데
방법이 없을까 궁금합니다.

jwpark0921의 이미지

슬랩 할당자에서 cache_grow에 대한 질문

안녕하세요. 리눅스 커널에 대한 공부를 하고있는 학생입니다.
요즘 메모리 관리에서 슬랩 할당자에 대한 공부를 하고 있습니다.
페이지, 캐시, 슬랩, 객체... 이런 것들의 엮이고 엮이는 것을 이해하려니 머리에 쥐가나네요...
제가 드리고 싶은 질문은 슬랩할당자에서 캐시라는 것이 물리 메모리의 특정 부분에서 연속적인 공간을 캐시로 미리 할당한 다음 객체가 필요할때마다 이 캐시를 사용해서 객체를 할당한다고 알고 있습니다.
그런데 만약에 객체의 개수가 갑자기 많아져서 캐시를 성장시킬 필요성이 있는데 성장시킬 부분이 이미 다른 용도로 할당되어 있으면 어떻게 되는 건가요???
제가 생각해본 바로는 불연속적인 특정 위치에 할당하고 슬랩 리스트 연결을 해주는 것이라는 생각뿐이거든요... 소스 코드 열심히 찾아봐도 해당 코드가 어디있는지 감을 잡지도 못하겠습니다.
많은 분들의 도움 부탁드립니다. ^^

kkc8105의 이미지

안드로이드 커널 모듈이 안올라갑니다...

제가 cifs라는 모듈이 필요해서 해당 제조사의 소스를 다운받아 커널 모듈을 컴파일했습니다.

해당 모듈을 adb를 이용해서 폰에 넣고 insmod 를 실행하니 에러가 나더군요.

dmesg를 보니 no symbol version for module_layout 라고 찍혀있습니다.

제조사에서 올린 커널과 제 폰의 커널 버전이 다른걸까요?

며칠째 알아보고 있는데 답이 안나오네요 ㅠㅠ

tmd880814의 이미지

git 사용하시는 분들 계시나요~

git 사용중인데 gerrit 에서 review가 되는 정도를 파악하고 싶어서
그러면 commit 한갯수를 세면 될거같아서 세려하였지만 너무 많더라구요
따로 갯수알수 없을까요ㅜㅠ

ljh30633의 이미지

umount 실패 관련 보안 코드

디스크가 사용중일시에 umount가 실패하는 것으로 알고 있습니다.

리눅스 콘솔창 내에서 lazy umount를 하게 되면 디스크가 사용되지 않을때까지 기다리다가 자동 마운트가 되는 것으로 알고 있습니다.

이와 관련하여 lazy umount를 실행시킬수 있는 제공하는 api함수가 있나요?

linux에서 제공하는 umount함수에는 umount(path)와 umount2(path,option)이 있던데

zondag의 이미지

Linux 2.6.35에서 OOM Killer를 disable 하는 방법?

안녕하세요,
Linux 2.6.35에서 OOM Killer를 disable하는 방법을 알고 싶습니다.

모든 task에 대해 OOM Killer를 disable시킬 수 있는 방법이 있지만,
OOM Killer 기능 자체를 disable 시키는 방법을 알고 싶습니다.

참고로, 아래 코드를 '/etc/rc.d/rc.local'에 추가하여 모든 task에 대해 OOM Killer를 disable시킬 수 있었습니다.

# disable OOM Killer for all Tasks
for i in /proc/*/oom_adj; do
echo "-17" > $i;
done

# enable OOM Dump to confirm Out-Of-Memory status
echo "1" > /proc/sys/vm/oom_dump_tasks

수고하세요.

페이지

프로그래밍 QnA 구독하기