Linux
性能 |二進制與腳本
如果我想在 Linux 中實現一些功能(例如打開、複製、壓縮、刪除、等待事件),是在 C++ 中實現它並將二進製文件作為程序執行還是在 shell 腳本中實現它更好?
假設我忽略了實現的細節,我想現在,在二進製作為一個程序啟動期間,與啟動 shell 腳本相比,將消耗多少記憶體和 cpu 負載?
會影響速度嗎?是 否
如果您在腳本中實現壓縮算法,那麼它將比在 C++ 中完成的要慢得多。
如果您只是呼叫庫函式/命令來執行此操作,那麼差別不大。時間將由預先存在的庫函式/命令完成的壓縮支配。文件打開、文件複製、文件刪除和等待都是由核心完成的,在應用程序中完成的很少,所以也幾乎沒有什麼變化。
然而,唯一知道的方法是測量兩者。
一些優化規則
- 讓它工作,然後(如有必要)使其快速/小。
- 優化可讀性。
- 優化速度,只有在你有證據證明它不夠快之後。
- 在優化速度時,測量兩種實現,不要假設一個更快(你可能會錯)。
- 永遠不要針對最佳情況進行優化,針對更差或平均情況進行優化。