我正在寫一個媒體轉碼服務器,其中我需要移動文件系統中的文件,直到現在我處於使用java renameTo可以被別的東西替代的困境,這會讓我更好性能。我正在考慮使用exec(「mv file1 file2」),但這將是我最後一次打賭。 任何人都有類似的經歷或可以幫助我找到解決方案?java文件移動高性能
回答
首先,renameTo
可能只是包裝系統調用。其次,移動文件並不涉及從文件本身(至少在unix中)複製任何數據。發生的一切就是刪除舊目錄中的鏈接,並添加新目錄中的鏈接。我不認爲你會在這裏找到任何性能改進。
許多Un * x系統配備了多個分區(或者在同一個硬盤上,或者分佈在多個硬盤上),並且確實從一個分區移動到另一個分區需要從文件本身複製數據;) – NoozNooz42 2010-08-11 21:36:05
@ NoozNooz42: OP說他想「移動文件系統中的文件」,而不是從一個文件系統移動到另一個文件系統。 – danben 2010-08-11 23:01:52
有沒有一個地方我可以看到執行java renameTo的代碼調用? – 2010-08-12 19:11:05
我不認爲使用文件的默認方法有一個(可提及的)性能損失,因爲大部分JVMtoOS函數已經封裝了本地調用。
唯一需要執行exec的情況是,如果您想使用與程序不同的權限執行某些操作或使用特殊工具來複制/移動文件。 (例如,當涉及NTFS連接時的智能移動)
如果重命名是一個重要的性能瓶頸,那麼您需要改進硬件,因爲這是您的主要障礙。該軟件是花費在時間上的微不足道的部分,優化它幾乎沒有什麼區別。
什麼是你的磁盤配置?它如何針對寫入進行優化?
- 1. 用java移動文件
- 2. 高性能java分析器
- 3. 提高Java的BigInteger性能
- 4. 如何提高動畫的移動性能?
- 5. 任何用於格式化JavaScript文件的高性能Java API?
- 6. java +提高性能和可伸縮性
- 7. 文件搜索高性能程序
- 8. 提高Excel文件創建的性能
- 9. 指標與MongoDB的Java驅動程序不能提高性能
- 10. 提高JNA性能自動
- 11. Java移動文件並在Windows中應用目錄的屬性
- 12. 移動語義和右值引用提高了性能
- 13. 如何從數據庫移動此數據以提高性能
- 14. PhoneGap的移動應用程序+數據庫性能提高
- 15. 適用於iOS的高性能ActionScript移動遊戲引擎
- 16. 如何通過GPU渲染模式提高Flex移動性能?
- 17. 用於移動Safari的最高性能實時搜索技術
- 18. 在網絡共享上移動文件時的性能問題
- 19. 「高性能」條件COUNT(*)?
- 20. 提高jquery插件性能
- 21. 編寫一致的Java移動文件
- 22. Java隨機移動一個文件
- 23. Java - 如何使用FileUtils移動文件?
- 24. 從Java訪問SDF SQLServer移動文件
- 25. 在java中移動大文件
- 26. 如何使用Java移動文件
- 27. 提高jQuery拖動動畫的性能
- 28. 需要高性能Scala/Java集合
- 29. 提高java解析器性能
- 30. Java中最高性能的數據庫
如何調用調用系統調用的API比執行調用相同系統調用的程序要慢? – EJP 2010-08-12 01:38:52