回答
如果您對C++或Java更加適應,我會使用它。您可以用任一種語言編寫低暫停服務器。
流媒體服務器主要是將大量數據從A傳遞到B,即I/O問題。除非您打算實時壓縮數據流,否則CPU性能不太重要。
即使你正在進行壓縮並且Java的速度不夠快,你可以調用一個庫(最好是已經編寫/測試的庫)來通過JNI來完成這個工作,並且仍然使用Java編寫大部分的服務器。
聳肩這不是一個糟糕的選擇。雖然音頻流確實具有性能組件,但您所做的算法/優化將比您選擇的語言具有更大的效果。
更不用說着名的Knuth報價「過早優化是萬惡之源」。寫下你最喜歡的任何東西,然後檢查它是否有問題。
如果你確實想使用Java,here會找到一些應用和文件在Java中使用媒體的好地方......
與Java性能最大的問題,我認爲,是垃圾收集。如果不仔細考慮你正在做什麼,在Java中編寫需要經常停頓以清理的代碼很容易。 C++沒有這個問題。另一方面,如果不考慮你在做什麼,編寫泄漏堆內存的C++代碼很容易(當你忘記從堆中刪除某些內容時)。這對於像服務器這樣的長時間運行的程序來說真的很糟糕。在Java中可能會泄漏內存,但這與保持引用時間過長有關,而不是內置於語言中的任何內容。
雖然C++往往會更快,但對於Java的現代即時編譯器而言,性能差異往往被誇大了。對於流式音頻服務器來說,整體Java可能與C++一樣好。如果您發現某些計算密集型環節存在瓶頸,則可以使用Java Native Interface下拉到C++。但是,這應該只是在確定分析問題之後。
+1以獲得公正,準確和平衡的答案。 – Mikaveli
- 1. Java服務器到iOS應用程序流:不正確
- 2. DynamoDB是Swift應用程序的不錯選擇嗎?
- 3. python是構建桌面應用程序的不錯選擇嗎?
- 4. Django是安全關鍵應用程序的不錯選擇嗎?
- 5. SocketAsyncEventArgs是客戶端應用程序的不錯選擇嗎?
- 6. WCF數據服務(Astoria)是業務線應用程序的理想選擇嗎?
- 7. 部署不是.wars的Java服務器應用程序
- 8. Java應用程序服務器和JVM
- 9. FCM XMPP java服務器應用程序
- 10. mod_pagespeed和java應用程序服務器
- 11. Java Web服務器應用程序
- 12. Socket服務器應用程序的選擇:C/C++或C#
- 13. 爲ASP.NET應用程序選擇適當的規格服務器
- 14. 爲Web應用程序開發選擇應用程序服務器
- 15. C2DM「應用程序服務器」選項
- 16. IIS是Web服務器還是應用程序服務器?
- 17. 扭曲是構建多線程服務器的好選擇嗎?
- 18. 客戶端(Android應用程序) - 服務器(Java應用程序)
- 19. Weblogic錯誤(應用程序服務器)
- 20. 服務器應用程序錯誤
- 21. 應用程序服務器(使用EJB)是Java EE客戶機/服務器通信的唯一途徑嗎?
- 22. 客戶機/服務器java應用程序中的JVM_Bind錯誤
- 23. 在服務器上運行java應用程序的錯誤
- 24. Java流程服務器是好還是不好?
- 25. 協助爲應用程序選擇雲服務器
- 26. 爲Android應用程序數據庫選擇更新服務器
- 27. 什麼是「服務器應用程序」?
- 28. 服務器應用程序不可用?
- 29. 服務器應用程序不可用
- 30. 服務器應用程序不可用
自1999年以來,Java中的媒體框架發生了一些變化,我認爲...... – Flexo