2012-04-06 75 views
0

我正在研究一個幾乎接近實時應用程序的應用程序,我將有超過100個用戶連接到此應用程序。爲多用戶環境訪問單個資源

現在我的問題是,我有一個二進制資源,即MP3文件。我爲每個用戶創建一個單獨的用戶實例,並且該應用程序工作正常,但問題是該文件超過5MB,因此如果爲100個用戶創建單獨的實例,大小將爲500MB,因此它會持續消耗內存。

我在想的另一個解決方案是保持此資源爲全局(靜態),但由於這是一個多用戶環境應用程序,並且所有用戶都將連續訪問資源,所以我認爲可能存在問題如果我保持這個資源全球所有用戶。

你有什麼建議?如果您有任何其他想法,請與Plz分享。

在此先感謝。

+1

你是寫資源還是隻讀?你也可以考慮一箇中間地帶,比如10個用戶共享10個拷貝。 – 2012-04-06 06:29:01

+0

如果用戶只是讀取文件,你可以引用計數加載的文件對象,(鎖定計數或使用原子)? – 2012-04-06 09:39:16

+0

感謝您的回覆...該資源是隻讀的 – 2012-04-07 05:42:59

回答

0

當涉及性能和內存使用情況時,需要權衡折中。

如果向所有用戶提供相同的二進制資源,最好將其保留爲全局(假設用戶訪問資源時不存在訪問控制)。但不是將所有二進制資源連續存儲在內存中,而是可以完成緩存資源的機制。

當用戶第一次訪問特定資源時,可以將其加載到內存中。如果任何用戶在配置的時間間隔後沒有訪問它,則可以將其從內存中移除。