我們想要構建一個web服務來返回一些圖像(如谷歌地圖瓷磚)。在Windows和Linux的IO性能
而源數據組織爲esri compact cache format,我們服務的關鍵是從包中讀取圖塊。
我不知道如何選擇平臺,Windows或Linux?
據說linux的bettor IO讀寫性能比windows的好。
但是java是我們唯一的選擇,如果我們選擇linux,所以我想知道是否有任何我們應該知道的要提高IO讀取性能在linux?
PS:
在的Winodws平臺,我們將構建基於使用C#.NET4的服務,部署服務使用IIS。
在linux中,我們將使用java(可能基於spring mvc或其他一些mvc框架)構建服務,並使用tomcat部署服務。
更新:
我們可以有以下來源緊湊的文件在不同的摺疊:
L1
RxxCxx.bundle
RxxCxx.bundlx
L2
RxxCxx.bundle
RxxCxx.bundlx
而來自客戶端的請求可能看起來像這樣:
http://ourserver/maptile?row=123&col=234&level=1.png
對於這個要求,我們將會進入到L1
的摺疊水平爲1
,然後讀取RxxCxx.bundlx
文件,因爲這個文件是直到告訴我們渲染圖像數據的位置(RxxCxx.bundle
的偏移量和長度)的元數據(row=123&col=234
),那麼我們將根據偏移量和長度讀取RxxCxx.bundle
。然後我們通過將數據寫入響應並將內容類型設置爲「image/png」或其他內容來將數據呈現給圖像。
這是一個完整的處理請求。
然後我想知道是否有任何文檔或存在的演示可以告訴我如何處理這些類型的IO讀取?
捆綁可能實際上是一個不錯的選擇,因爲*至少需要兩次讀取才能獲取對象(一個用於TOC,一個用於對象)每個文件有一個對象可能會花費一些磁盤空間,但會減少緩衝區腳印。 Linux的磁盤緩衝和inode以及目錄緩存可以輕鬆處理數千個小文件,全部駐留在磁盤緩衝區中。保持一個目錄的大小限於一個百分之一(例如,通過使用對象名稱/數字的前幾個字母作爲子目錄名稱) – wildplasser