Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Le plus rapide : C ou Perl ?

30 réponses
Avatar
Nanard
Bonjour


Je suis sur Solaris 9.
J'ai qques scripts Bash, et Perl qui font des trucs long et toutes les
heures. Ca marche assez bien.
Mais bon, que ce soit en Perl ou en Bash, je lance souvent (en boucle)
des commandes de l'OS : 'echo' 'cp' 'mv' 'ssh' 'ftp' sftp' 'sqlplus'
... donc en fait ma solution n'est pas super optimisee : a chaque fois
l'OS alloue un shell (thread/RAM/pile...) teste mes parametres, exec la

fonction et libere tout ca avant de rendre la main a mon script.


Je pense qu'en C se serait 1000 fois + rapide...


Comme j'ai un peux de temps, et d'autres projets du meme style qui
arrivent, ma question :
- dois-je tout porter en C (me faire des fonctions, structs, squelette
app.)
- dois-je explorer + en detail les lib Perl (qui sont en Standard sur
Solaris 9).
- Perl est-il compile a la volee, ou tout le temps interprete ? J'ai
l'impression que c'est un peux comme Java, me trompe-je ?


Il y a certains trucs que je sais pas faire en Perl (exec .profile,
SQL...) et puis je ne sais pas trop quelles lib sont installee en
standard sur Solaris... c'est pour ca que je passe par Bash et meme en
Perl je lance des commandes de l'OS (sqlplus, ftp, sftp).


Vos conseils merci


Nanard

10 réponses

1 2 3
Avatar
Stephane Zuckerman
J'en ai teste une au hasard : FTP. J'ai recopie le FTP.pm
Là, ça n'a rien à faire ici.

Ce n'est pas le fichier .pm que tu dois télécharger mais le tarball.
Il y a un groupe spécial pour Perl.
Bon courage.
Oui, d'ailleurs, il a un nom : fr.comp.lang.perl

FU2 approprié.
--
"Je deteste les ordinateurs : ils font toujours ce que je dis, jamais ce
que je veux !"
"The obvious mathematical breakthrough would be development of an easy
way to factor large prime numbers." (Bill Gates, The Road Ahead)


Avatar
Nanard
Ce qui est marrant avec les news group (pas que ici), c'est qu'il
semble y avoir pas mal de professionnel (pas etudiant, ou autres), mais
qu'ils pensent que les gens qui posent des questions (les developpeur)
aient une influence sur les spec/archi.

Je vais parler de mon cas : je suis sur un projet ou il y a plusieurs
boites, ma partie est un tout petit truc d'un gros contrat. Les
disque, la RAM, etc... : desole : je peut RIEN y faire.
Mon 'probleme' est de faire du bon code, qui tourne le mieux possible
sur les serveurs qui me sont (pas entierrement) 'alloue'.

Donc, ma question de comparaison de Bash, Perl, C, ... est pertinante :
je ne peux pas rajouter toucher au hard/reseaux, et pourtant il faut
que mes scripts marchent le + vite possible (car en prod. ce sera autre
chose qu'en dev. la charge !!!)

Voila, c'est tout.
Avatar
Stephane Zuckerman
Ce qui est marrant avec les news group (pas que ici), c'est qu'il
semble y avoir pas mal de professionnel (pas etudiant, ou autres), mais
qu'ils pensent que les gens qui posent des questions (les developpeur)
aient une influence sur les spec/archi.


Ce n'est pas qu'une question d'architecture. Il y a (au moins ici) une
bonne proportion de gens qui sont des professionnels, et une autre
proportion (sans doute moindre parmi ceux qui s'expriment) d'étudiants.

Ta question originale concernant Perl et C a trouvé une réponse
non-seulement ici, mais aussi sur fr.comp.lang.perl. Tout le reste (tes
problèmes de modules Perl, etc.) n'ont rien à faire ici, sur fclc. C'est
pas grave de demander, mais c'est juste totalement hors-sujet. Par contre,
ta question initiale ("lier des appels de commandes en C, est-ce
pertinent ?") était bien en charte je pense.


Je vais parler de mon cas : je suis sur un projet ou il y a plusieurs
boites, ma partie est un tout petit truc d'un gros contrat. Les
disque, la RAM, etc... : desole : je peut RIEN y faire.


Et personne ne t'a rien dit à ce sujet, à ce que j'ai vu.

Mon 'probleme' est de faire du bon code, qui tourne le mieux possible
sur les serveurs qui me sont (pas entierrement) 'alloue'.


Oui, et on t'a répondu (en double, sur deux newsgroups, avec à peu près le
même genre de réponse).

Donc, ma question de comparaison de Bash, Perl, C, ... est pertinante :
je ne peux pas rajouter toucher au hard/reseaux, et pourtant il faut
que mes scripts marchent le + vite possible (car en prod. ce sera autre
chose qu'en dev. la charge !!!)


Etant donné qu'il y aura beaucoup d'entrées-sorties, ce n'est
_clairement_pas_ le langage qui sera à l'origine du manque de
performances.

--
"Je deteste les ordinateurs : ils font toujours ce que je dis, jamais ce
que je veux !"
"The obvious mathematical breakthrough would be development of an easy
way to factor large prime numbers." (Bill Gates, The Road Ahead)

Avatar
R12y
On Fri, 30 Sep 2005 00:48:43 -0700, Nanard wrote:

Je vais parler de mon cas : je suis sur un projet ou il y a plusieurs
boites, ma partie est un tout petit truc d'un gros contrat. Les
disque, la RAM, etc... : desole : je peut RIEN y faire.


Donc tu va expliquer à tes employeurs que vu comment le bouzin est fait,
tu n'a pas besoin d'optimiser ton code mais que c'est le matériel qu'il
faut optimiser :-)

Il serait temps de couper ce fil de discussion, non?

--
SPIP, phpNuke, Plone, opengroupware... c'est bien
CPS c'est mieux: http://www.cps-project.org/
Hébergement de sites CPS: http://www.objectis.org/

Avatar
Harpo
Nanard wrote:

Donc, ma question de comparaison de Bash, Perl, C, ... est pertinante
: je ne peux pas rajouter toucher au hard/reseaux, et pourtant il faut
que mes scripts marchent le + vite possible (car en prod. ce sera
autre chose qu'en dev. la charge !!!)


Au sujet de la rapidité, la question est : que font les scripts ?
S'ils font des calculs mathématiques longs avec inversions de matrices
et des choses qui utilisent beaucoup de CPU, réécrit en C.
S'ils font de la rotation de logs ou de la copie de fichiers, ils sont
très bien en Perl, le gain d'une réécriture en C serait à peine
perceptible.
Avant de se lancer dans une réécriture dans un autre langage, il faut
d'abord se demander quel gain cela va apporter. J'ai peur qu'on ne
puisse t'aider que dans les grandes lignes.

Je ne connais pas ta place dans le projet, je voulais simplement dire
qu'en général le débit d'un serveur ne dépend pas beaucoup de ce genre
de scripts (à moins qu'ils soient vraiment très lourds), il tient plus
à l'OS choisi, la manière dont il a été généré, paramétré etc, pour le
serveur idem.
Si la rapidité des scripts a une importance certaine, il peut y avoir
des critères plus importants comme leur maintenabilité.

Avatar
Emmanuel Delahaye
Harpo wrote on 29/09/05 :
Nanard wrote:
Je pense qu'en C se serait 1000 fois + rapide...


Pose-toi plutôt des questions du genre : Où est le bottleneck ?


Voilà la bonne réponse.

Question suivante (sur le langage C SVP).

--
Emmanuel
The C-FAQ: http://www.eskimo.com/~scs/C-faq/faq.html
The C-library: http://www.dinkumware.com/refxc.html

"It's specified. But anyone who writes code like that should be
transmogrified into earthworms and fed to ducks." -- Chris Dollin CLC


Avatar
Richard Delorme
Pose-toi plutôt des questions du genre : Où est le bottleneck ?


En Angleterre !
En France, on n'a que des goulots d'étranglement.

--
Richard

Avatar
Harpo
Richard Delorme wrote:

Pose-toi plutôt des questions du genre : Où est le bottleneck ?


En Angleterre !
En France, on n'a que des goulots d'étranglement.


Merci, c'est le mot que je cherchais, goulot de bouteille n'aurait pas
été clair.


Avatar
Pierre Maurette
Pose-toi plutôt des questions du genre : Où est le bottleneck ?


En Angleterre !
Et même dans quelques autres villages anglophones.


En France, on n'a que des goulots d'étranglement.
Goulets ?

Google donne un "goulet d'étranglement" pour deux "goulot
d'étranglement". Mais Google ...
L'idée de limiter un débit est plus dans goulet que dans goulot. On
doit d'ailleurs pouvoir se passer de "d'étranglement", en restant
clair.


--
Pierre Maurette


Avatar
Richard Delorme


Pose-toi plutôt des questions du genre : Où est le bottleneck ?



En Angleterre !


Et même dans quelques autres villages anglophones.

En France, on n'a que des goulots d'étranglement.


Goulets ?
Google donne un "goulet d'étranglement" pour deux "goulot
d'étranglement". Mais Google ...


L'Académie Française est d'accord avec Google, goulot d'étranglement est
le terme le plus usuel.

Dictionnaire de l'Académie Française, 9ème édition :

(1)GOULET n. m. XIVe siècle, au sens de « ruisseau ». Diminutif de
goule, ancienne forme de gueule.
1. Vieilli. Col d'une bouteille (on dit aujourd'hui Goulot). 2. Chenal
étroit faisant communiquer un port, une rade avec la haute mer. Le
goulet de Brest. 3. Passage étroit, resserré entre des rochers, des
parois escarpées. Les alpinistes franchirent un goulet. Loc. Goulet
d'étranglement, voir Goulot.

GOULOT n. m. XVe siècle, au sens de « passage par où l'eau s'écoule ».
Dérivé de goule, ancienne forme de gueule.
Col d'une bouteille, d'une carafe ou de tout autre récipient dont
l'ouverture est étroite. Le goulot d'un flacon, d'une bouteille. Boire
au goulot. Loc. Goulot d'étranglement, sur une voie de communication,
passage resserré qui ralentit la circulation des personnes, des
véhicules. Se dit figurément de ce qui restreint l'accès à quelque chose
et, en termes d'économie, de ce qui entrave les échanges, la croissance
ou le développement d'une activité. Une fiscalité trop lourde est un
goulot d'étranglement pour l'économie. (On dit parfois Goulet
d'étranglement.)


L'idée de limiter un débit est plus dans goulet que dans goulot.


Ce n'est pas évident, l'objectif d'un goulot (col de bouteille) est de
limiter le débit, non ?

On doit d'ailleurs pouvoir se passer de "d'étranglement", en restant clair.


Non, il s'agit d'une locution et il faut l'employer en entier.

--
Richard



1 2 3