Français Optimisation du code

JasonA3

User
17/3/20
41
1
20
450
Bonjour,

Bohemia Interactive a mis à jour son wiki concernant l'optimisation du code sur ArmA 3. Je vous conseil d'optimiser vos scripts en vous basant sur leur wiki :) Pour certains, c'est très peu au niveau du gain de ms lors de l’exécution des systèmes, mais accumulés sur tout un framework, les ms commence à faire quelques secondes précieuses :)

S’il vous plaît, Connexion ou S'inscrire pour voir le lien !


Petites informations :

Le CALL peut désormais être fait sans argument (c'est-à-dire les []), ce n'est pas le cas pour le SPAWN !

Exemple !
[] call MonScript; // 0.0013 ms
call MonScript; // 0.0007 ms

Cela ne fonctionne donc pas pour le spawn.




Préférez également faire des déclarations directes de vos private vars (et non en faire une liste)

Exemple !
private ["_vars1","_vars2"];
_vars1 = 0;
_vars2 = 1;
// 0.0040 ms


private _vars1 = 0:
private _vars2 = 1;
// 0.0023 ms






Il y a énormément de petites choses comme celles-ci, je vous laisse donc consulter le wiki :)



 

Steez

TP-Shop Team
Membre du personnel
Developer
29/12/19
38
3
21
450
Salut,

Attention aussi à ne pas tomber dans les travers de toujours vouloir optimiser le code qu'on produit. On est plus dans les années 80, voir on code pas non plus pour des microcontrôleurs 16 bits en C++ dans un système embarqué.

Je ne dit pas que c'est inutile attention, mais que pour le temps qu'on gagne ici c'est largement marginale. Généralement vous aurez d'autres facteurs qui vous empêcheront de voir un avantage significatif (genre un remoteExec par exemple qui est dépendant du ping).

Alors oui on peut voir des temps doublé voir triplé suivant ce qu'on utilise, mais faut voir aussi l'échelle de temps. Dans l'exemple que tu fournis on est dans l'ordre du microseconde. Personne pourra percevoir la différence en vrai, sauf si on l'écrit. Microsoft considère que quelque chose est perçu comme instantané si la duré de l'action est inférieur ou égale à 500ms, ça laisse de la marge.

Il fait optimiser intelligemment son script pour qu'il soit le plus rapide, mais que le temps qu'on passe à l'optimiser aussi ne prenne pas trop de temps. Sinon on s'en sort plus.
 
  • Like
Les réactions: Jean-Baptiste

JasonA3

User
17/3/20
41
1
20
450
Salut,

Attention aussi à ne pas tomber dans les travers de toujours vouloir optimiser le code qu'on produit. On est plus dans les années 80, voir on code pas non plus pour des microcontrôleurs 16 bits en C++ dans un système embarqué.

Je ne dit pas que c'est inutile attention, mais que pour le temps qu'on gagne ici c'est largement marginale. Généralement vous aurez d'autres facteurs qui vous empêcheront de voir un avantage significatif (genre un remoteExec par exemple qui est dépendant du ping).

Alors oui on peut voir des temps doublé voir triplé suivant ce qu'on utilise, mais faut voir aussi l'échelle de temps. Dans l'exemple que tu fournis on est dans l'ordre du microseconde. Personne pourra percevoir la différence en vrai, sauf si on l'écrit. Microsoft considère que quelque chose est perçu comme instantané si la duré de l'action est inférieur ou égale à 500ms, ça laisse de la marge.

Il fait optimiser intelligemment son script pour qu'il soit le plus rapide, mais que le temps qu'on passe à l'optimiser aussi ne prenne pas trop de temps. Sinon on s'en sort plus.

Hello,

Je suis globalement d'accord avec toi, si les personnes veulent optimiser du code autant le faire jusqu'au bout en optimisant tout le framework pour ressentir une amélioration, sinon ce n'est pas vraiment la peine. C'est ce que j'ai fait avec mon framework et j'ai gagné une dizaine de secondes, qui est là le bienvenue grâce à l'optimisation du code.

Tout dépend de ce que tu souhaites en faire finalement, un peu comme tout.
 

Antoine

User
1/7/20
20
1
0
300
21
France
Bonjour,

Bohemia Interactive a mis à jour son wiki concernant l'optimisation du code sur ArmA 3. Je vous conseil d'optimiser vos scripts en vous basant sur leur wiki :) Pour certains, c'est très peu au niveau du gain de ms lors de l’exécution des systèmes, mais accumulés sur tout un framework, les ms commence à faire quelques secondes précieuses :)

S’il vous plaît, Connexion ou S'inscrire pour voir le lien !


Petites informations :

Le CALL peut désormais être fait sans argument (c'est-à-dire les []), ce n'est pas le cas pour le SPAWN !

Exemple !
[] call MonScript; // 0.0013 ms
call MonScript; // 0.0007 ms

Cela ne fonctionne donc pas pour le spawn.




Préférez également faire des déclarations directes de vos private vars (et non en faire une liste)

Exemple !
private ["_vars1","_vars2"];
_vars1 = 0;
_vars2 = 1;
// 0.0040 ms


private _vars1 = 0:
private _vars2 = 1;
// 0.0023 ms






Il y a énormément de petites choses comme celles-ci, je vous laisse donc consulter le wiki :)




Merci beaucoup pour ce partage :)
 
Activité
Pour l'instant, il n'y a personne ici