加入星計劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入
  • 正文
    • 使用systrace為什么會用到這個命令?
  • 推薦器件
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請入駐 產(chǎn)業(yè)圖譜

Linux split 命令在這種情況下很有用

2023/08/05
2228
閱讀需 5 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

哈嘍,大家好,我是小G。

大家有沒有碰到過這種情況??經(jīng)常為了復(fù)現(xiàn)某個偶現(xiàn)問題,在開始測試時就需要打開日志一直跟蹤日志到問題復(fù)現(xiàn),在這個過程中,可能會經(jīng)歷很長時間,導(dǎo)致抓取到的日志文件一般都比較大,導(dǎo)致在分析日志時分析日志的工具load日志很慢,可能還會占用內(nèi)存過多,導(dǎo)致辦公系統(tǒng)運(yùn)行變慢、變得比較卡頓。

如果碰到這種情況一般有兩種處理方法:

1、優(yōu)化log系統(tǒng),針對保存日志的文件大小設(shè)置一個固定的size,每當(dāng)日志保存超過這個size之后,就重新保存日志到另外一個文件,以此類推,最后分析問題的時候面對就是一個個固定size大小的日志文件,避免出現(xiàn)較大size的日志文件導(dǎo)致load慢或卡頓的問題。

2、依然采用持續(xù)性記錄日志,全部保存在一個文件內(nèi),但分析問題前,根據(jù)日志大小,時間情況等,對日志文件大小進(jìn)行手動分割處理。

當(dāng)然對于log分析而言,第一種方法顯然會更友好,避免了人為手動參與,會更高效。實(shí)際中我們可能兩種方法會混合使用,提高效率。

今天主要學(xué)習(xí)的是第二種方法中涉及到的一個 Linux 命令?:?split 。另外也是因?yàn)樽罱?jīng)常在使用systrace的場景用到比較多,所以記錄一下,詳細(xì)如下。

使用systrace為什么會用到這個命令?

有時為了分析難復(fù)現(xiàn)或者復(fù)雜的問題,需要抓取盡可能多的事件的 systrace,而最后抓取到的這些 systrace 的總大小可能很大,而我本地電腦在本地一直持續(xù)在用,可能半個月都沒關(guān)機(jī)過了,內(nèi)存已經(jīng)吃緊,瀏覽器本身內(nèi)存也可能吃緊了,此時如果碰到一個systrace文件太大就會出現(xiàn)無法 load 解析了,所以就需要考慮將抓取到的 systrace 文件進(jìn)行分割,分段進(jìn)行解析。

此時 Linux split 這個命令就非常有用了。

split 命令可以將一個文件分割成數(shù)個。該指令將大文件分割成較小的文件,在默認(rèn)情況下將按照每1000行切割成一個小文件。通過命令參數(shù),可以指定按照行數(shù)或者字節(jié)數(shù)進(jìn)行分割。

用法:

split [--help][--version][-<行數(shù)>][-b <字節(jié)>][-C <字節(jié)>][-l <行數(shù)>][要切割的文件][輸出文件名]

部分說明:

-l <行數(shù)> : 指定每多少行切成一個小文件

-b <字節(jié)> : 指定每多少字節(jié)切成一個小文件

-C<字節(jié)> : 與參數(shù)“-b”相似,但是在切 割時將盡量維持每行的完整性

[輸出文件名] : 設(shè)置切割后文件的前置文件名, split會自動在前置文件名后再加上編號

比如,我想以每 10 行分割文件 testfile:

$ split -l 10 testfile

再如,過大的?systrace?文件,以每?500000?行進(jìn)行分割:

split -l 500000 mytest.html

說明:

1、一般 systrace 文件,差不多每行大約 100Bytes 上下;

2、注意:切割systrace時候,需要主要針對切割之后文件,還需要做下處理,避免出現(xiàn)異常,導(dǎo)致無法解析。

由于 systrace 文件之前是完整的 html 語法規(guī)則編寫,分割之后意味著每個分割的小文件的末尾,語法則會出現(xiàn)不匹配情況,此時就需要我們進(jìn)行手動消除,可在切割后的systrace文件末尾添加如下內(nèi)容:

</script>
<!-- END TRACE -->
</body>
</html>

然后,就可以和平時使用一樣,分段解析每一個小的systrace文件了。

推薦器件

更多器件
器件型號 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊 ECAD模型 風(fēng)險等級 參考價格 更多信息
SN74HC245DW 1 Texas Instruments Octal Bus Transceivers With 3-State Outputs 20-SOIC -40 to 85

ECAD模型

下載ECAD模型
$0.45 查看
SIT1533AI-H4-DCC-32.768D 1 SiTime Corporation LVCMOS Output Clock Oscillator,

ECAD模型

下載ECAD模型
$2.84 查看
AFBR-57R5APZ 1 Broadcom Limited Transceiver, 830nm Min, 860nm Max, 4250Mbps(Tx), 4250Mbps(Rx), LC Connector, Board/panel Mount, ROHS COMPLIANT PACKAGE-20
$40.94 查看

相關(guān)推薦

電子產(chǎn)業(yè)圖譜

記錄和分享C/C++、Linux、ARM、Android、IoT相關(guān)知識。技術(shù)相伴于生活和成長,愿你我永為少年,心中有火,眼中有光,始保熱情。