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

Le plus rapide : C ou Perl ?

7 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

7 réponses

Avatar
Laurent Wacrenier
Nanard écrit:
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...


Vu qu'il s'agit d'entrées/sorties, probablement pas.
Ce qui est sûr, c'est que ce sera 1000 fois plus long à develloper.

Avatar
Nanard
J'ai qques scripts Bash, et Perl qui font des trucs long et toutes les
heures. Ca marche assez bien.


On aurait voulu en savoir un peu plus



En gros mes scripts :
- bash qui fait du FTP ou SFTP en boucle pour ne recupere QUE certains
fichiers. Des qu'un fichier est copie, on fait des trucs, et ensuite
refait le FTP pour le prochain... C'a fait pas mal de
connexion/deconnexion FTP/SFTP tout ca ! Une seule que l'on pourrait
conserver ferait gagner du temps ?

- Un autre script PERL : convertis ces ficheirs dans un autre format.
Utilisation 'en boucle' des commandes systemes : 'gunzip', ... bon, la
la vitesse est 'correcte.

- un autre en Bash qui renvois les fichiers convertis : meme pb que
precedement : je fais une connexion FTP par transfert, et qques trucs
entre les transferts.

- un autre Bash + Perl : qui lancent Sqlplus, charge ".profile"
d'oracle,...
Ne serait-ce pas mieux de faire du SQL 'directement' en Perl ?

Je suis alle faire un tour sur http://search.cpan.org ou j'ai recupere
pliens de lib. Perl.
J'en ai teste une au hasard : FTP. J'ai recopie le FTP.pm
Et bien, il faut des dependances... j'en ai copie a la main, il en
manque d'autres (qu'ils faudrait installer avec le prog de config).
Bref, on n'en sort plus !!!! Comme sur Linux :-)

Je voudrais bien faire le truc le pls simple et leger possible et qui
marche partout (Solaris !), il semble que ce soit encore ma solution :
appeler des commandes systemes :-(


Avatar
Dav'
Au lieu de faire des appels systemes tu remplace deja par les modules
Net::FTP et Archive::Tar (qui fait du gzip, aussi) . Ca ira plus
vite .

A part ça il ne me semble pas conseillé de coder des taches d'admin
en C. Quand tu arrive sur un site et que tu trouves un vieux binaire
compilé par l'admin d'y a 5 ans en crontab, tu sais que les problemes
ne font que commencer !!!

Dav'
Avatar
Emmanuel Florac
Le Thu, 29 Sep 2005 08:48:12 -0700, Nanard a écrit :

Ne serait-ce pas mieux de faire du SQL 'directement' en Perl ?


Si, sans comparaison aucune!

--
Je suis riche des biens dont je sais me passer.
Louis-Jean-Baptiste Etienne Vigée.

Avatar
Paul Gaborit
À (at) 29 Sep 2005 08:48:12 -0700,
"Nanard" écrivait (wrote):
Je suis alle faire un tour sur http://search.cpan.org ou j'ai recupere
pliens de lib. Perl.


C'est un bon site pour trouver le (ou les) module(s) utile(s). Mais
pas vraiment pour les installer.

J'en ai teste une au hasard : FTP. J'ai recopie le FTP.pm
Et bien, il faut des dependances... j'en ai copie a la main, il en
manque d'autres (qu'ils faudrait installer avec le prog de config).
Bref, on n'en sort plus !!!! Comme sur Linux :-)


Hé oui... C'est pour cela qu'il y a un module tout prêt pour gérer
cela (comme les gestionnaire de package de Linux ;-)). Il s'appelle
CPAN et son utilisation commence par faire :

% perl -MCPAN -e shell

À son tout premier lancement, il demandera à se faire configurer. On
peut donc lire la doc auparavant :

% perldoc CPAN

--
Paul Gaborit - <http://perso.enstimac.fr/~gaborit/>
Perl en français - <http://perl.enstimac.fr/>

Avatar
Steph
Ne serait-ce pas mieux de faire du SQL 'directement' en Perl ?


Utilisez le module DBI avec le DBD Oracle

Avatar
sMüller
Je suis alle faire un tour sur http://search.cpan.org ou j'ai recupere
pliens de lib. Perl.
J'en ai teste une au hasard : FTP. J'ai recopie le FTP.pm
Et bien, il faut des dependances... j'en ai copie a la main, il en
manque d'autres (qu'ils faudrait installer avec le prog de config).
Bref, on n'en sort plus !!!! Comme sur Linux :-)


Pour l'installation des modules perl, je te conseille d'utiliser CPAN:
http://search.cpan.org/~andk/CPAN-1.76/lib/CPAN.pm. Tu évitera bien des
problèmes.