当前位置 : 主页 > 编程语言 > java >

【Rust日报】 2019-09-09:glint 用Rust編寫的commit 提示工具

来源:互联网 收集:自由互联 发布时间:2022-06-22
剖析 angr 的效能 angr 是樓主寫的一個程式,功能是記錄使用者花在每個程式的時間 最近樓主覺得這個程式跑的太慢了想來加速一下 發現這個程式會讓你在執行任何命令前先花個0.22秒做

剖析 angr 的效能

angr 是樓主寫的一個程式,功能是記錄使用者花在每個程式的時間

最近樓主覺得這個程式跑的太慢了想來加速一下

發現這個程式會讓你在執行任何命令前先花個0.22秒做記錄

其實這個程式並不是真的需要更快,樓主主要用這個程式在手機上

記錄他手機執行各種程式的時間。

一開始他決定使用 cargo-profiler

他發現大部份時間用在記憶體配置,且很可能是在BTreeMap裡

然後再用 Linux perf 跑看看,發現分析結果與 cargo-profiler 相同

再用火焰圖跑看看

【Rust日报】 2019-09-09:glint 用Rust編寫的commit 提示工具_微信公众号

發現augr只是因為需要加載的檔案變多而變慢!

在這一點上,樓主決定花點時間調查問題來修復它。他添加了一些代碼來追踪加載時間,

這時的樓主想了很多方法要來優化檔案加載數量過多的問題。

在進行了一些更麻煩的調查後,樓主確定程式的大部分時間都在執行,而不是加載文件。

最後他發現了主要原因在 clone ,樓主很大量的使用了clone

在做了必要的改動,減少了大量的clone之後,效能得到了提升

優化到了 0.02 秒!

剖析性能很有趣!在這種情況下,只需進行兩個簡單的更改並獲得10倍的改進。

本來樓主認為需要各種瘋狂的緩存系統才能讓augr更快。但並不需要那樣的東西!

Read more

glint 用Rust編寫的commit 提示工具

可以更智慧的送交git

【Rust日报】 2019-09-09:glint 用Rust編寫的commit 提示工具_linux_02

Read more

為什麼 "

网友评论