프로그래밍 QnA + 설치 및 활용 QnA

timul16의 이미지

우분투 top명령어 프로세스 cpu점유율이 80%가 나오는데요 개선이 필요한가요? 멀티스레드 사용시

우분투에서 Qt프로그래밍을 하고 있습니다.

프로그램을 단일프로세스에서 멀티스레드로 바꿔서 프로세스상태를 관찰해 보았는데요 (pthread를 사용

단일 스레드로 돌아갈시 프로세스 점유율이 40%이하인 상태였는데
멀티 스레드로 구현을 하니 80%로 올라가버리더라구요

이론적으로는 멀티 스레드로 구현시 구동이 훨씬 유연하게 동작할것으로 보였는데
top명령의 cpu점유율을 확인해보면 이와 같이 나오고 있습니다.

현재 버츄얼박스에서 우분투 10.04버전으로 사용중이구요
이런경우에는 단일 스레드를 사용하는게 적합한건가요?

스레드를 다눈 범주는
1. 데이터를 읽어오는 곳
2. 데이터를 뿌려주는 곳
이렇게 두부분으로 나눠서 멀티스레드를 구현하였구요

단일 스레드시에는 데이터를 스레드로 받아서
그 스레드함수 끝부분에 페인트를 호출하도록 구현하였습니다.

ronkzoo의 이미지

리눅스 서버를 두 대가 있는데 IE브라우저별 접속속도가 차이가 납니다. 하나의 서버에서만 IE8버전 이하에서 속도차이가 많이 납니다. 좀 도와주세요~~~

지금 서버를 두 대를 클러스터링을 해서 운영중에 있습니다. resin 깔아져있고요 아파치는 따로설치하지 않은 상황입니다.
하나의 서버가 계속 접속 속도가 많이 늦습니다. 브라우저를 열어서 최초 접속할때만요 다른 서버는 전혀 그런건 없구요 클러스터링을 한 상태라 소스도 똑같아서 별 문제가 없는 것 같고요
그래서 브라우저별로 테스트를 해보니깐 또 이게 IE8이하에서 아주 많이 느리더라구요 이 문제의 서버는 IE9이상에서는 거의 속도 지연이 나진 않습니다.
이 문제 때문에 골치가 많이 아픕니다. 이것저것 소스를 지웠다 넣었다 뺏다 해보면서 테스트를 많이 해봤는데 서버관리쪽으로는 제가 문외한이고 경험도 많이 없는지라 자문을 구하고 싶습니다.
traceroute 를 한번 돌려봤었는데 10번중에 3,4번정도 100.00ms 이상 나왔습니다. 네트워크 지연이 있는것 같기는 한데..... 여튼 많은 도움 부탁드립니다.~ 감사합니다.~

firea32의 이미지

필수불가결한 상황이라 sprintf 를 조금 변칙으로 사용중인데요,

어플리케이션을 만드는 도중 로컬라이제이션 문제때문에

string local = "%d(한글또는영어)/%s";
char tmp[128];
sprintf(tmp, local.c_str(), var, var2);

이렇게 사용중인데 실제로 복사된 문자열을 보면 제대로 들어갈때도 있고, 그렇지 않을 때도 있는데 이유를 모르겠네요...
oblab의 이미지

QThread 와 pthread 성능은 비슷한가요?

Qt 프로그래밍중 멀티스레드를 사용중인데요 Qt에서는 제공하는 QThread Class와 C표준 pthread를 지원하고 있습니다.

제가 두 종류의 스레드의 돌아가는 시간을 체크해봤는데 성능상에는 큰차이는 없고
pthread는 다이얼로그의 인자를 받아서 해당 클래스에서 같은 변수를 두고 사용할수 있는 편리함이 있는데
QThread는 클래스를 새로 생성해서 변수도 그 클래스에 새로 잡아줘서 해야 하는 불편함이 있더라구요...

그래서 저는 일단 성능상 많은 차이도 없는것 같고 사용하기 편한 pthread를 사용할 생각인데요

혹시 또 이런 생각을 갖고 테스트해보시거나 성능상의 차이점을 알고 계시면 답변좀 부탁드리겠습니다.
(제가 테스트한 방식이 틀렸을 수도 있기때문에)

hernian의 이미지

static 컴파일 관련 문의

안녕하세요

질문이 있어 문의 드립니다.

현재 Linux 서버 두대가 있다고 하겠습니다.

특정 source를 gcc로 컴파일 하면 A에서 컴파일한 프로그램은 해당 서버에서 잘 돌아 가는데 B에서는 돌아가지 않습니다.
반대의 경우도 바찬가지고요

이유는 사용하는 library 가 A는 32bit, B는 64bit gblib 를 사용하고 있어서 그렇다고 들었습니다.

이럴때에 A서버에서 static 하게 컴파일 해서, A에서 컴파일 한 프로그램을 B에서 사용할 수 없을까 해서 문의 드립니다.

wkdjjywkd의 이미지

C && 쉘 프로그램.. 그리고..

안녕하세요.

임베디드 보드에서 busybox의 ash shell을 이용하여 서버프로그램을 작성 하였습니다.

서버의 역활은 접속할때마다 특정 프로세스가 client ip로 유니캐스팅 해주는 것 입니다.

이 프로그램을 돌리기 위해서는 또다른 프로세스를 실행시켜 주어야 합니다.

처음에 했던것은 pid 관리를 편하게 하기위하여 fork를 이용하여 프로세스 생성 후 exec계열을 이용, 프로세스를 변경하여 작성 하였습니다.

시나리오상 3번의 fork를 해야하고 프로그램이 난잡해져서...

통신부분은 C, 프로세스 실행관련해서 쉘 스크립트로 만들었습니다.

그런데 문제는 가끔식 프로세스를 죽이지를 못합니다.

C로 kill 함수를 이용할때도..

쉘에서 킬명령을 실행할때도..

쉘에서 실행시 클라이언트마다 pid 저장해 놓은 파일을 rm 명령어로 죽여도 말이죠..

프로세서는 mips 계열입니다.

이와관련해서 비슷한경험하신분의 조언을 듣고 싶습니다..

siba555의 이미지

바이너리를 std::string로 읽어서 string.c_str() char*로 복사시 문제

안녕하세요..
바이너리 파일을 std::string에 담아서 멤버로 가지고 있다가
아래 함수처럼 getData()로 반환하면 일부길이까지만 리턴되고 중간에 짤리는데요. hex로 변환해서 리턴해주면 문제가없지만 다른 해결방법이 없을까요?

std::string m_string;

const char* getData()
{
return m_string.c_str();
}

감사합니다.

oblab의 이미지

Qt와 VS2010의 stdlib.h 의 내용이 서로 다른가요?

표준C헤더쪽은 다 같을지 알았는데 Qt에서와 VS2010에서의 stdlib.h를 비교해보니 서로 다른 부분이 꽤 있는데
다른 함수들도 조금씩 다른부분이 있는건가요?

xoduddk123의 이미지

파일시스템을 업데이트 관리하는데 있어서 좋은 방법이 있을까요??

단순 커널업데이트같은경우는 커널이미지를 교체해주면 된다고 생각하고있는데요

파일시스템을 만약에 배포했을때 만약에 파일시스템의 업데이트가 필요한경우 어떠한 식으로 관리해야될까요???

제가 생각하고있는 방법은

만약에 V1.0 이라는 버전의 파일시스템을 배포를 했다고 가정하면

추후에 V1.1이라는 파일시스템으로 업데이트가 필요할시 V1.0과 V1.1에서 차이나는 파일들은 관리자가 무슨파일들이 바뀌니 알고있으니

해당파일들은 교체하는 식으로 해야될거라고 생각하고있었습니다.

그런데 이러한 파일시스템 버전이 만약에 V1.0 에서 V1.100까지 세분화 되어있을 경우

각각의 하위버전에서 V1.100버전으로 업데이트하는 경우에

V1.0에서 V1.100 V1.1에서 V1.100 V1.2에서 V.100이렇게 세분화 되어있다고 하면

나중에 관리하기가 몹시 힘들거같은데요

파일시스템을 업데이트 관리 하는데 있어서 좋은 방법이 있을까요???

페이지

프로그래밍 QnA + 설치 및 활용 QnA 구독하기