Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1869 connectés 

  FORUM HardWare.fr
  Programmation
  Perl

  Thread Perl (Urgentissime--Help)

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Thread Perl (Urgentissime--Help)

n°1273998
pimpampoum​66
Posté le 28-12-2005 à 11:08:46  profilanswer
 

Bonjour à tous,
 
Je programme actuellement un script perl sur un linux embarqué. Je suis sur une plateforme ARM. Le script perl que je programme fait appel à une dizaine de modules (pm) que j'ai créer. Le script perl permet de lancer différents traitements sous forme de threads. Je souhaiterai lancer une trentaine de threads. Or étant sur un linux embarqué, je dispose que de 16Mo de mémoire (extensible à 32Mo). Mon script perl de base contient l'ensemble des bibliothèques que j'ai crée (ce qui fait beaucoup de code-> beaucoup de variables et beaucoup de fonctions).Lorsque je lance plus d'une dizaine de threads en parallèle ça plante (out of memory) puisque en perl pour chaque thread lancée, une copie de toutes les variables et données du thread parent doive être faite.
Donc ce que je souhaiterai faire, c'est de réduire la taille de mes threads perls.  
Plusieurs questions:
J'utilise use pour exporter les modules: l'espace de nommage de chaque module s'évère grand. Est ce qu'il est pas préférable d'utiliser require pour que les threads ne duplique pas un espace de nommage trop élevé?
Est ce que le fait d'écrire certaines fonctions de mes modules en C me fera gagner de la taille au niveau des threads? si j'écris les fonctions en C, il faudra au final que je l'ai charge avec dynaloader et que j'exporte le nom des fonctions C dans mon programme perl.
J'ai essayé perlcc mais j'ai des problèmes à la compilation et il s'évère instable.
Existe il un autre langage interprété qui utilise de façon propre les threads parce qu'en perl ça ressemble plus à du bidouillage qu'à autre chose.
Existe il des méthodes pour optimiser un code en perl?
 
Merci par avance
JB

mood
Publicité
Posté le 28-12-2005 à 11:08:46  profilanswer
 

n°1274011
el muchach​o
Comfortably Numb
Posté le 28-12-2005 à 11:36:04  profilanswer
 

Citation :

Existe il un autre langage interprété qui utilise de façon propre les threads parce qu'en perl ça ressemble plus à du bidouillage qu'à autre chose.


Oui, je pense que vu tes contraintes, le choix est limite.  
Il y a Squirrel et Lua, qui incluent des coroutines par defaut dans le langage. Squirrel est cense etre peu gourmand en memoire (des essais sont necessaires cependant, avec seulement 16 Mo de RAM), en tout cas surement moins que Perl. Les coroutines ne sont pas des threads a proprement parler, il faut suspendre explicitement l'execution d'une coroutine pour qu'elle laisse la main aux autres, mais c'est plus rapide et moins gourmand que les threads. Squirrel est facile a apprendre et plus propre que Perl. J'ai pu le compiler assez facilement pour plusieurs machines, donc ca doit etre possible pour ta cible.
 

pimpampoum66 a écrit :


Est ce que le fait d'écrire certaines fonctions de mes modules en C me fera gagner de la taille au niveau des threads? si j'écris les fonctions en C, il faudra au final que je l'ai charge avec dynaloader et que j'exporte le nom des fonctions C dans mon programme perl.
JB


Il y a de grandes chances en effet. A ta place, je commencerais par faire un test en Squirrel, et si ca ne convient pas, je passerais en C.
 

Citation :

Existe il des méthodes pour optimiser un code en perl?


Pas grand chose a ma connaissance a part utiliser "my" devant un maximum de declarations de variables pour qu'elles soient locales. Mais pour faire une trentaine de threads avec 16 Mo de RAM, Perl n'est pas vraiment le langage le plus adapte.


Message édité par el muchacho le 28-12-2005 à 12:02:18

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Perl

  Thread Perl (Urgentissime--Help)

 

Sujets relatifs
HELP probleme pour un script d'export de zone DNS[Help]Comment ouvrir un jeux 2 fois
triangle et variable globales... Help!!![HELP!]probleme dans mon programme
[socket en perl] ecouter un port sur son pc[Java] synchro entre thread: wait() et notify() -> pb [RESOLU]
[C/C++] Fonction "crypt" sous windows ? HELPPb java scrip Help !!!
XMLout -> help !QuadTree ... help !!!!!
Plus de sujets relatifs à : Thread Perl (Urgentissime--Help)


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR