Bonjour !
J'ai un script bash à optimiser, il s’exécute en 200 ms, il faudrait qu'il descende en dessous des 50 ms. Quand je parle de l'exécution, je veux parler d'un parcours total de la boucle While)
J'ai beaucoup de mal à l'optimiser, connaissant mal ce langage.. Je sais par exemple qu'il faut limiter les appels extérieurs, mais difficile à mettre en pratique ^^
Voici le code :
Quelques conseils d'optimisations serait les bienvenues !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90 #!/bin/bash # ##### take_screenshot ##### # # Permet de capture l'image d'un display # # Param 1 = Display # Param 2 = Token # * display=$1 token=$2 * counter=0 is_closed=0 errorCounter=0 * import -display :$display -window "$token" ../tmp/$token.png > /dev/null cp ../tmp/$token.png ../tmp/import_$token.png cp ../tmp/$token.png ../tmp/import_$token"_tmp_1.png" * while [ $is_closed -eq 0 ]; do * ################################# # # CAPTURE_FENETRE_PRINCIPALE # ################################# * **#TEST DE FERMETURE DE LA FENETRE **retour=$(DISPLAY=:$display xdotool search --name "$token") * **if [ $retour -z ] **then ****if [ $errorCounter -ge 20 ] ****then *******is_closed=1 *******./log.sh "log_flux.txt" "Fermeture brutale de $token survenue" & ****fi* ****errorCounter=$(($errorCounter+1)) **else ****errorCounter=0 **fi **#FIN DE TEST * **info=$(xwininfo -name "$token" -display :$display) **width_actu=$(echo $info | awk {'print $25'}) **height_actu=$(echo $info | awk {'print $27'}) * **offsetX=$(echo $info | awk {'print $11'}) **offsetY=$(echo $info | awk {'print $15'}) * **import -display :$display -screen -window root -crop $width_actu"x"$height_actu"+"$offsetX"+"$offsetY ../tmp/$token.png * **cp ../tmp/$token.png ../tmp/import_$token.png & **cp ../tmp/$token.png ../tmp/import_$token"_tmp_2.png" & * ################################# # # CAPTURE_MULTI_FENETRAGE # ################################# * ***window_list=$(./get_all_window.sh $token) * ***for word in $window_list ***do ******if [ "$word" != "$token" ] ******then *****#Si l'image root n'existe pas, on la créer *****if [ test -f ../tmp/import_$word"_tmp_1.png" ] *****then ********import -display :$display -window "$word" ../tmp/$word.png > /dev/null ********cp ../tmp/$word.png ../tmp/import_$word.png ********cp ../tmp/$word.png ../tmp/import_$word"_tmp_1.png" *****fi * *****info=$(xwininfo -name "$word" -display :$display) *****width_actu_child=$(echo $info | awk {'print $25'}) *****height_actu_child=$(echo $info | awk {'print $27'}) * *****offsetX_child=$(echo $info | awk {'print $11'}) *****offsetY_child=$(echo $info | awk {'print $15'}) * *****import -display :$display -window root -crop $width_actu_child"x"$height_actu_child"+"$offsetX_child"+"$offsetY_child ../tmp/$word.png > /dev/null *********cp ../tmp/$word.png ../tmp/import_$word.png & *****cp ../tmp/$word.png ../tmp/import_$word"_tmp_2.png" & ******fi ***done done
En vous remerciant d'avance,
Bonne journée![]()
Partager