Scripts et lags

Répondre
Partager Rechercher
Hello !

Avec la V2 et la volonté de Linden de limiter les scripts et le lag, des scripteurs ont commencé à sortir des objets permettant de donner la mémoire utilisé par chaque avatar et objets.
On retrouve cette fonction avec World->about land->General->Script info.

J'ai parcouru les sujets concernant les scripts, la mémoire utilisé, etc.....
Mais j'aurais souhaité savoir quel était la bonne moyenne (sachant que je n'ai pas envie de me balader tout nu).
Un sim owner a statué que les avatars qui utilisent plus de 2MB de mémoire seraient éjecté de sa sim.
Est ce que ce chiffre est valide ? Au sens où cet avatar ne fera pas lagger la sim.
(Je précise que c'est pour un sim RP avec combats)

Une deuxième question également : J'ai trouvé un hud qui m'indique la mémoire utilisé et le nombre de script pour un objet, mais c'est trés fastidieux. Je n'ai pas accés à cette fonction par le viewer, car je ne suis pas l'owner. Est-ce qu'il y a un moyen d'obtenir une liste des scripts utilisés sur une parcelle ? Et ce afin de nettoyer de moi-même les objets trop lourds. De plus, quel est la limite que devrait avoir chaque objet ? La même que pour un avatar ? 2MB ?

Merci pour vos réponses !
je vous donne les scripts si vous les voulez
Le premier, tout simple :

// Memory Check
default{
state_entry(){
llSetText("Touch to find your\nscript memory usage", <1.0,1.0,1.0>, .8);
}

touch_start(integer total_number){
list details = llGetObjectDetails(llDetectedKey(0), ([OBJECT_SCRIPT_MEMORY]));
integer memory_used = llList2Integer(details,0) /1024;
llSay(0, llDetectedName(0)+ " is using " + (string)memory_used +" KB of script memory.");
}
}


le deuxième que vous pouvez utiliser pour votre land :

// Memory Check
default{
state_entry(){

}
collision_start(integer detected)
{
list details = llGetObjectDetails(llDetectedKey(0), ([OBJECT_SCRIPT_MEMORY]));
integer memory_used = llList2Integer(details,0) /1024;
llSay(0, llDetectedName(0)+ " is using " + (string)memory_used +" KB of script memory.");
if(memory_used > 2000){
llSay(0, llDetectedName(0)+ " , you are exhausting this sim. In order to increase your own performances (TP, sim crossing) and to reduce the lag for every people, please remove the scripted items (as Hud or clothes) which are useless. To discover the amount each item use, please right-click on the ground -> About Land. In the window which will appear, choose the first folder [General] then push ont the button [Script info]. Choose the folder [My avatar]. Enjoy !");

} else {
llSay(0, llDetectedName(0)+ " , you are perfect ! thanks ! ");

}
}
}

Reste à déterminer quel est la limite acceptable
Personne n'a de réponse ?
Bon, j'ai trouvé !
Pour ceux que cela intéresse :

Le mieux est d'avoir au maximum 50 scripts pour une mémoire totale de 2MB. De plus, Parmi ces 50 scripts, seul 4 peuvent etre compilé en Mono.

J'ai bien dit le mieux ! A savoir que si vous vivez seul sur une sim vide,
vous pouvez sans problème atteindre les 100Mb ! Mais ne tentez pas la téléportation,
vous y laisseriez la peau de vôtre avatar !

Les quelques trucs que j'ai glané :
Evitez les scripts avec des horloges rapides (qui lance une action toutes les secondes, minutes...)
Evitez les scripts avec des senseurs
Evitez les bling-bling
Evitez les scripts de redimensionnement (resizing script), surtout ceux qui peuvent se trouver
dans chaque mèches de vos cheveux !
Garder vôtre sexe et son hud pour votre lit !
Dans les objets à éviter sur une sim, même chose, plus les animaux qui bougent, sautent, mangent, etc...
les objets physiques (qui tournent, et surtout qui rentrent en contact avec d'autres (collision)

Ne recompilez pas vos scripts LSL en mono ! A moins que ce ne soit un script très gourmand, vous y perdez de la mémoire disponible.

A savoir, d'après une info glané, que LL avait prévu au départ que tout les avatars ne se baladent qu'avec des vêtements "normaux", sous forme de dessin sur le corps 'lawyer', et non pas sous forme d'attachements (vêtements en prim). Soit 1 avatar moyen d'aujourd'hui représenterait 25 avatars tel que prévu par LL.

Quand au "truc" donné sur la façon de voir le nombre de script utilisé
About Land->General folder->Script info->My avatar
celui-ci ne fonctionne pas sur l'ensemble des sims, car toutes n'ont pas été mises à jour.

Voilà !
Le premier post où je me parle à moi-même ! *laughs
Oui un des gros problème de cette détermination c'est que la mémoire indiqué pour un script mono est fausse: un script mono est comptabilisé pour 64ko alors que sur le serveur à l'exécution il ne va prendre que ce qu'il a réellement besoin, qui peut être 2ko pour un petit script, soit nettement moins qu'un script LSL qui prendra toujours 16ko.

De plus, avec le mono, si plusieurs scripts identiques tournent ils ne prendront qu'une seule fois de la mémoire pour leur code commun (cas typique des resizers, qui sont certes à éviter), et l'empreinte mémoire finale sur le serveur sera bien moindre que ce qu'annonce toutes les comptabilisations possibles (x fois 64ko pour 1 fois 64ko dans le pire des cas et dans 80% des cas moins de 16ko).

Avec une telle démarche on se prive donc du mono sur des données erronées, et on arrive à un résultat contraire à celui recherché.

L'empreinte mémoire n'est généralement pas critique: ce qui compte pour le lag, ce sont les temps d'exécution.
Citation :
Publié par Jalicia
Oui un des gros problème de cette détermination c'est que la mémoire indiqué pour un script mono est fausse: un script mono est comptabilisé pour 64ko alors que sur le serveur à l'exécution il ne va prendre que ce qu'il a réellement besoin, qui peut être 2ko pour un petit script, soit nettement moins qu'un script LSL qui prendra toujours 16ko.
C'était ce qui était effectivement prévu et annoncé lors de l'introduction de mono.
C'est pourquoi je me suis toujours posé la question pourquoi le regretté barbu recommandait toujours de compiler les petits scripts en lsl au lieu de mono.

En effet, il me semble avoir lu récemment (sur le site LL, il faudrait que je retrouve la page, peut-être quelqu'un pourra confirmer), que cette disposition initialement prévue n'est toujours pas effective, et qu'un script mono requiert systématiquement 64k, comme un script compilé lsl requiert systématiquement 16k.

Ensuite, on mélange souvent beaucoup de choses, ce qui affecte le serveur (sim), ce qui affecte principalement le client, ce qui affecte les deux...

Ensuite, on lit et entend tout et son contraire (le meilleur exemple que j'ai en tête est celui des mega prims).
A part quelques cas flagrants et évidents (les lapins, chevaux et autres bestioles gardées en troupeau et qui passent leur temps à se rentrer dedans et faire lagger une sim à eux tout seuls) qui font consensus...

Je pense cependant qu'on peut s'accorder sur une chose :

- que d'une part la méthode de mesure, basée sur la quantité de mémoire utilisée est très loin d'être parfaite, que l'activité d'un script est bien plus importante, et que deux fois plus de scripts ne signifie absolument pas deux fois plus de lag
Citation :
Publié par Julesig Aeon
Evitez les scripts avec des horloges rapides (qui lance une action toutes les secondes, minutes...)
Evitez les scripts avec des senseurs
(...)
- que d'autre part, tout script supplémentaire apporte sa contribution, même si certains "contribuent" cent fois plus que d'autres.

Quelqu'un avait posté ce lien je ne sais plus ou : http://analutetia.com/2009/06/22/anatomy-of-lag/
C'est ce que j'ai lu de plus convaincant à propose du lag en général.
Répondre

Connectés sur ce fil

 
1 connecté (0 membre et 1 invité) Afficher la liste détaillée des connectés