簡體   English   中英

為什么腳本要比普通的終端命令花費更長的時間?

[英]why does a script take long to run than a normal terminal command?

所以我寫了一個很愚蠢的劇本

#!/bin/env tcsh

ls-F --color=always -h

並將其保存為test.csh

現在,當我time相同的命令和腳本,這是我所看到的

time ~/scripts/bin/test.csh 
....
Elapsed:0:04.63,User=3.733,System=0.329,CPU=87.4%.

如果我在終端中運行命令

time ls-F --color=always -h
....
Elapsed:0:00.00,User=0.000,System=0.000,CPU=0.0%

我不了解內核/調度程序的內部工作,我只是想了解導致此延遲的原因

我在用

RHEL5 x86_64

tcsh作為我的外殼

謝謝

運行腳本時,它正在創建和初始化新環境,引用點文件,腳本等。

當您運行終端命令時,它會在已建立的環境中運行,並且不需要進行初始化。

您可以看到帶有strace的額外進程

嘗試運行strace text.sh 2>&1 | tee out_script.txt strace text.sh 2>&1 | tee out_script.txtstrace ls-F --color=always -h 2>&1 | tee out_noscript.txt strace ls-F --color=always -h 2>&1 | tee out_noscript.txt

然后,您可以比較或比較這兩個文件以查看設置新環境所需的其他步驟。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM