為什麼讀10MB的TXT文件那麼慢,而打開1G的視頻卻很快?
01-23
WIN系列的操作系統下,打開一個MB級別的TXT文件一般都很慢,按理說磁碟的傳輸和CPU應該都能HOLD住啊?
如果你希望TXT跟視頻一樣是一行一行播放給你看的,那也很快。
那些說記事本渣的,其實是因為記事本多國語言處理做得好,從而不得不整個讀完了。不信的話用一些你們認為打開的快的工具去讀可蘭經原文(逃
軟體用得不對而已。
用靠譜點的txt編輯器都不會有這個問題。
大文件分塊載入。反正你一屏幕能看到的文本是有限的。
補充:評論網友提到的是對的。大文件載入慢的主要原因是要掃描整個文件讀取行數。而視頻文件不用掃描整個視頻就能讀取視頻長度。你用 ultraedit來讀TXT一樣快,用記事本和WORD來讀TXT當然慢了
輪子哥的意思其實就是視頻是按區塊載入,而TXT是整體載入,如果你用ultraedit一類的文本編輯軟體只載入顯示區域一樣很快,感覺秒開!高大上呢
大家都在說打開txt為什麼慢的問題,我就說一下為什麼打開視頻那麼快吧。視頻文件一般分為兩類,一類是索引式的,如mp4,視頻結構信息在文件開頭部位,只需要讀取開頭少部分內容就可以開播了。還有一類是流式的,如ts,視頻結構信息與視頻內容混在一起的,一般讀取開頭和結尾部分內容計算出視頻時長就可以開播了。這兩類開始播放時實際都不會把文件全部載入到內存中,而是在後面邊播放邊讀取,所以速度比較快。
因為微軟自帶的記事本是默認全部載入的,你可以用其他編輯器比如ultraedit、notepad++之類的就好了。
個人認為:1、普通的txt文件都比較小,因此一次性載入全部是沒有問題的。這不包括txt電子書...而且txt作為電子書的格式不是很好,epub、mobi都比txt好。txt電子書這麼多的原因大概是因為盜版比較多...至於你說我要寫文檔,寫論文什麼的,你應該用word而不是txt。2、微軟做這個記事本只是為了滿足日常使用,並不是作為生產力工具的(例如office),因此只有基本的功能就足夠了。你可以試試寫個程序用read讀一個視頻到內存里,看看是不是duang的一下就讀好了?
記事本慢是因為它使用的是系統標準文本框控制項,這個控制項的實現是非常naive的,不是為了這種大文件場景設計的。要想快,需要非常仔細地設計內部數據結構和渲染機制。假如有興趣,可以參考一下 Scintilla 項目。最慢的硬碟也能在1s之內讀完整個文件。
……10m大么?工作的時候經常有幾百兆一個的文件log啊坑…… 用ue打開……卡主以後干別的事情,想起來了再看……
軟體實現方式不一樣 舉個相關的例子 大文本文件在早期的android上不藉助第三方文本工具打開直接崩潰 但是用功能機上的電子書功能卻能輕易閱讀。
打開的方式不對,用十六進位編輯軟體秒開
因為視頻是流式處理,而文本是批處理——一次性載入到buffer
把自動換行關掉就快了。。。
vi教做人
用VIM啊 嗖嗖的。
推薦閱讀:
※文件很多很雜,求國產雲同步軟體推薦?
※對數量龐大的照片進行分類管理,最好的方便檢索的方法是什麼?
※Windows Phone 8.1 的 Files 文件管理功能有什麼用?
※Windows 的文件層級為什麼這麼混亂?
※如何將Win7系統下(聯想筆記本)的文件快速安全的傳送到OS X系統(rMBP)內?