簡體   English   中英

Java FileWriter:客戶端-服務器環境上的重復文件打開/關閉(多個實例)與單個打開/關閉(單個實例)

[英]Java FileWriter: Repeated File Open/Close(Multiple Instance) vs Single Open/Close(Single Instance) on Client-Server Environment

我們目前有一個客戶端-服務器系統。 我們有這個應用程序,它將日志記錄到客戶端計算機上的文本文件中,從而監視系統上每個事務的性能(請求/處理/ SQL查詢的開始-結束時間等)。

我們當前的實現是針對每個請求,我們將打開日志文件,寫入事務的詳細信息,然后針對發出的每個請求關閉文件。 每個客戶端還有一個單獨的FileWriter實例。

我們想知道是否最好在應用程序的整個使用過程中都打開文本文件,然后在注銷后使用FileWriter的單個實例將其關閉。

  1. 僅使用FileWriter的單個實例有什么影響?
  2. 當我們將Filewriter從多實例更改為單實例時,速度會有重大變化嗎?

如果您正在做大量編寫工作,那么單次打開文件可能會提高性能。 但是,我想任何收獲都不值得,因為與您正在執行的其他操作(尤其是sql查詢)相比,這聽起來像是一筆錢。

您的平台可能會強制您僅對同一文件使用一個FileWriter 保持手柄打開。 您至少應使用在內部處理線程同步的PrintWriter 在性能方面,可以通過使用(或不使用) FileDescriptor.sync().來為性能而FileDescriptor.sync().安全性FileDescriptor.sync(). 您可以使用FileDescriptor創建FileWriter ,可以從FileOutputStream獲取它。

我僅支持使用log4j或Java自己的日志記錄機制。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM