2011-12-06 2 views

답변

6

C++이나 Java에 익숙하다면 사용하겠습니다. 낮은 언어의 일시 중지 서버를 작성할 수 있습니다.

스트리밍 서버는 대부분 A부터 B까지의 많은 데이터 즉 I/O 문제를 전달하는 데 주로 사용됩니다. 즉석에서 스트림을 압축하지 않는다면 CPU 성능이 중요하지 않을 것입니다.

플라이 압축을 수행하고 Java가 충분히 빠르지 않더라도 JNI를 통해 라이브러리를 호출하고 (여전히 작성/테스트 한 라이브러리가 좋음) Java로 서버의 대부분을 쓸 수 있습니다 . 당신이 자바를 사용하려면 않은 경우

4

어깨동구 그것은 나쁜 선택이 아닙니다. 오디오 스트리밍에는 성능 요소가 있지만 알고리즘/최적화는 선택한 언어보다 훨씬 더 큰 효과가 있습니다.

유명한 Knuth 인용구는 말할 것도 없습니다. "조기 최적화는 모든 악의 뿌리입니다." 가장 안락한 것을 적어두고 나중에 문제가 있는지 확인하십시오.

-1

here

+2

자바의 미디어 프레임 워크는 1999 년 이래로 조금 옮겼습니다. – Flexo

3

자바 성능의 가장 큰 문제, 생각, 가비지 컬렉션이다 ... 자바 미디어를 사용하여 몇 가지 사용하고 파일을 찾을 수있는 좋은 장소가 될 것입니다. 당신이하고있는 일을 신중하게 고려하지 않고 자바를 정리할 때마다 일시 중지해야하는 코드를 작성하는 것은 쉽습니다. C++에는 그 문제가 없습니다. 반면에, 뭘하고 있는지 고려하지 않고, 힙 메모리를 누설하는 C++ 코드를 작성하는 것은 쉽습니다 (힙에서 무언가를 삭제하는 것을 잊었을 때). 이것은 서버와 같이 장기간에 걸쳐 실행되는 프로세스의 경우 매우 나쁩니다. Java에서 메모리 누수가 발생할 수 있지만 언어에 내장 된 것이 아닌 너무 오랫동안 참조를 유지하는 것과 관련이 있습니다.

Java 용 최신 JIT 컴파일러의 경우 C++가 더 빠른 경향이 있지만 성능 차이는 과장되는 경향이 있습니다. 전반적으로 Java는 스트리밍 오디오 서버의 C++만큼이나 훌륭합니다. 일부 컴퓨팅 집약적 인 섹션에서 병목 현상이 발견되면 항상 Java Native Interface을 사용하여 C++로 드롭 다운 할 수 있습니다. 그러나 그것은 프로파일 링 문제를 확인한 후에해야합니다.

+0

+1 공정하고 정확하며 균형 잡힌 답변입니다. – Mikaveli

관련 문제