0
A
回答
4
嗯,這取決於你使用的是什麼格式的出口,但在一般情況下,導出大量數據的最大的開銷將是I/O。您可以通過使用更緊湊的數據格式減少這一點,並通過這樣做在內存中的數據較少操作(以避免存儲副本),如果可能的話。
首先要檢查的是看你的磁盤I/O速度,並做一些寫作代碼分析。
如果您正在使磁盤I/O達到最大(例如,以很高的磁盤速度百分比寫入,現代系統上的速度會達到每秒幾十兆字節),那麼可以考慮在您之前壓縮數據寫下來。這會使用更多的CPU,但是當您這樣做時,可以少寫入磁盤。如果您在閱讀方面有相同的瓶頸,這也可能會提高閱讀文件的速度。
如果你杏你的CPU,你需要寫它之前做的少的數據處理工作。例如,如果您使用的是序列化庫,避免這種情況並切換到更簡單,更專用的數據格式可能會有所幫助。考慮你需要的最簡單的格式:可能只是字符串長度的一個單詞,後面是字符串數據本身,對每個鍵和值重複。
3
注意,大多數字典結構不保留插入順序 - 這往往使他們糟糕的選擇,如果你想重複的文件內容,但(視大小而定),我們也許能夠改善的時間....這個(下)需要大約3.5秒(爲出口)寫不到30MB:
StringDictionary data = new StringDictionary();
Random rand = new Random(123456);
for (int i = 0; i < 1000000; i++)
{
data.Add("Key " + i, "Value = " + rand.Next());
}
Stopwatch watch = Stopwatch.StartNew();
using (TextWriter output = File.CreateText("foo.txt"))
{
foreach (DictionaryEntry pair in data)
{
output.Write((string)pair.Key);
output.Write('\t');
output.WriteLine((string)pair.Value);
}
output.Close();
}
watch.Stop();
很明顯的表現將取決於能否寫入的實際數據的大小。
相關問題
- 1. 從SharePoint登錄到TextFile
- 2. 寫文本框到TextFile C#
- 3. TextFile到一個字典
- 4. matlab,textfile
- 5. 作爲StringDictionary的VB.NET屬性?
- 6. Delphi textfile empty
- 7. 解析TextFile
- 8. Swift Array,TextFile?
- 9. MsDeploy TextFile provider
- 10. C++ textfile borland
- 11. LINQ到Windows Phone 7中的TextFile
- 12. textfile到一個數組...任何想法?
- 13. TEXTFILE到ListView的線由線c#
- 14. vb.net textfile ReadLine循環
- 15. Pyspark textFile json with indentation
- 16. 來自TextFile的DataTable?
- 17. 從(大)TextFile填充JComboBox
- 18. Hadoop自定義拆分TextFile
- 19. Java - PDFBox 1.8.9 unicode textfile to pdf
- 20. textfile分隔java nosuchelement異常
- 21. C#textfile解析錯誤
- 22. 將JTable內容保存到TextFile並閱讀它
- 23. 如何將JavaMapwithStateDstream的內容輸出到textFile?
- 24. 如何創建鏈接到textfile/excel表單/ url(EXTJS)的按鈕?
- 25. 從C#中的TextFile中獲取數據#
- 26. echo json to textfile刪除雙引號
- 27. 從textfile命令中獲取值
- 28. 將列表放入textFile之後line.split - Python
- 29. StreamCorruptedException,使用ObjectInputStream從TextFile中讀取(Java)
- 30. SPARK SCALA將DF導出爲TextFile
需要更多信息.... – 2009-06-18 11:42:12
您現在使用的導出方法是什麼? – Steef 2009-06-18 11:43:12