2
讓我舉一個例子: 腳本應該檢測,該文件創建完成:QT4:爲什麼bash shell比使用QProcess調用的相同腳本更快?
#!/bin/bash
CID=$1
TYPE=$2
echo "$TYPE$CID" >scan.log
sleep 1
FILE=$TYPE$CID.jpeg
until [ $(ls -l $FILE | awk '{print $5}') -gt 2000 ]
do
echo "sleeping" >> scan.log
sleep 0.4
done
SIZE=`du -h $FILE`
echo "$DT $SIZE " >> scan.log
cp $FILE $TYPE.jpegs
當我打電話從shell執行它,它是非常快的:沒有一個行「沉睡」在輸出/ scan.log /,所以文件準備在1秒/第一次睡眠就夠了/ 同時,當我從QT調用相同的腳本時,我必須等待超過5秒/超過14行睡眠/
它可以修復它嗎?隨着時間的是我的項目的關鍵... 感謝您的建議
你如何從Qt中調用它? – 2012-08-09 12:59:26
這不是這個腳本很慢;它是文件「$ TYPE $ CID.jpeg」的增長率。什麼是生產?無論如何,這不是確定文件何時完成的好方法。 – chepner 2012-08-09 16:19:31
$ TYPE $ CID.jpeg是我在更快的機器上改造的圖像。 通常,在我開始檢查之前就已經準備好了 - 因爲當我從命令行檢查它時,我沒有一行「睡眠」... QT4: QProcess bash; bash.start(「./ scan.sh p1 p2」); ... – nat 2012-08-10 08:29:45