如何得到XML文件大小

2021-04-17 08:41:42 字數 1246 閱讀 5241

xml文件從格式到大小都是不是確定的。有的可能只有幾行,而有的卻有好幾兆位元組。你也許會懷疑是不是需要了解

xml文件的大小。而當效能成為首要問題時,知道

xml文件大小就是件必須要作的事情了。

從效能角度講,有兩類處理xml文件的方法。批量處理方式需要較短的時間,解析成組的文件。實時方式就是實時的處理文件。批處理方式的效能可以通過在一定時間內處理多少文件來測量,而實時模式的效能也採用類似的測量方式,不過是以處理乙個文件需要多長時間來計算的。

scenarios場景

想象一下,你有乙個實時工作的系統,比如乙個web伺服器。這個系統需要實時的接收客戶發來的訂單,並需要立即對這個訂單進行響應。

這個系統顯然不能用批量處理的方式進行。簡單的估計一下,假設這是個很簡單的訂單,只有十個專案,這樣所生成的xml文件就比較小,大概每個文件是4kb。這種情況下,使用dom來解析收到文件。

如果你的訂單每小時只有幾個,那麼系統效能對你來說還不是問題。但是長遠考慮,總有一天訂單的數量會多到令你意識到系統效能必須提高。

現在你開始考慮提高效能來適應增長的負荷。你的訂單文件已經很小了,把它們合併成較大的文件也沒有什麼實際的意義。從縱向考慮,這時候你可以提高現有系統處理能力;從橫向考慮,你可以增加更多的系統將負荷分散開。

再看看另乙個完全不同的領域,你現在要處理的是乙個大型的資料倉儲。和web伺服器完全不同,你現在用ftp來傳輸平均大小為300mb的xml文件。如果還是使用dom來解析xml文件,你很快就會遇到**煩。相反,如果你使用sax就會好的多,它可以直接解析流入的xml文件,而不必把它們事先都裝入記憶體。

改變文件尺寸

有時候你會遇到特殊情況需要改變xml

文件大小。想象一下,和剛才一樣你有乙個實時處理xml文件的web伺服器,而此時所有的文件大小都是400mb而不是4kb,你不能使用dom方式,因為那太佔記憶體了。可是因為這是個實時系統,效能很重要。你可以使用sax,不過需要時間允許並要有強大的處理器。

在這種情況下,你可以通過改變文件大小來改進系統執行效能。比如你可以將乙個400mb的文件分成10個40mb的,或者40個10mb的小文件,這比起處理乙個400mb的文件更有效率。這樣你就可以使用dom方式把檔案讀入記憶體進行處理,及時響應每個文件的請求了。同時還可以清除掉不相關的文件。

在批量處理方式上也有類似情況。想象一下你在通過dom的批處理方式處理數千個4kb大小的文件。最好的方式是將一千個檔案合併成乙個4mb的檔案。因為每個文件的載入都需要占用系統時間(不論是dom還是sax)。通過將一千個文件合併成乙個,你只需要載入乙個文件,占用的時間只是原來的千分之一。

如何構建xml文件?

需求 某些時候,我們需要將其他格式資料轉換為xml,例如我們要把yikang.csv檔案,轉換成相應的xml。yikang.csv 日期,名稱,價,最 最低價,開盤價,前 漲跌額,漲跌幅,換手率,成交量,成交金額,總市值,流通市值,成交筆數 2016 01 08,002566,益盛藥業,14.23,...

C C 如何得到檔案的大小

c 如何得到檔案的大小 先用fopen開啟檔案,然後把檔案指標指向檔案尾.再用ftell獲得檔案指標當前位置 即檔案長度 源 include stdafx.h include include using namespace std int main fseek fp,0,seek end 定位到檔案...

如何縮減word文件大小

自從公司使用了oa辦公系統後,office文件與日俱增,最近查了下伺服器,每日檔案增加的空間大小將近2g,從中抽取了幾個word文件看了下,裡面內容都不是很多,卻都200多k,甚至有2m的,於是整理了此文給業務部門,希望能使word檔案 1 壓縮 在將插入到 word 文件前,應先將進行壓縮,1 最...